I came across this interesting twitter thread about coding ability of managers.
“your managers should be better engineers than you”
Most managers disagree about this and I’m sure there are many exceptions, but in my career my worst managers were always the ones with the weakest coding ability.
“coding ability” here doesn’t refer only to banging out code, but it also doesn’t mean just CS (computer science) fundamentals. It’s the breadth and depth to understand what is going on around them instead of just forwarding what their manager and peers are telling them.
Christoph Nakazawa
Personally, I think it depends on what the manager is actually managing. I’ve been in teams where the manager is the team lead and gets heavily involved in coding. Other times we have restructured and the manager acts as more of a middle-man between the team and others higher up in the hierarchy.
Traditionally, over time people want to feel like they are progressing and get promoted. This can often mean that you get so good at your job ie Developer that you then stop doing the job and just manage others. For some reason that gets awarded more money even though being a prolific developer would be more beneficial to the company.
I think having someone technical to explain problems to and resolve them is very beneficial. This can either be fixing a software bug, architectural problem or a network problem. You can definitely get them resolved faster and avoid miscommunications if they actually understand what the problem is and the impact it has.
“I strongly believe that all managers in a technical area must be technically excellent. Managers in software must write great software or it’s like being a cavalry captain who can’t ride a horse!”
Elon Musk
Here’s some other opinions from the thread:
I always felt that as manager of technical people I had to be astute enough to be credible. As a leader you assist and drive problem solving. But I wasn’t a great engineer myself, I made a better manager. Everyone’s different though.
The ones that know you’re there to do a job and trust you to do that job are the best. The ones that have no idea what *they’re* even doing and attempt to micromanage *you* are the worst.
No, managers need to be good at managing, it’s just a bonus if they are well versed in the craft. They need to be good listeners and build trust. Being an expert coder isn’t gonna help them to make decisions that makes different personalities thrive (we aren’t all the same)
There are people who are very good engineers, but not so good managers. I don’t see how such an engineer can have a manager who is better at engineering than them. I think it’s totally viable to have very strong TLs that are not managers.
My nightmare fuel is working for someone who came to engineering leadership via old school project management. The kind of person who knows everything about deadlines and nothing about why they are unrealistic.
I think there’s a lot of room between “weakest coding ability” and “the best coder on the team”, and managers can be effective in a lot of that space.
In my experience, a kind of bell curve — average enough at coding = terrible enough to think they “get it”, or no real coding ability but appreciation for the technical = the guts to manage and serve technical teams effectively and actually *listen*