Engineering managers, stop coding!
So you became an engineering manager from a senior engineer. Congratulations and welcome to possibly the hardest change in your career. Everything is going to change — the way you defined yourself so far, your evaluation, your goals, the length of your work’s feedback loop. Now you start learning again, this time not the next tech stack or framework but something completely different. You’ll learn about people, their motivations, their pains, their unique perception of the world. You’ll learn some politics for sure, whether you like it or not. You’ll learn how to be there for others, how to be a servant leader. From time to time, you will fail. You’ll get tired in ways you never imagined before. You’ll get frustrated about the long feedback loops your work has. There will be days when you’ll want to get back to coding, you’ll want it bad.
Let me restate all the above: engineering management is not the natural advancement of an engineer’s career path: it’s an alternative track. It does help (a lot) to become senior engineers first, mostly due to the experience you gain during that journey about meta-topics in engineering and it also helps your communication as a manager with your engineers, but engineering management is something entirely different.
From the fact that you became an EM, I assume the following:
- you love to teach others
- you get more excited about the fact that you can help someone else to grow in ways they couldn’t even imagine than from the next new shiny technology
- you care a lot about the place you work at and you want to make it better and/or help it adapt to changes on the organization level
- you have no problem staying in the background, not taking praise but giving praise and taking blame for your team
- most importantly you have deep empathy towards others’ and you care about the people you’re working with
Now, you will get tempted from time to time to keep on coding in your team. This can spring from any combination of the following (or others):
- This is how you define yourself. You code.
- You get frustrated with your role and you want to go back to your comfort zone even if only for a little while
- You are afraid that if you don’t do it your knowledge will fade away and maybe your engineers won’t respect you anymore
- You’re concerned about your team’s velocity
- You’re an awesome coder, you not writing code would be a waste of talent
Let me give you a few reasons why you should stop right now.
- It will kill/stall your growth as a manager. You should focus all of your free energy on learning how to be an awesome people manager or organizational developer.
- You helping out the team gives false support and a false sense of security / velocity. This is not sustainable, you will need to work on organization level projects as well and maybe you’ll need to scale yourself up to managing multiple teams. If the team is thin without you, hire that new engineer.
- You’ll have a sub-par performance in both roles because of the context switches.
Try this instead: every time you feel the urge to write code, instead spend the time reading or learning something related to management. Everyone who manages people will have favorite books, blogs, or speakers so just ask a peer or two for some material to get started. Heck, I’ll even recommend an awesome book right now — The three levels of leadership