Is a Software Engineering Manager OVERHEAD?
TL;DR: No, on the contrary.
When I first became an engineering lead supervising a hand-full number of people, I continued to write code for a reasonable amount of my time. Back in the days, a senior manager asked me: “hey Thiago, so now you became overhead?” and I didn’t know what to answer to him so I just smiled. Had I known what I know today, I would have probably told him some of the things I will write in this post. (Despite the question, this was the best manager I worked with so far…)
Let me start by saying that I am a big fan of frontline technical manager (supervisor of individual contributors) of technical teams (aka as software development teams). That does not mean you need to be a developer, or that you are still coding for most of your time, but it means you are very knowledgeable around what it takes to develop software and, in the ideal case, you have experienced the development and launch of various software products. Your team is small enough that it is realistic to be in the details. You are part of technical discussions, you are able to contribute to technical convos, and your team respects your opinion (not because you are the manager, but because you bring real value to the table). You are involved on all (or most of) deepest challenges your team is facing, to the deepest details. You are an integral PART of the team.
If we go from frontline supervisors to manager of managers the situation changes. Even though having technical knowledge is still a very valuable asset, you will be further away from the daily details of the deepest coding/testing tasks. And this should be very intentional, in order to empower the team to the extent where you are not aware of every single detail of what is happening, but still knowing enough to feel comfortable with it. (I wanted to open up a big parenthesis here to say that in this case it is important for you to understand HOW much you need to know to get a good understanding if the team needs your help or not… but I will cover that in a different post). You are, however, still able to review plans, to add value from an architectural perspective, even to go deeper on a technical topic if required, but most importantly, you are able to detect disasters before they occur. You have that gut feeling, a hunch that will lead you to ask the right questions, that sometimes uncovers unpleasant things :P The more experience you have on different types of software, technologies, teams, etc the more accurate your hunch is going to be.
But the key takeaway here is: Independently if you are a frontline supervisor or a manager of managers,(or anything else in between) your technical knowledge will enable engineering teams to be effective, or even entire companies to be effective. The fact that some people believe every type of manager isto be overhead, and flat hierarchies are the way to go are misconceptions that sometimes come from bad experiences in the past with managers that had no clue of what they were doing, and had no real impact on the work being done. With that, I don’t consider technical managers to be overhead, rather the contrary. You are a key contributor that will help your teams unlock their full potential, you use your hunch to steer conversations and shape projects, and you help shaping the culture of your team and why not the entire company(… shaping the culture will be for sure a good topic for another post).