There are many paths which lead to the top of the mountain that is technical leadership - this all starts with the definition of the term itself. For the purposes of this article lets define technical leadership as a position where a leader leads a team and focuses on not just the details of a project, but also the larger implementation. The bit to pay attention to here is that a technical leader is still focusing on the details - the nitty gritty is, if anything, even more on a technical leader. An individual in the role will need to take the responsibility of:
- Making sure their team is up to speed on the best practices
- Ensuring the quality of code meets expectations
- Training their team to prepare them for the responsibilities that will help progress their careers
- Managing stakeholder expectations
- Delivering a full-scale implementation as agreed upon with stakeholders
That’s quite a lot of responsibility on the shoulders of one individual, isn’t it? But say you’re tackling all of these responsibilities and have embraced the role. How do you move up? The answer lies in these initial responsibilities. I believe what is most surprising is that technical leadership is much less technical than one expects in today’s technology spheres.
Making sure you team is up to speed on the best practices
As the technical lead, all the responsibility rolls up to you on details of a project for the stakeholder. You will be the main point of contact and you will need to be up to date on all the technical measures of said project. If you yourself are not well practiced in the technology, you can’t expect any other behavior from your team. First ensure that you are an expert level in the skills needed on a project. Once that is done, ensure that you are able to constantly work with your team to get them as close to that same level as possible. The buck stops with you. If you can maintain yours and your teams expertise, this will undoubtedly show that you contain the knowledge to not simply better yourself, but those around you. There’s not a quality I would rank higher than this when it comes to any sort of leadership.
Ensuring the quality of code meets expectations
This cannot be overstated, and goes hand in hand with the above responsibility of keeping you team up to speed on best practices. If they are well-versed, the chances of higher code quality increase substantially and make your job easier. One way I found to tackle these first two is hold ad-hoc tech talks or lunch and learns with an open forum for the team to ask questions relevant to the current project. This has a two-fold effect in that it helps you learn what the team doesn’t know and then allows you to further support and teach them on those topics. It will also have the unintended effect of building camaraderie with your team and potentially others at your place of work. Always feel free to extend the invitation to other teams that could benefit from the information that you have to share.
Training your team to prepare them for the responsibilities that will help progress their careers
The world of software is increasingly social, and your career growth also depends on you taking full advantage of this. There are only so many roles that let you excel at the technology and continue onto leadership without embracing a team - your team. You must learn to individually tailor your guidance to each team member. The above two topics help with the technical grooming, but you must go further and help your team identify their own weaknesses and strengths and build on them. This is where the truest aspects of leadership are seen.
Managing stakeholder expectations
Communication with your stakeholders is the most paramount skill that can be attained in the realm of software. Whether your focusing on an internal project, a high profile client, or even just a project for yourself, it’s key to manage these expectations. As you estimate stories early in your career, you’re able to get away with miscalculations and misses on demo day because your leaders are taking the heat for you or because they had already managed the expectations to the stakeholders. Now that you’ll be the leader in these situations, it goes further than estimation - you have to begin to look at implementation delivery on an agreed upon date. As an expert in this, you’ll be able to identify the total effort needed on a project, the dates that stories and the final product will be delivered, and any roadblocks all at the inception of a project and convince the stakeholder that you’ll need that much time to deliver.
Delivering a full-scale implementation as agreed upon with stakeholders
Meeting deadlines with technical excellence in the project code all lead to this final responsibility. It’s just like dominos as you see that every topic interconnects and can make or break another responsibility. The above four responsibilities all ties into the final one of delivering full-scale implementations as agreed up with stakeholders. If you have successfully managed the responsibilities above, you will be able to focus on the larger implementation. Where have we seen that before?
What it all comes down to is playing these dominos correctly so that you can handle each of these responsibilities expertly. But “handling” does not mean that you get to solo the effort and only rely on yourself. At this point in your career you’ve built up those around you to support your responsibilities. You manage those around you and make them better and you are able to manage the other side of the coin with the stakeholders. If you are able to trust your team, and thus trust your own ability in keeping them motivated and skilled, and if you are able to effectively manage client expectations and delivery, you will have mastered the tools needed to move up in technical leadership.