On any software team, the Technical Lead (TL) has a crucial role to play: This person functions as a leader and coordinator of the developers, as well as a point of contact with the business or management. Obviously, the capability of your TL will greatly affect the productivity and happiness of the entire team. What isn’t always obvious, especially to a new or novice TL, is that the responsibilities and skills needed to be successful aren’t simply a continuation of those they developed by gaining seniority on the coding side. Being a good TL involves mastering an entirely different set of people, attention, and time management skills: It’s a switch from “I write great code” to “I enable the team to write great code.” Creating the right environment to support a new TL’s transition can significantly jumpstart their capabilities, and therefore the team’s overall effectiveness.
Understanding the challenges
When a new Tech Lead is not prepared for how their daily tasks will grow, you are setting them up for a shock. This can happen in any organization, but is more likely to occur in one in which responsibilities are loose across roles, or teams have a high degree of self-organization. Some typical activities that often fall on a TL are:
- Creating and maintaining an automated build process
- Working with a PM or BA to plan the work and creating functional specs or user stories
- Communicating and collaborating with business stakeholders on schedule, budget, and technology constraints
- Working with an architect to plan the infrastructure, or planning it themselves
- Making general technical decisions, ranging from ones as large as choosing architectures, languages, and frameworks to as small as coding conventions and source control workflows
- Assisting developers when they have questions about the work or get stuck
- Reviewing the team’s work
- Supporting the career growth of their reports
That’s a lot more than just writing code! Newer TLs who are unprepared for this shift can quickly end up feeling overwhelmed by all the responsibility.
You can avoid a lapse in productivity by understanding the TL’s adaptation challenge and preparing them to tackle new responsibilities. Your new TL is going to have to learn how to manage time and interruptions, delegate, and adjust to the weight of leadership.
Managing time and interruptions
Developers ideally only have one active project task at a time, and a minimal number of interruptions throughout the day. (If this isn’t true within your organization, you may be dealing with deeper productivity issues.) For Tech Leads, these things both change; not only will they start juggling multiple tasks simultaneously, but they will also have to react to team members’ requests for help in order to prevent them from becoming blocked.
TLs who don’t consciously plan for and actively manage conflicting demands on their attention are going to feel overwhelmed. Increased stress and anxiety as they scramble to ensure team members aren’t blocked can impact team morale and affect work quality.
Letting go of responsibility, but not accountability
Delegating is a difficult adjustment because developers are used to spending almost all of their time solving problems themselves. For many, it’s the joy of problem-solving that brought them into the industry in the first place. It’s normal for an adjusting Tech Lead to be wistful about turning over interesting development work to others in favor of focusing on leadership tasks. However, hoarding too much important work is an unhealthy reaction to change. A potential trigger for this type of behavior is stress (often derived from schedule pressure or a lack of confidence in their developers’ capabilities). Most people under stress will fall back on their strengths. New TLs have to consciously guard against falling into a habit of doing “the hard coding” themselves at the expense of their other responsibilities. When TL’s slip into this pattern, it deals a double hit to the team. Not only are key tasks left undone, but junior team members are denied the chance to be challenged and grow.
Getting comfortable alone at the helm
Once a developer moves out of a senior developer or assistant TL role and fully assumes the TL position, they will suddenly find themselves set apart from their fellow developers in some respects. While they’ll continue to talk shop about coding and debate the merits of various tools or techniques with the team, they’re now responsible for reviewing the other developers’ work. Sometimes the TL has to gracefully point out someone’s mistakes and shortcomings without hurting their feelings. They must also learn how to effectively teach, guide, and occasionally mandate how things are done, all while maintaining team unity. A TL will always be isolated from their team members on some matters: for instance, they can’t ask someone else for advice on addressing continual poor work from a fellow team member—they have to take on that responsibility themselves.
Setting tech leads up for success
Fortunately, there are a number of things you can implement on an organizational level to help your new Tech Lead get oriented.
#1 Engage in upfront communication
The first thing is to create a plan for communicating what’s expected of the TL when they are promoted. This can be done formally, by reviewing a job charter description, or informally by talking those responsibilities over. A basic awareness of how their daily tasks and responsibilities will shift from “I code for the team” to “I enable the team to code” goes a long way.
It is also very useful for the new TL and project or product manager to meet at the beginning of a project and plan how to divide activities with overlap or handoffs. Every project has its own goals and constraints that may call for different management techniques, and every team member is going to bring their unique mix of skills and preferences to the table. Because of this, success is never completely formulaic, and collaborating on how to share responsibilities avoids unpleasant surprises based on unspoken assumptions.
#2 Promote scheduling and delegation
While task-shock can be dispelled with simple communication, managing time and demands takes actual practice. Learning to schedule and delegate properly will speed that process for new Tech Leads.
For scheduling, TLs should become adept at reviewing their open tasks, and prioritizing them based on urgency and others’ needs. This technique can become the byproduct of regular meetings with PMs and business stakeholders. Encourage your TLs to thoughtfully plan the start of each day, blocking off time periods, for example. This lets them focus on completing the most important task, rather than trying to make progress on three separate ones at a time.
Interruptions from team members can’t be scheduled, but they can be minimized. TLs can control interruptions by making themselves unavailable during their self-scheduled blocks for critical tasks, or welcoming ad-hoc interactions during certain times of the day. While TLs can’t be unavailable all the time, they don’t have to be available all the time, either. Another way to control interruptions is to reduce the number of questions a developer may have in the first place. Scheduling a joint review of a work item assigned to a developer before they start will uncover questions and undocumented assumptions ahead of time.
Delegating can be a harder adjustment: You’re probably promoting someone to TL because they’re a proficient developer, and proficient developers usually take pride in problem-solving. For this personality type, giving up responsibility while retaining accountability can sometimes be demotivating, frightening, or both. Project managers can help by monitoring what team members are working on and ensuring that tasks that only the TL can do aren’t languishing, or that the TL isn’t accumulating a pile of unfinished tasks. Peer feedback from developers can also gauge how well tasks are being delegated.
#3 Foster peer learning and active mentorship
The more you foster active learning, the faster TLs will grow into the position. Mentorship is one of the most direct, effective ways to achieve this. Before promoting someone, have them be an assistant TL. This gives the assistant a chance to acclimatize to the position’s demands and responsibilities, such as time management. In addition to the career growth it nurtures, formally designating an assistant reinforces the idea that TLs can’t do everything themselves and should be delegating as much as possible.
A designated “TL buddy” from another team can counterbalance any sense of isolation that might build up from being “the one in charge.” This person becomes someone the new TL can turn to with questions and concerns, or even just to foster mutual camaraderie on the exhilarations and adversities of the TL position. Getting advice and second opinions from an equal compatriot will go a long way in reducing feelings of seclusion and fostering leadership skills. If your company is big enough, you can take this even further by creating a TL forum to exchange ideas, brief each other on project difficulties and solutions, disseminate knowledge, and collectively brainstorm solutions to individual challenges.
#4 Enable continuous feedback and improvement
Lastly, like all positions, regular performance feedback is critical for knowing what’s going well and where improvements could be made. In addition to the traditional manager-subordinate review,, establishing a regular review cadence between TLs and their reports can accelerate the learning curve. TL’s will gain valuable insights on how they can improve work definitions and estimates and provide growth opportunities for their team members.
Your TL will discover that learning isn’t a one-way street—they can learn from their team as much as the team will learn from them! This can happen as formal annual or bi-annual 360 reviews, but high performing teams strive to keep feedback loops as short as possible with informal, ad-hoc discussions occurring naturally as part of a shared passion for learning and growth.
This goes beyond simply asking developers to rate their TLs. In order for feedback to be useful, your company must have an established culture of safe, honest communication. Feedback givers should be able to be truthful about opportunities for growth, but should be objective and constructive when describing them. Feedback receivers should likewise accept outside observation without anger or despondency, trusting in the good intentions of those giving feedback.
From trepidatious leader to team champion
Technical leads play a vital role in software development teams. They help define and clarify the work for team members, mentor and assist with technical questions and challenges, and are often the liaison to the business or PM on what is possible within the project’s constraints. The new breadth of responsibilities and demands on time are a paradigm shift from spending long hours focusing on a single work item, and they must additionally learn how to let go and delegate, and step up to being the sole technical leader. New TLs will take time to adjust and hit some bumps along the way. Knowing that the transition isn’t instantaneous and having a plan to support fledgling TLs in your organization will help them persevere through the growing pains, learn quickly, and establish themselves as catalysts of a productive, cohesive team.