gravatar image

Hi! I'm Daniel.

I like writing, drawing, tweeting, sometimes give talks, and occasionally write code.

The Fallacy of needing a technical manager

One of the things I’ve come across most in my career in technology (and one that still persists) is the belief that as an engineer, your manager (or coach) needs to be fairly technical as well. Or at least it being a huge advantage if they are. And even though this might seem like a logical thing initially, most of the times I’ve seen that being actually the case were edge cases. In most other cases it’s been not particularly helpful or even harmful. As a sidenote, I’m using the term “non-technical manager” here because it’s the common way of talking about the topic. However I think this term makes as much sense as “non-managing engineers”.

First let’s get this part out of the way: here are the scenarios where I’ve seen having a technical manager being a big advantage:

  1. As a very junior engineer without any mentorship setups in place
  2. During onboarding where I didn’t have a good lay of the land or relationships to lean on to ask about system overviews yet

However these situations are edge cases to me which don’t pose actual problems. A good non-technical manager in this scenario will just make an introduction to an engineer who knows the answers and is willing to mentor a junior engineer or new hire. If there isn’t such an engineer, then there are much bigger problems in an organization than technical vs non-technical managers.

And this actually ties into the main point why a technical manager is a silly requirement in my mind: As an engineer you’re already surrounded by a ton of people with deep technical knowledge (i.e. all the other engineers). It’s almost impossible to have a problem or question and there not being someone around to help.

However it’s less of a likelihood to have someone around to help you with non-technical problems. How to structure work into plannable pieces, how to give feedback, how to put your work into the larger context, how to improve the team, etc, etc. And these are much less special and unique topics to technology where you need a strong technology background than most people think. In a healthy organization the senior engineers will also be able to help with this to some extent. But they will also need to have learned it from someone. And need to have an avenue to improve their non-technical skills.

And as you become more and more senior, being able to excel in these non-technical areas becomes more and more crucial to be an effective engineer. With seniority comes problem solving on a larger scale that needs more breadth in impact and much less depth. Focusing on a specialist skillset of just technology will more and more limit you in being able to do this important kind of work. And at some point the only way to improve is working on your non-technical skills, for which you need a good non-technical manager.

This doesn’t mean that technical managers can’t teach you these kind of things or are necessarily bad at it. But in my experience when you have technical managers who are good at it that’s the case despite their technical background and not because of it. It’s way too common that the technical background actually gets in the way. That they consider themselves more as used-to-be-engineers than managers. That they are tying every conversation back to a technical topic and focus on that instead of the reports actual growth. And at worst they try to still write code themselves and debate technical decision making instead of taking a step back and let others grow on those challenges. And don’t get me wrong, I know many great technical managers that don’t do these kind of things and are great at their jobs. But what I value about them is exactly that. They are managers first.

Requiring a strong technical skillset of managers is also a huge waste of resources. Given that a manager essentially ends up with two jobs that way, they will struggle to be able to do a good job in at least one of them (more likely in both). They are constantly having to shift focus from the management side of things to try and stay up to date on technical topics that they will never really have hands on experience on anyways. Taking time and energy away from their actual job: managing. And nobody really enjoys having a conversation with a manager who hasn’t written production code in years yet still engages in technical problem solving and decision making conversations late at night because they think they have to also keep their technical chops up to date. While at the same time clouding their view of the higher level context because they get caught up in technology details.

And it’s not only about the manager. It already starts at hiring. Requiring technical aptitude from managers means that you waste precious interview time on technical questions that are even less related to what their work will be than any of the ridiculed inverting a binary tree whiteboard exercises every engineer groans about. Instead you could use all that time to talk extensively about management topics. And how they will help grow teams and organizations.

At the end of the day management is a lot more removed from the actual day to day practice of writing code than most people think. And the problems to solve and challenges to tackle for managers at technology companies are much less unique to technology than we all like to think. A good manager (regardless of technical background) is able to recognize that and work with engineers to make them better by complementing the skills they already learn every day while doing their main job.