Hi! In this post I will be sharing my experience being a Tech Lead and working with them now as Product Owner. My objective is to list what to do if you are one, and what to look for if you’ll be working with one.
First off, Tech Leads must be comfortable with decision-making, for the team will lean on them to choose when multiple solutions are available, as well as to decide how to build and grow the architecture. They should be knowledgeable about the technologies involved in the project, but it’s not unheard of for a Tech Lead to rely on others in case they lack specific expertise. They’ll be in front of where the project is going by keeping up to date with the project’s features, architecture and Tech, and thinking about what the team will be implementing tomorrow: integrations, new tech, framework changes, reviewing updates related to the tech stack to see if they could help better future and existing solutions. Tech Leads should also have a good idea of how to implement the tickets the team will tackle and explain these solutions to the team and they should consider how they could affect the existing implementation. All of this makes the whole team confident about the technical path of the project.
Because of their Big Picture view, Tech Leads are also the go-to people when critical or production bugs arise and usually know what went wrong and how/who could fix it. This also puts them in the ideal position to document fixes, coming up with solutions for recurring problems and, depending on their workload, be the first contact for technical troubleshooting related to implementation (if workload is high, a Scrum Master can help out with this). They’re also the best person to carry the technical onboarding of new devs, although for large or mature teams there should already be a process and documentation that new members can follow (or SM can take care of this as well).
It is always recommended for the Tech Lead to have a Sr. Developer under their wing who can take over or cover for them. I have even seen Mid Developers take over as Tech Lead when they know all the ins and outs of the project, have good knowledge of the tech-stack, and are trusted by the team.
Another important thing to consider is that it's not just a question of a Lead’s technical ability, but also one of leadership and a willingness to help out and let others take care of implementation. A Sr. Dev can make do with understanding the tasks, and a high level of technical know-how in order to implement, but for a Tech Lead communication skills are paramount because they need to be able to transfer this knowledge to team members of various skill levels and temperaments.
But consider when a Tech Lead takes a too hands-on approach and starts implementing things on their own; the pitfall here is that teams tend to become too dependent on them and can’t move forward on anything without their OK; this stunts the growth of the members and slows down releases. They shouldn’t be totally hands-off though: when devs know that they can rely on their Lead if they have difficulties, it takes a great load of stress off them and is great for morale. It is best to teach and guide over trying to do everything yourself.
Helping share the vision of the project with the team and having them know what’s coming is also important as this tends to decrease the number of questions devs can have; they should to try to work towards a point where the Tech Lead can rest easy knowing that the team can move forward even if they’re not there.
Tech Leads also are best qualified to promote developer growth. Part of this is to have a high degree of availability for the team and be proactive when supporting devs, not just waiting for them to ask for support but offering it if you feel they could use it. Patience is involved as well, and I’ve seen more than one Tech Lead have to work to improve this in themselves: not everyone is the same and sometimes things will need to be explained more than once (or twice, or...). Furthermore, it helps their growth immensely to not just explain the WHAT, but also the WHY, as understanding the process behind a solution encourages better, more independent developers who can apply the same logic in the future and have the confidence to move forward without direct supervision.
Tech Leads should take into account the aptitudes of each Dev and work with them to increase their strengths and minimize their weaknesses. It helps to have recurring personal meetings every 2-3 months in order to know what interests them and what they think they’re good at in order to plan and keep in mind the tasks best suited for each, as well as give feedback on what they should work on and what they’ve excelled at. It’ll be much easier for a Dev to grow if they’re working on tasks related to their interests and are regularly getting feedback. Although a good Sr. Developer can carry the team and implement, it is much more beneficial in the long run to have him enable the growth of other developers: from Jr. to Mid. to Sr. or even into a Tech Lead.
Not every Sr. Developer can be a Tech Lead, and that's OK. Some Sr. Devs will not have the aptitudes or simply don’t want to become one: it involves a degree of administrative work, as they are usually the ones in charge of evaluating the Devs and they become technical advisors to project management. They will need to be available for many more meetings than a regular developer would have - with management, clients and stakeholders – and this means less time programming and being directly involved with the technical aspects of the project. Some Sr. Devs might have everything going for them, but they might just not like the level of interaction and people handling that a successful Tech Lead needs to have.
In summary, although programming ability and know-how are important, being a Tech Lead involves much more than just technical expertise. It also involves empathy, a natural tendency to want to take care of your fellow developers and leadership skills that become apparent even before taking on the position.
I want to give a big thank you to Josué González Yáñez, who helped me with some specifics while writing this article.