The software engineering manager role should not exist.
Source: I am one.
Before that I have over a decade of software development experience at companies small and large.
Engineering managers generally take on some frankenstein role of product, project and technical management and are bad at all of them
I’ve seen a great product manager in action. They are the de facto leader of the team. They are a visionary. They speak for the customers. They measure their successes and failures carefully and use those insights to mold the product. They communicate the customer needs and their vision to the team effectively so they know what they’re building and why. They are professional problem givers. Then they hand off those problems to the professional problem solvers: the engineers. That’s how products are shipped and companies are built and profits are had. Everything else is just noise.
I’ve seen great software engineers in action. They know the platform. They know where the bodies are buried. They can write and deploy code quickly. They know when to pay attention to detail and when to take shortcuts. They can see the big problem and make it into smaller problems for the team to solve themselves. They do the work. Without them, the product/project/engineering managers would just be shouting into the void.
Project managers… I have a lot of thoughts around the state of project management for another time. But in theory they break down the vision of the product manager into discrete chunks of work and track that. Kind of a choose-your-own-adventure in how to micromanage everyone’s time but they seem to stay busy for the most part.
Engineering managers don’t have the time to do any of that. There’s no world where they can be outstanding in any of those capacities. There simply aren’t enough hours in the day. They’ll try, but these tasks should be given to those who specialize in those areas.
Engineering managers were probably mediocre engineers
And they compensated for that fact by finding non-engineering tasks to pick up. They get really into Jira. They talk a lot about process. They somehow inject themselves into meetings they don’t belong in. You know the enterprising sort. Eventually their manager looks at them and says “Wow you have management potential!” because that’s exactly how they themselves got into that role. And thus the cycle continues. Actually good engineers never really stop being engineers.
Sidebar: does this apply to me? It could be accused. My path to management was a little more windy, but I did have to spend a considerable amount of time pretending to like doing those non-engineering things to convince the powers that be that I was, in fact, just like them. I’m sure I was a better engineer than I am a manager but here we are.
Engineering managers have too much power
The lowest level engineering manager has more power than the highest level engineer. If a junior dev is told to do A by a principal engineer and B by their manager, they’re going to do B every time. The reason is simple: money. Managers control their team’s salaries. They handle promo packets. They can decide to fire you. The principal engineer might have opinions about those things, but usually nobody listens to them that intently. Their voice on a promotion panel might have sway, but it won’t matter if the junior engineer’s packet is never submitted in the first place. Go against your manager and you’re no longer a team player. You need an attitude adjustment. You’re on your way to a PIP. Have fun.
At best engineering managers are localized HR
Our main job is to watch the team closely and report any deviant behavior. Definitely don’t try and fix any of it ourselves or let our reports work it out amongst themselves. Straight to real HR so they can deal with it, blow it out of proportion, and eventually ruin at least one of the engineer’s careers at the company.
When we’re not doing that we’re talking to the team about their careers, pretending this isn’t a cash-for-keystrokes business. We’re trying to convince the team they love working here. They should work harder for no more money, in fact. Possibly zero money if they don’t work hard enough. Maybe a little more money if they’re good and we feel like taking the effort to go through the byzantine process of actually getting them promoted. That’s a lot of work though… maybe next promo cycle. Here have some pizza.
The best manager I’ve ever seen was no manager
Do you know what engineers do when they don’t have someone closely watching over them? Their job. It’s almost comical. Oh the sigh of relief when a bad manager goes on an extended vacation. People can finally focus. Everyone relaxes. They can speak freely again. Productivity shoots up. And then when they come back… ugh. Some of the most productive teams I’ve seen effectively had no engineering manager, usually because theirs left and the team consequently reported to some absurdly high-level executive who couldn’t give a damn what they’re up to.
I like how they do it in consulting
Your “manager” is your Project Lead. They govern you for as long as the project lasts. They handle your day-in and day-out tasks. They act as the product manager and you work for them.
Then you have a Career Coach. They’re someone else at the company that acts as your advocate for as long as you’re both working there. They’re a long term friend whose job it is to make you successful within the company as a whole. They don’t work with you personally but will find evidence (from your project leads) to promote you. Just as importantly, they can be a neutral voice if the project or your relationship with the lead isn’t going swimmingly. I like this division of duties.
Go against your principal engineer and you'll soon be left with no principal engineer.