The usual route to a Technical Leadership role is by getting promoted because of your technical skills or experience after working on a successful project. That was certainly true of me: I got my first Technical Leader role in a startup, working on what we’d call these days a platform team.
But managing people is VERY different from programming computers! So this is rather like being dumped in the deep-end of the pool. New Technical Leaders have to quickly learn some management skills, on the job, probably with no training other than their previous experiences of see the impact that their technical leaders had for good and bad.
This is a big step, and may be one of the most difficult changes that we make in our careers, and let’s be clear, this isn’t about just us any more. Now our choices will influence other people and their work. So how can make a good job of this? With the benefit of about 35 year of hindsight, on reflection, there are a few things that I wish I had understood better and learned more quickly back in the day.
Help the Team be the Best they Can Be
As Team Leader, it’s no longer about having the best technical skills yourself, but getting the best out of the team as a whole.
This means allowing people to find their own solutions, work and learn in their own way, and make their own mistakes. This might be one of the most difficult things to learn as a new team lead – allowing people to do things differently to you; maybe even not as good as you can do it, is or at least should be part of your job now.
The desire to make the best software and lead a successful project tempts us to control and drive the work: to micro-manage the team. But by making all the decisions, and giving detailed instructions, or ‘programming by remote control’ the Team Leader will become a bottle-neck, slowing the team down, and demotivating people: and the performance of the team will be worse not better.
I think that there is a good analogy with sports teams here. The manager of a great football club isn’t the best footballer. They have a different role. They may hire team members who are much more skilled than they are, and then help them to become even better. Or they may take a young player and coach them in specific skills and later help them to become as good as they can be.They may suggest tactics and the approach to a game, all of this is in service to the team as a whole.
The job of a leader is to amplify the effectiveness of the team, not to make all the decisions themselves.
By focusing on the overall goal, and taking a step back, I think that the job of a Team Leader is to allow, and encourage, team members to learn and grow. Your job is to support them, maybe through coaching, but certainly by providing more opportunities, and sometimes guidance, that allows them to develop their skills and be proud of their achievements.
Use the Position to Remove Barriers
A new Technical Leader has access to more resources and whatever the size of the team they lead, they have more influence, and greater access to other influencers in their organisation than they did before. They should us this to support their team: building relationships with other teams; removing barriers; shielding their team from the impact of outside interference; and, finding ways to keep the ‘admin’ stuff to a minimum.
This isn’t about keeping people in the dark though, it’s important to keep the team informed about what is going on elsewhere, and I like to encourage my team to communicate with others about their work and achievements – maybe via a blog, or presenting at team meetings. Maybe even encouraging people to spread their wings at speak externally at conferences and meet-up groups.
Use Your Skills and Experience when it Matters
It’s not the role of Team Leader to have all the answers, make all the technical decisions, or to be the best programmer; but neither should you leave all that behind you and become just a ‘manager’.
I draw on my experience of the technical and organisational aspects of software projects to set reasonable goals, achievable expectations, and minimum quality standards, and then encourage team members to try their own ideas, and use their skills to meet these in different ways.
I try and resist the temptation to dive in with solutions too early, but can offer suggestions when the team is stuck, or can’t reach a consensus.
Be Prepared for Difficult Conversations
Feedback is really important, and not just at Performance Review time. Both positive and negative feedback are important and both can be difficult/embarrassing at first. I try to find ways to regularly tell people when they have done well, learned something new, and contributed to team achievements. I have also learned that it is important to intervene early, before minor niggles escalate into major problems, by having a private word with someone who may need to do things differently.
If you ever need to have the most difficult conversation, about unacceptable performance, or even dismissal, do not spend time sharing how tough you have found it – its always worse for them!! Give clear, objective information, give them time to reflect on what you’ve said, and offer sources of support (not necessarily from you).
Like it or Not, You’re Now a Role Model
As Team Leader, people will look at what you say and do, take more notice of your ideas, interpret your suggestions as decisions, and judge you, or copy you. I wish I had appreciated this more, and spent more time thinking about the sort of leader I wanted to be, and made more effort managing my performance accordingly.
This is not about being aloof or commanding, you are member of the team and have some different responsibilities. That doesn’t mean that you deserve being a role model, but you are. So you need to be consistent, and fair, and follow your own rules.
I had a great boss early in my career, who was a lot of fun to work with, we laughed a lot, and messed around, but also we knew when he was telling us what we needed to do. I learned a lot from him, and as a team we trusted him and, I hope, supported him in return.
Perhaps the most important role of the Team Leader is to create a learning culture and a safe environment in which colleagues can share ideas, and make mistakes.
Sign up to my Mail List to get a Free “How to Organise SW Teams” guide https://www.subscribepage.com/organise-teams-guide
We have just released a new learning track on our “Modern Software Engineer’s Companion” (MSEC) on the topic of “Teamwork & Leadership“. This is available to Patreon members, find out more here: https://www.patreon.com/continuousdelivery