| In general, engineering managers. I'm not talking about "bad" engineering managers, I'm talking about average ones (which are the ones one usually get). - It's difficult to sell good engineering work to them, and hence salary increases happen (if any) but on the lower end. - With the typical excuse "Eng. managers should empower engineers", eng. managers do around 1% of the job when it comes to start big projects. The whole load lies on the shoulders of the senior engineers. One would expect that an eng. manager is probably the individual in the team with the most experience (both in engineering and in management), but eng. managers usually don't spend time trying to understand the systems their teams own. A classic example is: an eng. manager who knows very little or nothing about, let's say, Node+js, even though he has been in the team for over a year: their excuse? They only care about the "high level design decisions, they don't need to code anything". Funny thing is, the "high level design decisions" are done by senior engineers Good engineering managers are invaluable, though. But in 80% of the software teams out there we either have bad eng. managers or average ones. In summary: - good eng. managers => heaven - bad eng. managers => it's ok. Since they are bad, they most probably will be fired or the whole team will know quickly how bad they are - average eng. managers => hell. Because they are not "bad", so they are not fired. They think they are good and all. |
They do all this while having the technical grasp on what the team is delivering and how they are delivering it. If they're jumping into details around Node+js they are likely ignoring something else important.
A software engineer's responsibility is to design, build, test, monitor software while an engineering manager's responsibility is to oversee the team, projects, resources and stakeholders.