My lessons learned while becoming a Tech Lead
Notes of my experiences, lessons learned and some things I wish someone had told me before. In this post, I'll share things I've learned from my previous job and the current one at QuintoAndar.com.
Playing a tech lead role is different from company to company, but I tried to condense what I learned being both just a tech reference or having an official title as Tech Lead.
I think it's pretty common in the tech industry that this role is played by a senior developer informally and that's what I did in my previous job for 3 years.
At QuintoAndar I officially became tech lead in November 2016, so it has been 2 years now and here are some things I learned along the way in the past 5 years. I’m far from had mastered them, but I try my best to remember them on my daily basis.
Learn to let go your technical solutions
I think this is the first lesson I wish someone had told me years ago. Actually, I think someone did told me years ago, but it took me awhile to truly absorb it and yet, I still struggle with it sometimes.
Usually, one of the skills of a good tech lead is also being a good software engineer and developer. It's not the only one skill required, but is often one of the first that managers start paying attention when considering promoting someone to be a tech lead.
During these years as tech lead, I’ve learned that it’s more important how you teach your team to make good decisions instead just telling them what to do.
Rather than teach them how you like to code, try to show how you make your decisions, what you think, what you consider, how you balance things, and sometimes all these things are related on how you code, but not necessarily.
You don’t hire good developers to tell them what to do, you hire them to create good solutions and not only to code, but to solve problems. So trust them.
I've also learned that the team will be more committed with a solution they come up with instead a solution that a tech lead may had created. Even if the workable solution the team proposed isn't what I consider the best one, I tend to delegate this decision to the team. I just try to guide them to find a feasible solution.
I think there is no space from pride or jealousy if you want to be a good tech lead. The team is more important than you and as soon you realize that, you will turn into a better leader faster.
How a team works is more important than who is in the team
You need to understand your team, their expectations, their motivation and the timing of their career. And sometimes, you will need to adapt yourself.
The dynamic you had with one team doesn't necessarily will work with every team you will work with afterwards. People are different and percept things differently.
Obviously, depending on the maturity of the team, you will need to guide them and show other options and paths they aren't seeing clearly. Sometimes you need to guide them and let they find the better path by themselves not just pointing it to them.
You might need to learn how to create a safe space for them to work together. Only hiring A-players doesn't guarantee you will have a high performance and deliverable team if they don't know how to work together. Sometimes, your mission is help them to achieve that.
Build trusted relationships
You probably already heard this saying below before but I truly believe in it.
Leadership is earned not given.
Many people think that if you have a leadership title, people will respect and follow you. They may follow because they fear you, because you can fire them, but for me this isn't leadership.
For me, leadership is, among other things, when your team trust in you. Even if sometimes they don't understand a hundred percent your decision, if they trust you, they will help you and be on board to achieve the target.
If you were hired to lead a team that is already assembled, my advice is: before anything, try to understand how they're working and don't try to push your methodologies too hard. It may back fire against you.
One of the things that could help you building this trust is giving honest feedbacks.
Practice and provide honest feedbacks
Learn how to provide structured feedbacks.
Sometimes they need to be harsh, but if they are structured, sincere and you show that what you're saying it's because you really care about the person and its career, it will cause a huge impact on them.
There is a good video about Radical Candor here.
There are other frameworks that may help you providing feedbacks, just remember to be honest and bring examples while doing it.
Just keep in mind that you need to practice and talk about their career. If you're doing 1:1s with your developers for six months and you never had at least one conversation that you thought "This conversation won't be easy", you may be not talking about what needed to be talked.
You can't please everyone
As much you want to please and make everyone on your team happy, and I know you really do, sometimes your decisions will make someone unhappy.
It will be hard, you may feel bad and think that maybe you were unfair. But trust your instincts and be in peace with yourself that you made the best decision you could with the information you had at the time.
You can't predict the future. Try to make the best decision you can with the context you're in, it's the best you can do at the moment.
I made some decisions I probably would not make them today, but I had to make them in the past to learn from it.
Learn from your previous decisions to be a better version of yourself
As I said before, learn from your previous decisions.
Take a moment to look back and think what could be done different today. Not because it was necessarily wrong in the past and you regret it, but because we're in a constant change, you're not the same person you were six months ago and now you can make different decisions to the same problem.
The point is, if we don't practice this, if we don't look at ourselves and be honest with ourselves, we may risk don't be evolving at all.
Embrace the journey
Because it is a journey. You will be always learning and discovering you can improve yourself.
I think sometimes being a tech lead is hard because you are responsible for so many things and maybe, sometimes, you don't have all the answers.
But it's also truly amazing.
You can have a huge impact not only on the lives of people you are delivering your software, but also in the lives of people that are building it with you. That can be life changing for you and for them. You can learn a lot while teaching someone.
If you're in the path of becoming a tech lead, my biggest advice is: it's not about you anymore.
I think it's about how you can help people around you be better than they were before meeting you. Sometimes, is about helping them to be better than you will ever be.
Don't limit people's growth because of jealousy or fear.
Help them unleash the better version of them. Cheer for them. Be proud of them.
That's what I've learned and I'm trying to do every day.