My Time as Engineering Team Lead
Hello reader, today lets talk about being an engineering team lead! I was one for roughly 7 years and towards the latter of that period I came to some realisations that led me to transition back into being an engineer. Some of you may find the following useful, whether you are considering a leadership role or to help you solidify your career path.
Broadly, my responsibilities as an engineer are as follows:
- Fixing bugs
- Implementing feature work
- Maintaining the code (refactoring, tests, documentation)
- Maintaining the development and build environment
- Monitoring the production environment
- Addressing performance issues
- Deploying code
- Mentoring
- Assisting my team lead with planning
I enjoyed the work! What I most enjoyed were fixing bugs, addressing performance issues and maintaining code. They were puzzles for me to tease apart and address, providing me with great mental stimulation. It meant that I didn’t need to scratch that itch at out of work hours, allowing me to enjoy my time off with my other hobbies.
Now back then I wasn’t very interested in a leadership role but my manager said to me “I need to split my team into smaller teams and I’d like you to lead one of them. Don’t worry, you’ll still be able to do the software engineering that you love and you’ll gain a lot of valuable experience that comes from leading a team”. Thus I went into the team lead role with a mentality of “I’ll split my time between leadership responsibilities and engineering responsibilities”. So what were my leadership responsibilities?
- Mentoring my team
- Managing my team’s workload
- Triaging and delegating work
- Planning and road mapping
- Progress reports
- Assuming ownership of codebases and services
Phew! My new team lead responsibilities on top of my engineering ones kept me busy. I did enjoy the work initially, after all it was new to me and I enjoy learning new things. However as time went on it became apparent to me that I was struggling in some way, although I couldn’t quite put a finger on what it was about my new role that I didn’t like. I was also good at what I was doing (based on the feedback from my managers) which made it harder to figure out what the unease was all about.
So I kept at the role for 6 years, always with this undertone of unease I couldn’t quite identify. Then sometime during my 6th or 7th year in the role I had an epiphany:
I was context switching too much and I did not enjoy the stress that came with context switches.
So what was happening was that I would be focusing on an engineering task and then suddenly I remembered or was interrupted by my manager about a piece of planning or triage work that needed to be done. Or vice versa, I’d be focusing on some planning piece or reporting and be reminded of a piece of engineering work that needed to be done before a deadline.
So I came to the conclusion that in order for me to be effective and happy at my job, I needed to focus on one role. I must either dedicate all of my time to being an effective team lead or all of my time to being an effective engineer. With this realisation in hand, I worked with my manager to wind down my team and merge in with another team as an engineer.
If you peruse the internet long enough about topics in software engineering, invariably you’ll come across articles talking about how transitioning engineers into team leaders are not a good idea. I think one of the main reasons why this isn’t a good idea is that most engineers will attempt to retain their engineering duties when working as a team lead and this invariably leads to a lot of context switching as they constantly hop between roles. This context switching means that they are a lot slower and more distracted compared to when they had a single role to focus on.
So to any engineer who is considering a move into a leadership role, I think you need to first answer the following question:
“Are you willing to give up your engineering responsibilities to focus on your leadership ones?”
If the answer is no, then perhaps a leadership role is not for you.