This text was fully written by hands :) The help of AI was used only for correcting some phrases and mistakes.
Who is a Technical Lead? Nobody knows! Well, actually, everybody knows, but answers might be very different in different companies and even in different teams inside the same company.
I think every Software developer starting from some level faces a dilemma: which way do I want to develop my career: a manager or a technical path? Which role suits me the best? The interesting fact is that Tech lead role is one of those which combines both and perfectly suits those people who want both.
More than a year ago I was suggested to become a Technical Lead at the PyCharm team. I decided to try this new role for me and received an absolutely interesting experience for me as a professional and as a human being as well.
First of all, I had a very vague idea about the exact scope of tasks, and especially how to divide them with the team lead. If you don’t know some topic - read a book about it! That’s exactly what I did! I can strongly recommend “The Manager’s Path” by Camille Fournier (at least chapters about switching from Software developer to Technical lead). She perfectly described all the problems I faced in the very beginning, all the thoughts I had while transitioning from developer’s role. And of course all the mistakes I did 😀
I’m not going to describe all the problems I was solving during this year and all the challenges I faced. But I definitely want to share things which surprised me most in the Tech lead position, something I didn’t expect. And something that everyone should be prepared when switching from a dev role to a manager’s role:
- Amount of context switching. While you’re a software developer your main skill is to deeply focus on some task for several hours in a row and convert your thoughts into the source code. As soon as you become a manager your main skill becomes to quickly switch your attention between different topics and connect people and information between them. For me it was a separate skill which I needed to develop (not an easy one)
- People. People are so complicated. People are much more complicated than code 😅. And even when you’re a Tech lead, not Team lead, your main focus becomes people. Find strengths and weaknesses of each developer in your team, assign tasks according to predisposition and talents. When a person and a suitable area of responsibility find each other - it’s a win-win situation! When a developer is really interested in a task and likes their type of work - the result is usually much better and appears much faster!
Also when you know your team really well, you know all the “dangerous areas”, where you should pay additional attention. If someone has problems with deadlines - help them with intermediate checkpoints, if someone else has problems with decompositioning of a complicated task - help them to split it. The coolest thing about that after such a type of assintance you can see an evident progress! You see how this or that person overcomes their weaknesses, and as a manager you feel fantastic!
But of course you need time to understand all these non-obvious things and learn how to work with them. But it worth it. - Meetings. One of the most surprising things! Now you become that very person who carefully listens to the meeting flow, getting necessary information and trying to come up with action points at the end of it. When I was a software developer, (time for confession 😅) most of the meetings (not all of them!) felt like a noisy background for writing code and checking emails. Once you become a manager you finally start to understand why meetings exist and why they usually can’t be “just an email”. It’s true that sometimes they’re too many of them, but in most cases they allow managers to discuss things and make decisions much faster. I didn’t expect such an effect from a management role.
- Responsibility for all unclear tasks. You’re now that person responsible for all the “strange” problems. All the questions which don’t have a well-defined area of responsibility now arrive on your todo list. And, honestly saying, it demotivated me a lot at the very beginning! From the position “Well, this question is a bit strange and I don’t know a lot about this topic. Let’s escalate it to the manager” you need to switch to “Well, this question is a bit strange and I don’t know a lot about this topic, but nobody in the team does. So, it’s time for me to dive into it and give the answer!”
It’s challenging, but it’s also a lot of fun! Only after such tasks do you actually start to understand what is hidden behind all these beautiful titles with the “lead” word. The contents are not very beautiful 🙂
I would say a management role is a very important experience for every person in a team. Once you spend some time in such a role, you start looking at the people and at the teams from the very different angle. You become more conscious, you can’t stop thinking about avail (or a lack of avail) of every task you’re working on. And it’s very valuable skill both for your professional and personal life.