The Tech Lead Role: Notes From The Manager's Path
In her 2017 book, “The Manager’s Path”, Camille Fournier has a chapter on the tech-lead role. Here is a summary of what I learned from it. Where applicable, I’ve shared notes from my own experience as well.
What’s a Tech-lead Anyway?
We know from the title that it is expected to be both a technical position and a leadership role. Like many titles in tech, “tech lead” lacks a common definition. The tech lead may not have exactly the same role from company to company, or even from team to team within a company. However, there are some commonalities.
The tech lead is learning how to be a strong technical project manager, and as such, they are scaling themselves by delegating work effectively without micromanaging. They focus on the whole team’s productivity and strive to increase the impact of the team’s work product. They are empowered to make independent decisions for the team and are learning how to handle difficult management and leadership situations. They are also learning how to partner effectively with product, analytics, and other areas of the business.
You can’t lead without engaging other people, and people skills are what the new tech lead is asked to stretch, much more than pure technical expertise. Tech lead is not the job for the person who wants the freedom to focus deeply on the details of her own code. However, tech leads will be working on one major new technical skill: project management. The work of breaking down a project has a lot of similarity to the work of designing systems, and learning this skill is valuable even for engineers who don’t want to manage people.
[My notes: Camille’s description is engineering focused, but most of it translates to science tech-leads as well. Project management and people skills are where I feel stretched the most as a new tech-lead.]
The Different Hats
As a tech-lead, you need to be able to step away from the code and figure out how to balance your technical commitments with the work the whole team needs. You have to stop relying entirely on your old skills and start to learn some new skills. Here are the different roles a tech-lead takes:
Systems architect and business analyst: This requires you to have a good sense of the overall architecture of your systems and a solid understanding of how to design complex software. You need not perfectly identify every single element of a project, but there’s a lot of value in spending time thinking through the externalities and issues related to a project.
Project planner: Project planners break work down into rough deliverables. With this hat on, you’re learning to find efficient ways of breaking down the work so that the team can work quickly. Part of the challenge here is getting as much productive work done in parallel as possible.
Software developer and team leader: Software developers and team leaders write code, communicate challenges, and delegate. As projects move forward, unexpected obstacles arise. Sometimes tech leads are tempted to go to heroics and push through these obstacles themselves, working excessive overtime to get it all done. In your position as tech lead, you should continue writing code, but not too much. Even if you are tempted to pull a rabbit out of the hat yourself, you must communicate this obstacle first.
[My notes: I still struggle sometimes with knowing when to do something single-handedly vs when to delegate. For a new tech-lead transitioning from an IC role, finding this balance is hard and takes time.]
Managing Projects
As you move forward in your career, you need to understand how to break down work that has complexity beyond the scope of what you can do as an individual. Project management for a long-running, team-based project is not what most people consider fun. It can be tedious and sometimes kind of scary. But the alternative is the project failing slower, not faster. Here are some guidelines:
-
Break down the work
-
Push through the details and the unknowns
-
Run the project and adjust the plan as you go
-
Use the insights gained in the planning process to manage requirements changes
-
Revisit the details as you get close to completion
[My notes: Project management is a big part of tech-leading. For applied science projects with the added uncertainties due to science unknowns, front-loading the work that reduces uncertainty about the science aspects of the project is even more important.]
How to Be a Great Tech Lead
Understand the Architecture: If you go into a tech lead role and you don’t feel that you fully understand the architecture you are supporting, take the time to understand it. It’s almost impossible to lead projects well when you don’t understand the architecture you’re changing.
Be a Team Player: If you’re doing all of the interesting work yourself, stop. If you’re only doing the most boring work, stop that, too. Working on the less exciting parts of the code base can teach you a lot about where the process is broken. But you needn’t always be self-sacrificing in what you choose to work on.
Lead Technical Decisions: Determine which decisions must be made by you, which decisions should be delegated to others with more expertise, and which decisions require the whole team to resolve. In all of these cases, make it clear what the matter under discussion is, and communicate the outcome.
Communicate: Your productivity is now less important than the productivity of the whole team. Often, this means that you pay the price of communication overhead. Instead of having every team member sit in a meeting, you represent the team, communicate their needs, and bring information from that meeting back to the team. If one universal talent separates successful leaders from the pack, it’s communication skills.
[My notes: In addition to understanding the system architecture, for applied science leads it’s also important to build an understanding of relevant academic research areas by reading papers. Decisions about the IC work to take on myself are still tricky for me. The most important thing to avoid is taking up IC work that you don’t have the time to do properly, so that you don’t become a blocker for the rest of the team.]
Closing thoughts
Camille has done a good job of describing details of the tech-lead role that new or aspiring tech-leads would want to be aware of. The tech-lead role as described by her is very similar to what I’ve experienced as a science tech-lead in MSAI. Although none of the stuff was brand-new for me, her guidance on how to handle different challenges of the role were very useful!
Further reading
-
Full book: Amazon link (If you’re at Microsoft, you can find the ebook in MSLibrary)
-
Other useful blog articles by Camille Fournier: