You’ve been promoted to Tech Lead! Congrats!
But what is a tech lead?
As a Tech Lead, now you’re (potentially) responsible for:
- Making sure your team fully understands project requirements
- Planning and prioritizing work
- Communicating status updates to other teams
- Ensuring the team is effective and performing well
- Keeping projects moving along
- Coaching/mentoring team members
But you don’t get any authority to tell people what to do, any additional training, and you might not even get a pay bump. Oh, and you’re still expected to deliver whatever code you can manage to write in between meetings. So challenging is this role that Software Developer Vinicius Gomes wrote We don't need a Tech Lead, arguing that rather than expect a single person to perform all these tasks well, it’s better for teams to distribute the responsibilities among the team.
But over at Hacker News, commenters argued that it’s actually helpful to have one person make command decisions, clear hurdles, and serve as a single point of contact for other teams, among other things. It’s also a good way to test the waters on whether you want to follow the management track for career advancement.
So what’s so bad about being a Team or Tech Lead? Whether you just got promoted and want to know what’s in store or you’re considering gunning for this role, this article will outline the four worst things about this role, and offer tips for performing well despite the challenges.
1. Not getting to code as much
There are only so many hours in the day. So if you get a slew of new responsibilities, it stands to reason that you’re going to have to carve out time for them from your current responsibilities. A good Tech Lead cannot code as much as they did when they were an Individual Contributor. And for people who love to code, that can be tough.
On Reddit, user william_fontaine wrote that when he was working as a lead he was only getting to code about five hours per week. The rest of his time was divided among non-project meetings (20-25 hours), reviewing other developers' work and design (5-10 hours each), “and a few hours of looking for a new job where I wouldn't be a lead anymore.” Ouch.
Principal Consultant and Developer Jeff Norris has to balance his individual contributions with the overall productivity of the team when he’s Tech Lead. “It usually ends up being more important to focus on the team’s productivity,” Norris wrote. “It no longer matters whether I get any stories done or not; what matters is whether we as a team are successful. I might go through a week and not commit a line of code, because I am bouncing around removing roadblocks so that the team can be effective.”
How to cope
Many people feel that Tech Leads should spend the majority (or at least close to a majority) of their time coding. If you’re spending the majority of your time coordinating, an argument could be made that you’ve been unfairly co-opted into an Engineering Management role. The difference, ideally, between a Tech Lead and Engineering Manager is the coordination part of your job should be a part-time role or a temporary tour of duty. If you’re doing the job of an Engineering Manager but don’t have the title or the pay, it might be time to push back.
In the meantime, give yourself a break when it comes to how much code you write, how good your code is, or how well you know the technology. Instead, focus on getting good at the tasks now under your purview. Does your team understand what’s going on in the company? Have you set a roadmap and are you sticking to it? Can you identify underperforming teammates and flag that to your manager? Are you aware of any skill gaps on your team and have you flagged that to your manager? While not all of it will apply, How to evaluate Engineering Managers can help you better understand the KPIs of your new role.
2. Context switching
Another, related problem is that when you do sit down to code, you’ll get interrupted a lot more often. “It is very difficult to get into the groove of writing code if you’re interrupted every hour by a meeting,” Camille Fournier wrote in The Manager’s Path.
Due to a phenomenon called “attention residue,” it takes around 20 minutes to get fully focused on the task at hand. Which means your productivity falls as your number of interruptions increases. So not only do you get less time to code, but you’ll get less code written in that time.
Since code is easier to measure than your new responsibilities, it’s easy to get down on yourself about what feels like a decrease in productivity.
Another hurdle is that now that you have more responsibility for the team’s code, you may be tempted to go in and fix errors yourself. This is a mistake, though. First, because it’s a sure path to overwork and burnout. Second, because it will disempower your teammates. And third, because it shortchanges them of the opportunity to learn and grow. And as a Tech Lead one of your goals is to help your team get better at their jobs, not do their jobs for them.
How to cope
Rather than mourn your loss of Focus Time, work on opening up more of it for your team. "It's important to get your team into a schedule that allows them to be focused on development for long stretches of time, because they will need to focus for several days on coding problems,” Fournier wrote. “Part of your leadership is helping the other stakeholders, such as your boss and the product manager, respect the team's focus and set up meeting calendars that are not overwhelming for individual contributors." Fournier also warned that “The worst scheduling mistake is allowing yourself to get pulled randomly into meetings.”
Luckily there's a free tool that can automatically create more Focus Time for you and your team.
3. Having to do things you’re not good at
If you get promoted to Tech Lead, chances are you’re pretty good at your job. In fact, it might have been a long time since you had to do anything you were bad at. Being bad at things, for lack of a better word, sucks. It’s demoralizing, embarrassing, and uncomfortable.
Unfortunately, for the vast, vast majority of Software Engineers, being a Tech Lead is a crash course in stuff they’re bad at. Fournier writes that a Tech Lead is also a Systems Architect, Business Analyst, Project Planner, Team Leader, and, of course, Software Engineer.
“A tech lead requires skills that include coaching, influencing, facilitating, motivation and delegating,” wrote Ben Rossi, Editorial Director at Information Age.
Project management is a huge part of the role, meaning you need to get good at understanding processes, dealing with complexity, and strategic thinking.
And whereas before maybe you didn’t know much about how your production environment is configured, that won’t cut it as Tech Lead. “The ‘works-on-my-machine’ anti-pattern is common for great developers, but tech leads have to think in terms of the overall system, and not just the code,” wrote Ben Rossi, Editorial Director at Information Age.
No more heads-down individual coding, now you’ve got to think about how to maximize the work your team can do in parallel.
Lastly, and kind of tying all this together, a good Tech Lead is more comfortable with ambiguity and able to accept sub-optimal solutions than an individual contributor. When to accept good enough and when to push for better is ultimately usually a judgment call. So you’ve got to be good at making decisions when you don’t have a clear-cut, data-informed answer.
How to cope
The faster you let go of needing to know everything already, the faster you’ll learn everything you need to know. And the better time you’ll have along the way. Imposter syndrome is rampant here, and the way to head it off at the pass is to recognize that you weren’t promoted because your manager thought you were good at all this already. They promoted you because you showed an interest in and aptitude for learning it. So ask questions. Lots of questions. Stupid questions. Embarrassing questions. Take classes. Find a mentor.
4. Working with people
The Tech Lead role requires a lot more communication than you had to do as an individual contributor. Now influencing, persuading, coaching, advising are a big part of your job. And let’s be real. Most proficient Software Engineers aren’t people people.
Not feeling like you’re socially adept can be a challenge because a lot of a Tech Lead’s work requires a deft hand. For example, you may be asked to oversee and review other developers’ code. You may need to give presentations. You’ll likely need to explain what’s going on with Engineering to other parts of the organization. And explain what’s going on with other teams to your team. And the news won’t always be good.
Another tricky social situation is when fellow coders argue, you may need to help referee and break stalemates. The Tech Lead “should act as a tiebreaker when the team is stuck between two similar solutions, and they should keep the team from thrashing by keeping the team from continually re-opening decisions that have been made,” Norris wrote.
And then while you’re trying to become proficient with people, your tech skills will likely stall. Which is precisely when a junior upstart will join the team and show you up. That’s what happened to Peter Gillard-Moss, Head of Technology for Thoughtworks' Technical Operations, when he became Team Lead. “As the tech lead, I felt that I had to prove myself as the most technically capable,” Gillard-Moss wrote. “I’d feel insecure every time they demonstrated their ability to others (especially my managers), concerned that they’d view them as more suitable for my role than I was.”
How to cope
When it comes to working with people, empathy is your friend and ego is your enemy. Be open to verbal and non-verbal feedback on your communication style. Try to put yourself in others’ shoes when communicating. Ask stupid questions. Over-explain. And let go of the idea that you need to be the person who knows the most about the technology. Your focus needs to switch to motivating your team, running productive meetings, and delegating work.
Another tip from Norris: “One piece of useful advice that I received early on as a Tech Lead was to go around and talk to people - having 'water cooler conversations' with the people that are the stakeholders in your project. Don’t restrict it to work; understand how their kids are doing, talk about their favorite restaurants. Engage with them, because if you have a good working and personal relationship with someone, they are a lot more likely to let you know when things are going badly, as opposed to waiting and seeing what happens. They are also more likely to get you involved earlier or give you relevant, timely feedback. Those relationships are important. You can’t retroactively create a relationship, but you can proactively build one.”
So, what is a Tech Lead? A Tech Lead is a talented Engineer who has an interest in honing their communication, project management, and coaching skills. As many of these skills are essential for management, trying out a Tech Lead role is often a good way to see whether management is for you. And being promoted to Tech Lead is a good way to gain greater influence on your team’s priorities and overall direction.
But the role isn’t without its challenges, including having to step back from writing as much code as you used to, having to switch contexts far more often, having to spend more time doing things that you’re not good at yet, and spending a much larger percentage of your day working with people.
Got any tips for killing it as a Tech Lead? Let me know at cathy at getclockwise.com.