A common career paths for software developers is towards a “team lead” role.
If you’re lucky enough to work somewhere that Team Lead option, it’s a very attractive role: offers a transition for dev’s interested in management, retains some of that key senior-dev contribution, and sometimes helps avoid having to hire / move people into a more traditional Manager role.
But its pitfalls are serious: TL’s generally struggle balancing individual contributor commitments vs. management responsibilities, and the perceived importance of each.
From personal experience, and from managing Team Leads, some tips!
Guard Your Time
Acting as a Team Lead requires you to be really aware of how you spend your time, and what you expect to deliver in that time.
For example lofty, heroic Sr. Dev achievements can be less valuable than more predictable output, especially for to those that depend on you for next steps.
Ask yourself the obvious questions:
- How much time can be set aside for individual work. (2-4 hours per day is normal).
- How much time can be dedicated to organizing or unblocking work, alignment, reporting, client calls, etc. (4-6 hrs/day)
- Do you have direct reports? How much time will you dedicate to 1:1’s, mentorship, onboarding, etc. (1-2 hrs/week/person)
This split of time will impact how you can perform team activities like pair/mob programming, white-boarding sessions, etc. because you may not have long stretches of dedicated time.
The simplest way to visualize this challenge is to set it up in your calendar.
- Block off dedicated slots for certain types of work (then guard them with your life).
- Pro-actively book time with your team for work that you need to do together.
- Identify things you have to do well, give yourself time to prepare (weekly demo’s to the CEO, client meetings, etc.)
.. knowing that it’ll change from week to week, but have these rough proportions. Most importantly, run this setup by your manager. Maybe they have a different vision about how to spend your time?
Focus on More Constructive Efforts
The “individual contributor” time Leads have has to be used very constructively.
There’s a few ways to play this … some thoughts:
Taking high value, undesirable work (difficult-to-reproduce bugs, client escalations, etc.). Those issues keep you connected with details, and identifies difficult things to mentor the team on.
Architecture and high-level software design for the team. Something I found works well is scaffolding new capabilities, and being involved in that first week .. but letting the team fill in the blanks, iterate.
Technical documentation becomes more important as you’re more exposed to stakeholders, other teams, etc. Docs influence more of the organization than your dev output does.
Code reviews can get overwhelming for any lead. Good practice is to defer to the rest of the dev team, and focus your review attention on very important or risky deliverables.
Understand Perceptions of Your Contributions
Regardless of other duties, Team Leads are often perceived as “developers first” by others. That can be positive or negative, depending on how you really want to contribute.
Navigating this perception of the role can be really challenging.
Personal story: I was leading a team of four on a new product. The plan was ambitious, I was leading efforts with a client-facing team and designers, and realised a better solution, but it’d move the timeline.
I went to my executive asking that we re-evaluate the promised timeline so we can deliver a better thing. They started asking me about some implementation detail that I wasn’t aware of. Then mentioned that I should know those details, and ignored questions about the plan. It was frustrating; I felt under-appreciated. Later I realised the mismatch with what the company expected from a Senior Developer in Lead role, vs. what I was focusing my energy on day-to-day.
Building resiliency for those times, and being flexible enough to contribute on the many sides of the role, is tough but great for professional growth.
Hopefully you found this helpful, and good luck with your Team Lead future.