At QDivision our teams are formed into pods of about 4-6 developers, a product lead, and a tech lead. The tech lead responsibilities are not too different from any other developer on the team. In fact, as a tech lead myself, that has been a tough skill to learn and apply to my daily activities.
For a team to be self-organized, everyone has to be involved and moving together in the same direction, as much as possible. One person should not be so core to the success of the team that without them, the team would be impeded by that missing person. The team should use all available skills and knowledge its members offer to create a potential success multiplier for the whole team. The tech lead should be an enabler for keeping that accountability alive and be cautious of not falling into the same trap.
Why the role?
At this point you might be thinking, why have such a role on the team? Especially, if all members of the team are supposed to be striving toward productive equivalence. Tech leads are experienced developers with a desire to learn and share new concepts and technology. Essentially, they are tech geeks that keep an eye out for the singularity event and can’t wait for self-driving cars; so they can binge watch a tv show, listen to a podcast, or read a blog like this one during their commute. They are the mediator of technical decisions when the team consensus isn’t clear or a tie needs to be broken. A mentor for members who are newer to the team, a technology, or a development practice that the team is using or wants to use in their daily work.
Tech leads at QDivision are a primary touch point for communications into the team at a technical level, and across the QDivision development community as a whole. The tech leads get together and share their teams’ efforts on a regular basis and talk through any successes, or issues. These don’t necessarily have to be technical, it could also be related to team health and/or effectiveness. As we share, we not only learn pitfalls to avoid but, learn new things that might enable our own teams.
Getting it right
What are the signs you could perform better as a team and what can you as a tech lead do to help direct this? You might notice the team has an individual that is the owner of a particular task that occurs frequently; or a team member is working extra hours to get a hard task complete. It might be there is only one developer who knows how to build and release a particular part of your application. Many things can occur that reduce team effectiveness and get in the way of self-organization.
If you are doing team retrospectives, be there to ask leading questions to get a conversation going about what you are noticing. Use these conversations to develop experiments the team can perform to get real actionable data. Even outside of retrospective I like using questions instead of direct statements to get some critical thinking going and hopefully some great collaboration.
It is really important that a tech lead try to avoid “we should” or “you should” statements. This could quickly hamper the self-organization of the team in unfortunate ways. Try using “what if” or “could we” statements to create a conversation, who knows maybe the tech lead will learn something. In the end this is the tech lead’s biggest responsibility to the team, to help with its self-organization not only technically but, collaboratively as well.
Being a tech lead can be kind of stressful and isn’t for everyone. You may find yourself wondering “What the heck am I doing?!” some days, maybe even some weeks. But the benefits outweigh the cons. Being a tech lead is fun, exciting, and very rewarding. You experience a hyper organized team of individuals getting a lot done and providing solutions your customers love.