When we’re deciding how to resource a Softwire project, we’ll almost always have a technical lead on it. We sometimes get asked how this tech lead role differs from a developer, and what the person’s responsibilities are.
To help answer these queries, I wanted to provide an overview of the key differences between a developer and a technical lead, and also outline how we choose who to promote into tech lead roles.
The tech lead has overall technical responsibility
A tech lead needs to take responsibility for the technical integrity of a piece of software. Although there will be a project manager (perhaps called a delivery lead or Scrum Master) who’s responsible for delivery to the business, they may be non-technical, or be too busy elsewhere to personally validate the quality of the deliverables.
Where a developer can focus solely on coding their own components well, the buck for overall technical quality stops with the tech lead. This means the tech lead needs to take responsibility for the output of each developer. If something goes wrong, they can’t simply say ‘but George coded that part!’.
- The tech lead requires broader expertise than a developer – A developer will often work on a particular area, usually one in which they have specific expertise. The technical lead, on the other hand, must know about all areas of the delivery, including testing and rollout strategy.
- The tech lead needs to train and mentor developers – If someone is going to be the tech lead for a longer period of time with the same developers, they’ll also be the one training and mentoring them in order to get the best long-term team output.
- The tech lead must be adept at managing differences of opinion – Debate over how to solve particular issues on a project needs to be encouraged. You want your developers contributing their ideas on how best to do things. Most of the time, this will be calm and measured. But if conflicts do arise, it will fall on the tech lead to calm the situation and help reach a resolution – or make the final decision if there isn’t consensus. In these situations, you also want your tech lead to be ensuring that all views get heard, and that it isn’t simply those who shout loudest who get their way.
How we choose which developers to promote to tech leads
The fact that a person can demonstrate the key skills of a technical lead while working as a developer, makes it relatively straightforward for us to judge who to promote into this role.
Some of the areas we look for include:
- Proactive approach to problem-solving: does the person spot problems, assess possible solutions in the context of the project, and present them to their tech lead and/or project manager? As part of this, do they offer to take responsibility for delivering the solutions they’ve identified?
- Customer interaction: There will almost always be non-technical restrictions to get around, to be able to get the right technical solution. How does the developer go about liaising with client stakeholders on these matters? Alternatively, do they work constructively with their project manager/delivery lead to get them to speak to the customer on the developer’s behalf?
- Technical expertise: Do they seek to become an expert in a particular technology, help others with their technical queries, and assist in setting the project’s technical direction?
- How others perceive them: Do colleagues trust and rely on them?
Being able to see how well our developers are demonstrating these traits means we’re not taking a plunge into the unknown when we appoint our tech leads. For our customers, this means they can have the confidence that the person with ultimate technical responsibility for their software has all the capabilities necessary to make it a success.
This article is based on a chapter from my book, Galvanising the Geeks. You can buy Galvanising the Geeks on my website.
I’m available to have a chat about your project and how our team could partner with you to support your goals. Get in touch by filling out this form.