On Technical Leadership
How can you increase your impact by 10x or even 100x? I believe technical leadership is one way.
I see a lot of engineers and engineering managers struggle to grasp the concept and requirement of technical leadership in software engineering and why is it necessary.
There are multiple ways of increasing your organizational output, one is through sheer coding, actually producing 10x from what a normal engineer can produce (this is hard, as there are only a few folks that I know that have incredible output). Another one is through leadership and influence over a large group of engineers (10+) and this is where technical leadership comes into play.
Some engineers are so critical to projects that without them, big projects can take forever or not be done at all. Usually it is not a technical challenge that gets in the way but more of an organizational one. The most valuable engineers in the eyes of organizations are the ones that know how to provide sound technical guidance, think about long term design and future impact of their decisions but also navigate the organization in order to get the project completed.
First of all, let’s look at the definition of leadership: “the ability of an individual or a group of individuals to influence and guide followers or other members of an organization.”
Leadership does not necessarily involve a formal role like management and does not have to be linked with seniority. The question is how this description narrows down its meaning when we put the technical term in.
Technical leadership is the ability to supervise and lead a team of technical experts while making or influencing decisions related to engineering in order to succesfully complete a project.
This implies coordination, but also technical literacy in steering the project and helping the team be successful and reaching the right outcomes.
Who can show technical leadership?
The surprising answer is anyone. And I say surprising because most engineers expect that leadership is shown only after a specific level of seniority or even worse, only from “named” individuals in the org. The expectation usually is that technical leadership is exhibited by tech leads and managers and I think that is a reasonable expectation but anyone in the team, from the most junior to the most senior person can manifest it.
The sooner engineers understand this, the sooner they will be able to progress their career at a faster pace by having a bigger impact.
Why does technical leadership matter?
Technical Leadership ties also a bit with ownership, the person that is formally or informally having the role of a technical leader for a project should own the outcome of the project and make sure it lands successfully.
In short, it’s the ability to align a team or teams in delivering a software project with quality and in a timely manner.
The challenges may not be only technical and usually, in bigger organizations, the challenges are exclusively non-technical and have to do more with the organization structure, aligning priorities and change management as opposed to just technical complexity.
The bigger the team or teams that need alignment, the bigger the challenge and leadership and influencing skills needed.
Technical Leadership is so important because it is at the heart of every successful project that lands with quality and in a timely fashion and it can vary by scope.
The basic form of technical leadership is owning your own tasks and beying autonomous
The smallest scope where technical leadership can manifest is with one’s own tasks. As a software engineer you have to work on your tasks and see them through. If you are autonomous, it means that you work with your colleagues, ask for help if needed, and complete your tasks. Usually this is not seen in the org as technical leadership because the work usually involves a limited scope but it is the basic form of technical leadership.
Things start to evolve with scope. Once you are in charge of a project that takes more than one person to complete, the skills for technical leadership also need to evolve. Coordination, communication and planning need to kick in not just for you but also for the other engineers involved.
The end of the spectrum on technical leadership is aligning multiple teams across various priorities, getting buy-in and decisions and landing the projects successfully.
On the high scale of technical leaderships, CTOs are technical leaders for their companies
We can look at the following table correlated with seniority, the titles are just for reference, different companies have different roles that map to different requirements. For example, at some companies , senior engineers are expected to lead 2,3 more junior engineers as opposed to companies where the senior engineer just needs to direct his work.
Technical leadership is also tied explicitly or implicitly to your career ladder in your company. Let’s do some reverse engineering of your ladder. Let’s say in your company your impact on the business is very important, the bigger the impact the bigger the seniority it involves. ( hopefully that is the case).
One way to have a big impact is to run a big project, the bigger the project the bigger the chances that there are a lot of people that will be required to work on it which implies your ability to lead, coordinate and manage the successful execution and landing of the project, a.k.a demonstrating technical leadership
How to develop your technical leadership
Given the name there are 2 main areas you can cover for improving your technical leadership skills.
The technical part
Getting better from a coding and architecture standpoint. This can be done by learning, doing and receiving mentorship. Understanding software development best practices and why they are employed. How decisions can affect things in the future (this will help you juggle with tradeoffs depending on the project you are working one).
At a certain point in time there will be a plateau in a specific technology and then you can change technologies or areas and start all over again.
The leadership part
There are multiple areas that will help you to align teams and successfully deliver on a project, the following list is just the basics on areas that will improve your leadership.
- Stakeholder management
Getting buy-in and support from key stakeholders. Making sure you address their concerns and that your plan will not blow up.
- Program management and tracking
You can get program management support but if not, you may have to do it. Estimating work, adding buffers, re-aligning schedules, planning for the unknown. Doing pre-mortems and so one.
- Clearly communicating goals and reasons
The ability to crisply and clearly convey your message. This may be even harder if you are not communicating in a second language.
- Ability to get large groups to make decisions in a timely manner
In case you are not a whiz kid and can code 10x faster than the “average” developer, there are other ways on how you can increase your impact on the business and accelerate your career.
Possessing the skill of strong technical leadership is one way of having a significant impact in your company and is a skill that once learned, can be applied to any project in any company.
Is technical leadership valued in your company? Let me know in the comments section bellow.