Like it or not, when you have some years under your belt working as a software developer, you’ll end up being a tech lead at some point. You won’t necessarily be appointed as one but some projects will organically put you in that position. And then, you’ll have to define a lot of things that affect the team and the project’s results.
It’s not an easy role to fill, mind you. That’s why it is always in your best interest to have a trick or two up your sleeve if the time comes when you need to do it. It’s true that leadership can’t be taught, so you’ll have more chances of becoming the tech lead if you are “a natural.” However, there are certain things you can keep in mind to get the job done and get it right if you happen to land the role. Here are some of the most important ones.
The 3 defining characteristics of a tech lead – Source: @patkua
1. Get to know your team intimately
Though this may feel like something a manager should do, a good tech lead doesn’t shy away from knowing the team that works with him. That’s because getting close to the people that work with you can pay off in a lot of different ways. The most notorious one is that you’ll be able to learn their strengths and weaknesses as well as their likes and dislikes.
By establishing that sort of rapport, you’ll be able to take better decisions when delegating some tasks. Additionally, you’ll be opening a channel for the team members to frankly communicate with you and provide feedback on how you’re leading them in the project.
Of course, managers will have periodic meetings with this very same objective but that doesn’t mean you can’t do something similar. By doing so, you won’t just be creating a better environment for collaboration – you’ll also be learning valuable skills about management itself that might come in handy later on.
2. Balance the priorities
As any tech lead can attest, whenever you fill this role, you’ll be facing a lot of demands from lots of people. You’ll be hearing from everyone on the team, from the engineers and their managers to other teams, marketers and even executives. Of course, all of them will be demanding something from the project, which will surely lead to some competing priorities more often than not.
Demands aren’t the only thing you’ll have to balance. You’ll also have to take expectations into account. That way, you’ll have developers working on the things they want (and which they are good at) but always keeping an eye on the amount of output you’re producing. What’s more – you’ll also want to throw your own priorities in there as well, since you are part of the delicate balance.
How to act in the face of all of that? First of all, remember that there several ways to overcome certain issues. Maybe you feel like some priorities are competing and you have to pick one over the other while there might a way to tackle them both. Also, it helps if you allow yourself to be flexible with priorities depending on the stage you’re on during development.
There will be times when you’ll have to prioritize the launch dates or work on tech debt while there will be other times when you’ll have to focus on improving the existing features. Different moments in different projects call for different ways of prioritizing.
3. Foster communication with the rest of the business
One of the biggest issues for development teams is communication with non-technical business people invested in the project’s outcomes. As you already know, developing software will have you meeting with other parties that are only interested in numbers and features explained in layman’s terms. On the contrary, a lot of engineers can’t (or don’t want) to communicate in another way that isn’t through technical language.
This often creates barriers that isolate the team from the rest of the business. A successful tech lead will bridge that gap while also teaching the team how to do that themselves. If you as a tech lead choose to ignore the teaching part, you’ll quickly become the only nexus between the development team and the rest of your company. That means that you’ll have to act as the “translator” as you’ll be seen as the only one capable of executing clear communication.
To prevent that from happening, you’ll have to take team members along for the ride when you meet with execs and stakeholders. In those conversations, you’ll keep things simple, teaching the members how to better communicate with non-technical staff. These instances will gain you the respect of the rest of the business, which will work in your team’s favor, as you’ll be in a better position to make requests on your team’s behalf.
4. Don’t get involved in every decision
A lot of tech leads fall prey to one of the most frequent mistakes of that role – becoming some sort of micromanager. When they do so, they become the kind of leader that everyone looks over their shoulders. When all decisions, big and small, go through the tech lead, the team feels like they aren’t trusted and the productiveness takes a hit.
So, instead of trying to be on top of everything, just keep your attention on the essentials. You don’t have to review each change in the code, you don’t have to be present in every technical discussion – heck, you don’t even have to make all of the project’s decisions! What you need to do is focus on critical decisions that require skill, experience, and responsibility.
A successful tech lead knows when to trust the team to call the shots and doesn’t punish them if they make a mistake or choose a route different from what he would have chosen. Empowering the team and delegating certain responsibilities to them can ramp up the mood and provide you with better results and more productiveness.
5. Accept the inherent chaos of working with teams
Finally, here’s a tough pill to swallow, especially for perfectionists: the team won’t work like an orchestra all the time. Though there will be times when they will perform and collaborate in harmony, there will be other moments when chaos will reign supreme. These are the moments when a true tech leader shines.
Why? Because tech leads have to guide the team to get the job done in spite of the less-than-ideal conditions that surround it. In these times, tech leads might feel like they are losing the grip on the group, with everyone running amok to complete tasks as deadlines approach. This might seem like a problem but struggling to get that control back can be even worse.
If you worked on a development team, you know that there’ll be times when things will get messy and there’s nothing you can do about it but power through. So, if you face those times when you’re a tech lead, you’ll have to allow for a certain chaos level to get things done. Challenging moments need closer collaboration, so maybe it’s better to put the focus on that rather than on following due processes.
Maybe it doesn’t sound like it, but being a tech lead can be a very rewarding task. In fact, it’s desirable that all developers fill that position at least once in their lives. By doing that, they’ll get a better understanding of what leading a project means and can provide a better context to the more specific work they do when they are “just the engineers.”
Since it’s highly likely that you, as a developer, will be on the tech lead’s shoes, it’s important to consider these suggestions. They aren’t precisely a rule book but rather some guidelines that can help you when navigating the difficult waters of that angry ocean called development.