Many paths lead to the top of the mountain that is technical leadership and it all starts with the definition of the term. We will define technical leadership as a position where an individual leads a team and focuses on the details of a project along with the overall implementation. Today's leaders need to pay attention to the part where a technical leader is still focusing on the details. The nitty-gritty details are, if anything, even more so the responsibility of a technical leader than they were of an independent contributor. An individual in the role will need to take the on responsibilities of:
- Making sure their team is up to speed on defined best practices.
- Ensuring the quality of code meets defined expectations.
- Training their team to prepare them for the responsibilities that will help progress their careers over a defined career lattice.
- Managing defined stakeholder expectations.
- Delivering a full-scale implementation of a feature or product as defined by stakeholders.
Leaders must provide structure and definition to be able to effectively support their teams and deliver excellent products and features.
That’s quite a lot of responsibility on the shoulders of one individual, isn’t it? But defining technical leadership isn't the penultimate goal of this post. This article is for individuals who have started tackling all of these responsibilities and have embraced the role. How does a technical leader move up in their role? The answer roundaboutedly lies in these initial responsibilities. The most surprising aspect of technical leadership is that it is much less technical than one expects in today’s technology spheres. Each of the individual responsibilities and how they can be used to move up will be covered below.
The responsibility for clearly setting details of a project for the stakeholder fall to the technical lead. They will be the main point of contact and will need to be up to date on all the technical measures of said project. If a technical lead is not well practiced in the necessary technologies, they can not expect any other behavior from their team. First, the Lead must ensure that they are at an expert level in the skills needed on a project. Once that is done, ensure that they can constantly work with their team to get them as close to that same level as possible. The buck stops with the technical lead. If they can maintain their's and their team's expertise, it will undoubtedly show that they contain the knowledge to not simply better themselves, but those around them. There’s not a quality I would rank higher than this when it comes to any sort of leadership.
Ensuring high-quality code cannot be overstated and goes hand in hand with the above responsibility of keeping a team up to speed on best practices. If a team is well-versed in the necessary technologies, the chances of higher code quality increase substantially and make the leadership role easier.
One way in which I learned to tackle these first two responsibilities two was to 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 helped me learn what the team did not know coupled with allowing me to further support and educate them on those topics. It also had the unintended effect of building camaraderie with my team and potentially others at my place of work. Leads should always feel free to extend the invitation to other teams that could benefit from the information that you have to share.
The world of software development is increasingly social and career growth also depends on individuals taking full advantage of this fact. There are only so many roles that let someone excel at technology and continue onto leadership without embracing a team. Technical leaders must learn to individually tailor guidance for each team member. The above two topics help with the technical grooming, but leads must go further and help team members identify their own weaknesses and strengths and build upon them. This is where the most pertinent aspects of leadership are seen.
Communication with stakeholders is the most paramount skill that can be attained in the realm of software leadership. Whether focusing on an internal project, a high-profile client, or even just an individual project, it’s key to manage these expectations. As developers estimate stories early in their careers, they're able to get away with miscalculations and misses on demo day because leaders are taking the heat or because they had already managed the expectations to the stakeholders prior to demo day.
For leaders in these situations, it goes further than estimation - they have to begin to look at implementation and delivery on an agreed-upon date and timeframe. As an expert, technical leaders must 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 the team will need the estimated time to deliver.
Meeting deadlines with technical excellence in the project code and management all lead to this final responsibility. Just like dominos, every topic interconnects and can make or break another responsibility. The above four responsibilities all tie into the final one of delivering full-scale implementations as agreed up with stakeholders. If leaders have successfully managed the responsibilities above, they will be able to focus on the larger implementation and delivery.
What it all comes down to is playing these dominos correctly so that each of these responsibilities can be handled expertly. But “handling” does not mean that leads get to solo the effort and only rely on themselves. At this point in a developer's career, they’ve ideally built up a network and strong team to support their responsibilities. Leads manage those around them and make them better all while managing the other flip side of the coin with the stakeholders. If leads can trust their teams, and thus trust their own ability in keeping their team motivated and skilled, and if they can effectively manage client expectations and delivery, they will have mastered the tools needed to move up in technical leadership.