DEV Community

Chris Cook
Chris Cook

Posted on

Should Technical Managers Be Able To Code?

I just stumbled upon this Tweet from Elon Musk on my timeline and I feel the need to share it. I usually avoid dealing with polarizing topics like this because there are just too many different opinions, but this is just a very important issue to me.

Twitter thread

Twitter thread

This topic resonates with me so much, and I think it's important coming from one of the most influential people on the planet.

In my opinion, companies, software and non-software alike, should move towards valuing and promoting technical excellence at all levels of the hierarchy. This is not necessarily about programming, but about having deep technical knowledge in the area you manage.

What you do you think?

Latest comments (21)

Collapse
 
gloriajoycee profile image
Joyce Gloria

I feel this, Being in the position of technical manager, how important it becomes to be technically sound. These two points are my personal experience advantages of a technical manager to be developer first.

• Tech managers who are technically skilled are in a much better position to implement code quality checks and promote a culture of 'clean' code.

• It takes the eyes of a skilled and experienced developer to identify security loopholes or vulnerabilities which might have been skipped over by the development team.

Collapse
 
severin_bruhat profile image
Séverin bruhat • Edited

That is an interesting topic.

I have been a software engineering manager for 2 years now (before I was a principal developer with line management responsabilities for 4 years).
My team is composed of 5 to 6 developers, 2 testers and 1 business analyst. I do not have time to code and I would slow the team down. Instead I focus on:

  • Technical Leadership: architecture meetings, branching strategy conversations, technical coordination between teams, technical analysis…
  • People: 1–1s, career conversations, promotions, coaching, mentoring, feedback, learning and development...
  • Company Growth/Process: recruitment, company events, growth plan, internal initiatives, risk management…
  • Delivery Lead: client-facing conversations, Scrum master’s tasks, mitigation, coordination, leadership meetings, demos…

As you can see, this leaves no room for programming and it's fine, your team can deal with the programming aspect.
That being said, it is important as a technical manager to understand the concepts enough (system design interview level) so you can engage the conversation with lead developers and principal engineers. And it is important to keep up with technology (books, conferences, tranings etc.). Therefore, I think it's necessary to have a software engineer background.
I know this is a controversial topic :D

If you want to know more about the engineering manager role, I wrote an article recently: medium.com/better-programming/tran...

Collapse
 
dougatgrafbase profile image
Doug Schwartz

Nope, the crucial piece is domain knowledge. Of course Musk would say what he said, it maps to his personal style/interests. Does anyone truly think he has a clue about battery technology? Or is he smart enough to let those who've been in the field for decades provide him with guidance?

Collapse
 
mangor1no profile image
Mangor1no

Ofc. The manager does not need to know every single line of codes, but he must be able to take a look at the codes sometime and know what the heck is going on there when team members have some technical questions. At that level you may not have enough time for coding, but it does not mean that you don’t know anything about technical stuff and only good at managing people

Collapse
 
zirkelc profile image
Chris Cook

I fully agree with that!

Collapse
 
mfurmaniuk profile image
Michael

Been doing this for 30+ years and while I can't say I am the best coder around, some on my Team are better but that is why I hired them, I can read and be technically proficient enough to help scope work with accuracy. Understanding the technical aspects of a Team you manage I believe helps in demoing the work, as you can speak about it without the jargon but also provide the technical and business value.

I still like to take care of things from time to time, as it keeps me feeling up to date, but I don't think its going to be a full time job and at times skill suffers from that. I have recently interviewed for/looked at jobs both as Manager and Director level and a lot of the ones I have seen, or come to me, do have an aspect of coding around them.

Collapse
 
zirkelc profile image
Chris Cook

In a fast changing environment like software engineering, it takes up a lot of time to stay up to date on the latest technologies, frameworks, tools, or whatever.

I think managers do not need to know the technical details behind every single piece of technologies, but they must understand the underlying principles. And, in order to understand that I think they must have worked in that field as en engineer before, otherwise they won't fully grasp it in my opinion.

Collapse
 
zirkelc profile image
Chris Cook

Short and concise! 👍🏻

Collapse
 
simeg profile image
Simon Egersand 🎈

I've had one manager that could code really well and would contribute to our backlog regularly. Then I've had another who never submitted a PR when we were working together, although they knew how to code. The latter helped me grow a lot, where the former not as much.

I don't have experience from many companies, but is not the role of an EM to help their engineers grow? And be responsible for delivery. So as an EM, if you trust your engineers and can get technical answers from them, I don't see why you need deep technical skills.

