A common question for new engineering managers is whether or not they should contribute code to the team.
This is a divisive question; as always, nuances and exceptions exist.
This discussion came up recently on LinkedIn. There are various opinions on this topic, and the answer may be nuanced depending on your manager level and the team you work with.
My general philosophy is:
Managers shouldn’t write code (within the team) under normal circumstances
Managers should be able to understand the code and remain technical
The one exception would be in small teams or startups with fewer engineers or when the manager is required to code (e.g., under exceptional circumstances).
Engineering managers SHOULD know how to code, have strong technical knowledge, and thoroughly understand their technical domain.
The Struggle
I struggled when making the transition to becoming a manager. As an IC, you derive your sense of value from your work. You are good at writing code and have been rewarded for doing it most of your life. So naturally, giving this up is difficult psychologically.
If you move to a manager role and want to progress, you must give up coding. If that isn’t what you want, remaining an IC is probably better a better career choice.
Many engineering managers start as engineers and miss the direct satisfaction of coding after moving into management roles.
Coding feels rewarding. You can get instant feedback. Management work doesn’t feel rewarding in the same way. The impact of your actions are not immediately obvious and the work feels very different.
Why Managers Shouldn’t Code (In The Team)
Moving from engineer to manager is not a promotion but a job change requiring new skills and responsibilities. You are no longer measured on the work you do yourself.
As a manager, you are measured on the value your team creates, not your individual contributions.
I don’t believe managers should contribute to the team’s work because:
It creates an unhealthy power dynamic. You cannot be a manager and have your employees review your work while being responsible for their careers.
Managers writing code are taking valuable opportunities away from their team.
If you’re writing code, you’re not doing your primary job.
You must let go of writing code to progress in your career as a manager.
At best, a manager will be an unreliable part-time contributor who slows everyone down.
The Need To Stay Technical
Engineering Management is different from traditional management in that technical knowledge is needed to do the job. But staying technical doesn’t mean you must write code within your team.
You need to understand the work your team is doing to make decisions and guide the team. Ideally, you can also do the work yourself if required. But it doesn’t mean that writing code should be a key part of your job.
There are many other ways to stay technical.
Code reviews: A front-line manager can and should pay close attention to code and can participate in code reviews
Design reviews: Managers can participate in and join technical design reviews
Side projects: If you still love to code, side projects are a great way to keep technically sharp.
Final Thoughts
As you grow in your career as an engineering leader, you will have to let go of writing code at some point.
The point at which you’re managing more than one team, then it no longer becomes reasonable to write code.
You can still write code outside of work, but if you want to write code for your day job, the management path likely isn’t the right one since it will inevitably take you away from the code.
Get In Touch
I’d love to connect on LinkedIn.