If you are a software engineer like me, at some point in your career you will need to make a choice - to manage a team or to continue as an individual contributor. This is a litmus test that will help you decide if engineering management is for you. Do you feel passionate about recruiting, career development, strategy, architecture, coding and program management to the point that when needed, you are willing to devote 100% of your time to any of these areas?
To make the right career choice, you first need to understand the areas that you are likely going to work on as a manager. It is important to grok and experience these areas so that you can figure out if these areas actually drive you. I classify these expectations into the following buckets:
Recruiting: Managers need to spend a lot of time in making sure that they are hiring the best people. Managers also need to ensure that skill set gaps are identified and filled right away. This is the only way to build great teams and products. Managers need to able to source candidates that are good fits and be great at closing them. I personally spent a good chunk of 2013 on recruiting and closing candidates. Of all the skills you can develop as a manager, recruiting is by far the most important one - more on this in a future post.
Career development: Great managers take good care of their team. Period. Managers need to spend a large chunk of their time with the best people in their team. It is critical to ensure that the top performers, and engineers with high potential are getting the right mentorship. I make it a point to always have a weekly 1:1 with the best people in my team.
Strategy: Setting a strategic vision for the team and product, deep understanding of what the team is good at is an another important trait. Managers need to make sure that there are good lines of communication and understanding of this strategy across different stakeholders. Also, setting clear communication channels with your peers should be a focus. I spend at least 2-3 hours every week meeting and socializing with my peers.
Architecture: Driving the architecture, in partnership with the technical leaders in the team and having good engineering sense is a no brainer. Great engineering leaders are able to identify technology needs and always strive to achieve leverage in the products and systems they build.
Coding: As a manager, you are likely not going to be able to actively code after around 5-6 reports. However, having a passion for coding and being able to dig into the code when needed is a definite prerequisite for any engineering leader. It is important to have a deep understanding of the development process, how the software is built and ability to debug issues.
Program Management: Time and again, a manager will need to assert if projects and products are making positive progress and also be able prioritize based on tradeoffs. Stepping up when needed to manage the project, planning and delegating tasks is required to be successful. Having the right processes in place so that communication flows both up and down is important. All managers in my team are responsible for project delivery.
Great managers are comfortable focussing on combinations of the above, at different levels. One could argue that you can hire the best people for these individual skills, without being passionate about them. However, this will not scale in the long term and I personally believe that to be successful you need to have a deep understanding of what it takes to tick in all of these areas, which can only be sustained if you are enthusiastic about them.
Also, I am not advocating for a manager to focus on all these areas. In fact, doing that will guarantee failure. You would need to adapt based on the team's skill set, their size, stage of the company, where you are in the management ladder, how well the company is doing and your area of focus.
Figuring out if you are passionate about these is actually easy. Just dive into it! Start by being technically strong i.e, focus on coding and architecture. This is a pre-requisite for being a good engineering leader on either the management or individual contributor track. Next, mentor an intern, lead a large scale project and work your way through, while understanding what drives you. If you are passionate about something, you can and will get really good at it. More on exploring opportunities to develop these skills as an individual contributor in a future post.
Thanks Kiran Prasad for mentoring me and helping me think about this. Thanks Roshan Sumbaly for reviewing the article. Thank you Mike Gamson for inspiring me with your influencer post Dive in, the water’s freezing!
Love to hear your thoughts.
The Author: Sumanth Kolar
About:
Engineering executive with a track record of transforming products and teams in hyper growth companies. Strong in building, scaling consumer and enterprise products. Currently, Engineering leader at Uber, lead the Rider team responsible for helping 110M+ consumers with 7B trips every year
Post a Comment