One of our senior developers shared this article around our office last week. In it, Vinicius Gomes argues that the idea of a “Tech Lead” is problematic. He says that instead of one person performing the many jobs of a Tech Lead, we should be aiming for a structure that empowers all team members to fill the necessary roles in a more consensus-based and egalitarian way.
Shanly Suepaul, the Myplanet developer who shared the article, offered it as a “check this out” type of read. It’s the kind of thing our teams do all the time. Often when someone shares a piece around in that manner, a bit of chat ensues, maybe a “Cool read!” or a “Thanks!” and that’s it. That is not what happened this time.
The amount of conversation that one article sparked spanned several days and several multi-paragraph responses in our team chat channel. (And if you know a developer, getting even one paragraph of writing is indicative of a *big* topic).
All this to say that the piece we were going to write this week got scrapped, because this topic took over our minds. So let’s get into it.
What is a Tech Lead?
“Some will tell you tech leads are software architects who never write code. Others will insist that technical leads are mid-level managers who may have been software developers at one time. Still others will say that tech leads are simply the best or most senior programmers at the company and they are leaders just by sheer quality of output.” — Jeff Carouth
Before we can debate the value of having a tech lead, it’s worth identifying the function of a Tech Lead. Traditionally, a Tech Lead (or a TechManager, Lead Platform Engineer, Head Architect of Development or whichever title du jour you prefer) is responsible for oversight and delivery. They are the final say in the development chain and the person held responsible in case of trouble.
Or at least, that’s mostly what they do. Where people tend to disagree on the role is in the follow-on functions, responsibilities, and duties. Amr Noaman, writing for InfoQ, says that a Tech Lead — regardless of the title they’re actually given in an organization — has one overarching responsibility. “[T]he main and common responsibility of this person in all organizations is product delivery.” But Noaman also acknowledges that’s not all the Tech Lead does.
“What varies is the scope defined for the responsibility of product delivery,” says Noaman. “[I]t may include design and development as well as collaborating with customers, team operations, reporting to senior management, and strategic product management!” Trying to determine what exactly the scope of the Tech Lead role is requires some serious effort and, like the title of the role itself, varies from organization to organization.
Many new Tech Leads find themselves in a management role, while others become the champion for technical rigour. Liaising with clients, evaluating code structure, facilitating team communication — these all fall into the Tech Lead’s wheelhouse.
Finding a one-size-fits-all definition of a Tech Lead may not be possible. But since we need a working start-point for our discussion today, this description from Jeff Carouth is the one we’re going with:
“A technical lead is someone who has a solid background as a developer, and has demonstrated an ability to effectively communicate.”
This definition works for two reasons: First, in all possible definitions of a Tech Lead, a strong and evolved technical background is key. There is no question a Tech Lead should have serious tech chops. And second, it highlights communication skills. Whatever functions you add to the job of a Tech Lead, communication skills are at the core. Communication is also the point where our internal debate on the Tech Lead topic really took off.
The Tech Lead Giveth…
Perhaps the most consistent argument in favour of having a Tech Lead is in having a steady, guiding communicator. For any team to function well, communication is key. And communication on a tech team includes several things, all of which can be aided by a strong, communicative leader. Let’s take a look at how a Tech Lead can impact team functioning through clear communication.
1 — Providing Context
Part of the Tech Lead’s responsibility is communicating to the team the aims and approaches of the project. A Tech Lead makes sure everyone knows what to do, how to do it, and has the tools to be able to do it to ensure expectations are met.
Providing clear guidance and a path to success is perhaps the most important job of a Tech Lead. And sharing insight on why this path was chosen and offering advice and guidance on how to follow it requires strong communication skills.
Erin Marchak, Drupal Practice Lead at Myplanet, compares the role of the Tech Lead to that of a General Contractor on a job site. “The plumber and the electrician shouldn’t have to worry about the layout of the bathroom when they start work — it’s the GC’s job to already confirm that with the architect/framers.”
For her, a Tech Lead is more there as an “in-service” role than as a “final decision”role. “It’s my responsibility to ensure that we have all the technical requirements hammered out and any technical uncertainty clearly defined prior to the team starting the work,” she says.
2 — Facilitating Discussion
A Tech Lead’s responsibility also lies in enabling communication among team members. Including voices that might get drowned out, quieting those that tend to dominate, and lending a voice to groups not represented in the discussion all fall under the mandate of a Tech Lead.
Erick Cardenas Mendez, a Myplanet developer, notes that the oft-cited ideal of “collective decision making” is frequently unattainable. “Collective decision making requires everyone on the team to be good at communicating (both sharing and listening). This is most often not the case.”
A strong Tech Lead can ease communication among technical team members. This allows them to share ideas, ask questions, and improve the knowledge base of the whole team. “A good leader will make sure people actually chime in,” notes Erick.
3 — Taking Ownership
A strong Tech Lead will also communicate a certain amount of responsibility. Unilateral decision-making isn’t desirable. But if everyone tries to take ownership, projects stall and no one is answerable to outcomes.
Tech Leads can — when necessary — take the decision-making mantle and run with it. Being able to do so without ruffling feathers requires a steady, guiding communicator with the trust of the team.
Jerry Low, another Myplanet Developer, advocates for team discussion frameworks that aim for consensus. But he also recognizes the need for a final word on matters when discussions reach a stale-mate. “Of course we don’t have perfect teams,” he says, “and I find every Tech Lead’s role changes from team to team, and from project to project. But I like the idea of a tie-breaker (after team discussion) when things are still ambiguous.”
All this to say that Tech Leads, when they are strong communicators, can ease a lot of the commonly faced issues on technical teams. They can ease intra-team communications. They can unblock stalemates on technical decisions. They can provide guidance and create clear technical road maps for work. They can even take on some client liaising, freeing the team from time-consuming non-technical work.
All of these are essential functions. All can be helped by a Tech Lead. But none of these requires a Tech Lead. Not one of these arguments outline why all these varied and important responsibilities have to fall to one, single person.
…And The Tech Lead Taketh Away
This is where Shanly’s initial reason for sharing the article — and his reluctance to support the concept of a Tech Lead role — come in. “Encouraging communication is an important role for someone on the team to have. But when you overload one person with many of these roles, it’s my experience that the team takes on the strengths and weaknesses of that leader.”
What he advocates for is a more balanced sharing of responsibilities. Yes, there is a need for a moderator or mediator who can help foster healthy, balanced discussions. Yes, there is a need for a strong technical expert to help steer the plans and answer technical architecture questions when they arise. And yes, there is a need for decisions to be made when consensus can’t be reached.
However, having a single person in charge of all these things (and more) not only runs the risk of draining and overwhelming the individual, but also of hindering collaboration and flying in the face of Agile practices. “Why do we rely on hierarchy (implicit or explicit) to make decisions within a team? Agile teams practice consultative decision-making. As part of the practice, we cultivate empathy, emotional intelligence, and listening skills to empower people to be heard,” says Shanly.
By assigning one person the title of Tech Lead, we’re taking a shortcut to conclusions that may hamper our success, he argues. And that’s where our internal debate lay: the functions are necessary, but as to who exactly performs those functions… well, that’s a tougher call.
To Tech Lead or Not To Tech Lead?
Ideally, the team divides and conquers. People take on different roles as needed and the responsibilities are shared. But ideal worlds are hard to come by, even in high-functioning, long-running, well-established teams.
Pat Kua sums up the conflict quite nicely: “Even when perfect conditions exist… it doesn’t take much to upset this delicate balance. Sometimes all it takes is for a new person joining the team, a person leaving or some stressful critical situation that drives the team into a state where arguing continues without end.” Not an ideal scenario, to be sure. So what’s the answer?
Do you assign the title and all that comes with it, giving one person a level of authority and a load of responsibilities which run counter to the ideal scenario of group-based decision making? Or do you leave a group to self-regulate, by and large, and hope they find an equilibrium and balance that enables a high-level of functioning while providing outlets for many members to share the load?
In our own organization we have people in Tech Lead-type positions. But our tendency isn’t to have a single captain steering the ship — we favour consensus building and active, Agile, team-empowered leadership. In the end, the solution for us is found via one of our own Technical Leads, Associate Director of Technology Everett Zufelt:
“I really don’t see this as a one size fits all problem or solution. A tech lead can be different things in different contexts. Some teams need tie breakers, some don’t; some teams have more trust for each other, some are still building trust; some teams have a solid amount of application architecture experience, some are still building experience. It can make life harder to reason about, but I think that the skill of a tech lead is to read the team, and to serve in the way that the team needs, based on the context in which the tech lead finds him or her self.”
Maybe that means being the clear, strong guiding voice. Maybe it means taking a step back to allow for each voice to take leadership on at different times. Tech Lead as a singular, specific function has its potential flaws, but when a clear communicator can read the team and offer the right kind of support, we have only one response: Lead on.
Are you pro- Tech Lead or anti-? Let us know in the comments below ⬇ or start your own discussion by sharing with your colleagues.