From time to time, I get various declinations of the same question: why did you decide to move to engineering management? It’s not necessarily in job interviews: it might be a colleague, somebody I’m mentoring, or a friend of mine. Even my wife asks, sometimes out of genuine curiosity, other times more in a “why did you do this to yourself” fashion - so I thought it might be interesting to articulate an answer in written form.
First of all, I’d like to clarify that I don’t consider moving to management a definitive choice for my career. I’m a big fan of the pendulum concept, and I’ve being swinging way before I knew how it was called, jumping back and forth between coding and different degrees of leadership roles:
IC (9y) -> Tech/Team Lead (5y) -> IC (1y) -> Team Lead (2y) -> IC (2y) -> Team Lead (1y so far)
These days I’m working hard to become a better engineering manager, but I can’t exclude that I might go back to full time coding in the future, hopefully even as a better programmer. I like to talk a lot about drivers in my job, so here follows a list of what drives me towards engineering management.
Driver n.1: Amplifying
Often times I took the lateral step to management because I needed to move forward something that was just too heavy for an IC: one time it was to organize a team the way I envisioned, another time to help with hiring, another time to deliver a risky project that was stalling, or that time that I picked up the lead role on the team that nobody wanted to join (probably the biggest success in my career so far ❤️). I like to build stuff that works and that’s useful to people, and as an IC this can be achieved through a very well crafted piece of code implementing a certain feature; but as a manager, I can achieve a goal through a full fledged team capable of a bigger impact on the product than my code alone could ever have.
Driver n.2: Talent Spotting
At the risk of sounding blatant, I would say I’m a more than decent software engineer at this point. Still, there’s something I can do even better: it takes me no time to tell when I’m not the best engineer in the room, and when this happens, I tend to naturally switch into low-ego mode and do my part, eager to learn more than to lead. This helped me countless times and gave me the opportunity to learn a lot from complex projects (and complex people), even when my contributions were modest. As an engineering manager, I very often leverage this attitude to acknowledge somebody’s potential and do whatever I can to let it emerge, and this feels as good and natural to me as writing good code.
Driver n.3: Climbing the ladder (please don’t do this)
It happened that being able to climb the career ladder in a company was part of my decision process to accept a management role. While there are still companies that (irresponsibly) don’t provide a career path for ICs, this shouldn’t be a valid reason to switch to management: I got lucky and things turned out good for me in the end, but what if I became unsatisfied or even frustrated for not getting what I expected? The risk is to actually hurt people, and rest assured most of those issues are not fixable.
I like mentioning these three drivers when I try to explain why did I become an engineering manager, but reality is obviously more complex than this. Since I tend to go back and forth between coding and management, I find myself in the need to make decisions more often than people with a more “stable” career, and the factors contributing to such decisions are many and possibly different every time. Several of those are negative factors (frustration, money, pride, boredom even) so it’s important for me to recognize them and bring back the focus solely on drivers number one and two.