For those of you that have worked with me know, I have a sign above my monitors that says, “I’d Rather Be Coding”. At the core of it, I entered into the world of software because I enjoying coding. There is nothing like digging into a problem and finding an elegant software solution at the other end. However, the other day I received advice from one of my peers that engineering managers need to stop coding in order to be good at their job and get to the next level. It made me stop and think. Should engineering managers stop coding in order to move forward with their career?
I entered into management partly because of my drive to actually get things done. I tell the engineering managers that work for me, “Without engineering managers, nothing would get done.” Engineers managers need to be good at project management, project execution, program manager, technical design, technical development, strategic thinking, people skills (defining a vision and engaging the people) and negotiation skills. This list doesn’t even include the soft skills like multi-tasking, basic management skills, etc. So, when is an engineering manager supposed to get time to code? Or better put, is it important enough to prioritize in the laundry list of “things to do”?
One of my biggest fears is becoming simply a project manager (no offense to the great project managers out there). I project manage because its a means for me to produce results. There isn’t a day when I wished to have Microsoft Project open on my desktop. Actually, I can honestly say that I hate the tool. However, I’ve seen engineering managers that were really “ubber” project managers. They let go of the technology and were unable to jump into technical strategic thinking. Caught in a hole.
I think there lies the trick. Good engineering managers (Director level and above) need to “stay connected to the technology”, re-focus on the people and make the leap to strategic thinking, leaving behind core execution tasks to be delegated to younger managers. The phase “stay connected to the technology” becomes subjective depending on the person. Maybe its coding or being involved in design reviews or reading blogs or simply doing a code review every now and then. The best engineering managers I’ve worked with were able to efficiently “stay connected to the technology”.
That being said, the environment that you work plays a role in this equation. For example, working at place like Hewlett-Packard offers enough layers that there is probably someone to delegate “the technology” to, however at a startup there is no avoiding it. It’s all hands on deck which means closing Outlook and opening up IntelliJ. At a startup, engineering managers are overhead unless you’re the co-founder.