So I'm curious why some think deep technical knowledge is so important for an EM?

Collapse
 
zirkelc profile image
Chris Cook

I think it really depends on how you define the role of an EM and what you personally expect from a manager.

In my experience, a lot of information gets lost along the way between engineers and managers unless they have at least a similar level of technical knowledge. This translation effort occurs between engineers and managers and is repeated at all levels of the hierarchy (managers to directors, directors to VPs, ...). The information becomes less technical each time it is passed on to the next level. However, there is a big difference at which level this translation effort and information loss first occurs. Does each individual engineer on a team (10, 20, ... people) have to translate information and possibly pay a price (overhead) when the information is passed to their EM? Or does the EM understand the information at such a high technical level that hardly any information is lost and the EM can translate it into less technical information if necessary to pass it on.

This is my, presumably biased, opinion as to why technical knowledge is important for managers in a technical field. To preserve as much information as possible in every conversation.

Collapse
 
taijidude profile image
taijidude

Managers are supposed to solve people problems and should be good at that. When it comes to software they should know what they are talking about. I don't expect them to have deep technological knowledge. If they have i would rather seem them in a more technical position.

Collapse
 
zirkelc profile image
Chris Cook

The individual company culture has a big impact on how people work together.

I think he wants to have technical adept managers because these are the people he’s actually talking to inside the company and he wants to get quick and profound answers on his questions instead of having the manager to channel every single question to the devs.

Collapse
 
jwp profile image
John Peters • Edited

In my 30 yrs in IT, the best managers were skilled in dealing with people. In particular those who raised up total trust. The technical roles were reserved for Architects, Leads, Seniors, and Freshers.

The worst manager I ever had was a Team Lead promoted into 1st line management.

The 2nd worst were managers who couldn't be bothered but still demanded due dates.

Then there was the drill Sargeant scrum master.

And finally the snitching wonder boy, loved by the 3rd line untrusted by everyone else.

Collapse
 
zirkelc profile image
Chris Cook

How were they skilled in dealing with people? I could think of a manager I had that excelled at understanding the technical requirements on one side and was able to translate this into plain language when talking to non technical people.

Collapse
 
jwp profile image
John Peters

The good ones are able to create an atmosphere of purpose, support, trust and understanding. Everyone enjoys the team, likes the scrum master, team leads and inter-team collaboration is magic. Negatives are always handled professionally. The attitude is can-do continually. Agile is a must.

Collapse
 
andrewbaisden profile image
Andrew Baisden

He's not wrong there they should actually know what they are talking about and have credible experience in the area that they work in.

Collapse
 
zirkelc profile image
Chris Cook

That’s also the way I see it.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

There's nothing worse than a technical manager who cannot code. So much time is wasted on 'translation' between devs and management. Frustration and misunderstanding guaranteed

Collapse
 
zirkelc profile image
Chris Cook

I’ve had a few managers that weren’t technical adept and I must agree with your points.

In software engineering it seems so much more common to have non-technical people leading technical teams. Maybe this is the case because software is non-tangible and therefore, it’s easier to hide missing knowledge.

Collapse
 
eisabai profile image
Isabel Nyo

I’ve got almost 20 years of experience working in the tech industry and this is the role and expectation of an Engineering Manager. Good engineering managers are people managers and leaders for software engineers, are often responsible for technical delivery teams, and they have a strong understanding of technical details combined with competency in adjacent domains such as analytics, product management and design. They are also responsible for the performance management and career development of their direct reports.

So to answer the question of should they know how to code, yes sure. However, when it comes to the question of whether they should still be coding, it really depends.

Here is my experience working at tech companies as an engineering manager.

When I was an engineering manager of a small team of 4-5, my coding time was about 40% - 50%.

When I was an engineering manager of a 12 people team, I’d only have about 10%-20% time for coding.

When I was looking after multiple engineering teams, I’d only get to code at work once every 3 months during hackathons.

Now, as a senior engineering manager at a tech company, I do not have time for coding at all.

Collapse
 
zirkelc profile image
Chris Cook

Thank you for taking the time to share your experience.

I think it’s not so much about coding on a day to day basis, but rather understanding the basic principles of software engineering. And these are fundamentals cannot be acquired purely theoretically, require hands on experience.

Nevertheless, I understand that certain hierarchy levels require shift of focus from coding to other tasks such as leading people.

I would like to know if you still use your technical knowledge on a daily basis?