The demand for software is growing continuously. Even in such crazy times as the year 2020, software companies are still rapidly hiring. Newly created teams need strong leadership and leaders are often chosen among software engineers, but what next? Is it possible to prepare for such a change?
I want to point out my observations and possible obstacles that software engineers might find on their way to team-leading.
1. Your day is no longer a 7-hour coding session
When you become a team leader, you have to reorganize your work, manage your priorities, cancel the invitation for some meetings, and warmly welcome the new ones.
Personally, I tried to squeeze all of these into the software engineer’s daily routine, which was a terrible mistake. I filled up a space between meetings with other activities such as coding to maximize my time efficiency, which was just a self-deception that I will call it a day with a clear mind. I find myself spending time analyzing meetings and next steps - but after work!
I can agree that it’s not always easy to squeeze leader responsibilities into 8-hour job brackets, but taking care of your mental health and enjoyment (because it’s all about that) is also very important.
Take breaks, make notes, analyze (during your work), be prepared for another meeting. It helps a lot!
2. Stop coding, start leading
For most of us, it’s not a binary decision. Depending on a team size, we can share time between team management and technical aspects from where we started. For a small team (1-2 people), it might be proportioned like 20/80. For 15+ members, it can be hard to write a single line of code.
In both scenarios, looking at your role, your priorities should be the same. To help others get things done. In other words - improving velocity by 5% of each person in your team is even more than compensation for the time you could spend on, e.g., delivering features.
3. Make meetings meaningful
Due to the new role, a new perspective arises. You start being invited to meetings that you have never heard of. As a representative of engineering, it’s crucial to know what is happening in the team, the product’s condition, and the goals for the next year to address these problems accordingly.
Everything is perfectly fine until you realize that you spend the majority of your time on zoom calls. What about our other responsibilities? It’s worth rethinking how important these meetings are and if your presence is mandatory.
Balance - a truism, which is often omitted because of a false belief in the “greater good” for a team.
Being prepared for meetings, expecting the same from the rest of the team is very undervalued. Keeping conversations close to the agenda and fitting into a scheduled time slot is a key to an effective meeting. Respect your time, but most of all - other’s time.
4. Let the team do their job
One of the problems that you might face during role transition is your technical background. There is nothing wrong with having strong technical skills, it’s always beneficial, but people you work with are used to your engineer skillset, which was pretty handy for them, right?
That’s why your team is going to involve you in technical challenges anyway. It’s totally fine to use your experience to ask the right questions, but giving them solutions is not recommended.
It’s hard to work on someone else’s vision. Simply because we don’t feel a real sense of ownership. Leave people space to decide and solve problems on their own.
5. Learn to delegate
Being a team leader gives you a bit more freedom. You can choose whatever you want to handle on your own, at which meetings your presence is useful and which you may skip. Yeah, it’s a blessing, but at the same time, it might be a trap. Especially, at the beginning of that journey, it’s easy to run into disbalance in favor of doing things all by yourself.
That happens because we feel even more responsible for the project and probably we don’t know yet how much time we will spend on helping the team doing their job.
Task delegation is one of the methods to increase velocity, not only for leaders but also for the team. One of the most important things that I have learned so far is - you don’t want to create constraints on yourself. In most cases, the team can solve problems, deliver features, work on processes on their own. The team leader’s role here is to engage everyone, see the unseen and start a conversation about problems buried deep underground.
However, if you’re a well-organized person and still feel overwhelmed with tasks, you should think about hiring someone to help you. That’s also fine.
Taking a step towards team leading is very exciting! New opportunities, people, but also responsibilities and problems on a different meta-level. In order not to lose momentum, it’s worth thinking upfront about organizing the day and building expectations in the team on how much time you can spend on solving technical problems (if any).
Building a growth culture in the team takes a lot of time and iterations. Leadership works the same way. It takes time to build trust in the team. It takes time to build confidence in a leader to know that the team path is the right one.