from Hacker News

Ask HN: Do Software Engineers Need Managers?

by zpatel on 2/22/18, 12:03 AM with 37 comments

I have experienced and heard from a friend who also worked in a large company that many of the managers or project managers did not add any significant value (except in startups).

So my question is whether the Software Engineers (especially the senior one's) really need managers? I have been thinking about this and planning to work on a POC of a tool (may be based on blockchain like model) that would reduce or eliminate non-coder managers. While this would be my wish, am I thinking totally out of the line or too creatively :) ?

  • by matt_s on 2/23/18, 2:01 PM

    It is hard for software engineers to see the value added of a good manager. Often a manager will have deep knowledge of the software being built, current priorities, and will know (from their team) where 'thar be dragons' in the code.

    When I was an engineering manager at a large corporation, most of my time was spent in meetings about status, resources, future projects, finances, cyclical HR things, escalations with other teams, etc. Then the other half of the role is gathering information from the team about how things are going (PM's would be the task master) and finding out where there were problems either with technology (rare) or other teams (often).

    These things cannot be scripted away - they all involve talking with other humans.

  • by bsvalley on 2/22/18, 1:59 AM

    How would blockchain help in this case? Not sure I get the idea... Blockchain within an organization doesn't make any sense. I've had different managers and they were horrible or useless for the most part. Usually in big corporates they're useless and in startups they're too cocky and bad team players. Though, there are good managers out there but it's pretty rare.

    You need a manager to resolve conflicts between peers, to hire/fire people and to report to upper level. That alone takes a lot of pressure off a team... I've had experiences on both sides, management and individual contributor. Being a manager is pretty stressful for these 3 reasons. Other than that, it either falls into micro management or into a tech lead role. As soon as a manager starts getting involved in technical decision it usually goes against the tech lead of the team or architect. If a manager asks for status updates constantly it's pure micro management and against the Project Manager.

    In other words, conflicts between peers, firing/hiring people and giving status updates on all the major issues is something that is hard to automate. We do need managers, but we need them to stick to these 3 things and that's it.

  • by kwillets on 2/22/18, 6:11 PM

    I just quit a job where I dealt with both self-managed and micromanaged roles, and I was much more productive (and better rewarded) in the self-managed one. I found I'm better at managing lateral relationships, eg data-scientist to data infra, or data infra to devOps, than being micromanaged on a ticket queue. I was surprised that I enjoyed fairly mundane backup or recovery tasks, because I could see user impact directly.

    The micromanaged situation had strange priorities as well; the overhead of trying to figure out why we were doing so much stupid stuff just added to the frustration.

  • by zer00eyz on 2/22/18, 1:52 AM

    It depends on your engineers really.

    If you have great team, who enjoys, uses or deeply understand the product and VALUES their craft then no you do not. However you have to empower this team with a larger degree of control than most organizations are willing to give. Product people need to come with goals, not products and hash out a way to get there with the engineers... Just because a product person wants to build "X" doesn't mean it is going meet the goal in the most cost effective way, and a good engineer might suggest something else to get to the goal that saves time and effort when it comes to building and running whatever the feature is that is being suggested.

  • by tboyd47 on 2/22/18, 2:54 PM

    In order to be effective, yes, they do.

    If developers are left to work on whatever they want, they end up creating projects that either have no value to their parent company or have value but don't get sold to anybody. Developers need managers to redirect their efforts in the most profitable direction. The main issue is that bad managers have a strong negative impact and most managers on software projects are bad.

    If you truly believe that managers provide no value, then wouldn't a manager replacement tool also provide no value?

  • by hiaux0 on 2/22/18, 1:04 AM

    (I have no experience working in Software)

    There is always the need of someone who has the bigger picture in mind. Task distribution.

    And for the "large company" part. I assume that most large companies are still operating in and old-fashioned way of working.

  • by smt88 on 2/22/18, 1:10 AM

    Yes.

    Managers are useful for decreasing the non-programming brain cycles that devs are spending every day.

    Managers can re-prioritize based on feedback from marketing/sales/CEO, wrangle issue trackers, make sure devs are happy with what they're working on, screen new hires, talk to customers, and lots of other non-programming things that a software team must do.

    A great manager clears away the "boring" or tedious obstacles that get between great devs and the next iteration of the product. They also set the tone for the team, motivate individual members, and keep things organized.

  • by muzani on 2/24/18, 5:57 AM

    A manager's role is three parts: information routing, training, resource management.

    A manager collects information from a team and abstracts it to upper management. Upper management can then use this info to understand what the organization is capable of.

    It's also the manager's job to understand where the company is going, what the strategy is, and communicate this effectively to the grunts.

    They also relay and filter out information between departments. They help engineers understand what sales (and clients) want, and sales to understand what the product is capable of.

    They suss out flaws, normally with people. Sometimes engineers might not be willing to voice out concerns.

    The engineers might also want more resources, whether it's an outside service, hardware, more manpower. The manager looks at this from a higher level and finds the best solution. They appeal for budget increases and extend deadlines.

    And if you have a really skilled dev turned manager, their job is to mentor and train. This is possibly the most effective thing a manager can do.

  • by git-pull on 2/22/18, 1:08 AM

    At startups, senior engineers only need light supervision.

    Their time should be spent listening to customers, directors, and other stakeholders to check if they're sorely missing things. They should keep lines of communication open and be proactive.

    One thing we don't see often enough is the "Principle Software Engineer" role in startups.

    At most startups, it's an open office floor plan. The data analysts, sales person, and marketer would come up to me with a request for something that was actually detrimental to their doing their job, but it wasn't getting focused on in our sprints.

    At Boostable (W14), I was handling all server / e-commerce / front-end issues, plus setting up systems for marketing and sales needs that wouldn't have otherwise been done. And it brought substantial value to the company, for low hanging fruit a manager would have kept kicking the can down the road.

    The issue is, these proactive things were never recognized or appreciated the way I think they should have been. Heh. It's as if it the work being unofficial made it less valued, when the way I saw it, it was shared success.

    If a programmer is impactful and setting the best practices for the team, they can report directly to VP/CTO. Less supervision. Mentor fellow employees.

  • by Zombieball on 2/25/18, 7:19 PM

    I am not sure I understand the proposal, it seems that you’ve categorized managers into 2 buckets:

    1) Managers who add little to no value.

    2) Sr. Managers who do add value (big picture roadmap, headcount balancing, etc.

    I don’t think you are suggesting (or even can) automate the tasks managers from bucket #2 are performing. As for bucket #1, if they aren’t adding value can’t you just eliminate this unnecessary layer from the company? Fire the manager and the team will presumably be just as well (or better) off? What is there to automate / produce tooling for? The non-value added tasks?