If you take a scan of job descriptions on LinkedIn, you'll see the job descriptions for Team Lead to be vastly different across organizations. This has always lead me to believe that the role itself is largely undefined and generally created by the company that is creating it. If you were to then ask those Team Leads what they were doing in comparison to their job descriptions, I'm sure you'd find the two who were widely different.
Furthermore, if you are a small startup, one day its - "developers everywhere" - and the next day its - "introducing your new team lead". Especially in startups, I've seen this as the first step to having managers in a "testing the waters" sort of way to see how they can lead a team.
Where being a manager can be a little more formal, the Team Lead role is one that you can shape and mold to what you see as being needed and put your own stamp on what a great team lead should be doing. In my experience, the Team Lead is seen as someone who has a tough job in figuring out how to motivate a team, guide them and provide direction all without any financial motivators behind them (i.e., they can't adjust your payscale). All the while they are still pumping out code (more so than a manager might).
When I'm asked about what the expectations of a Team Lead are, I generally boil it down to the following areas.
Right off the bat, the Team Lead is still contributing towards software development. They might be your best coder and you don't want to lose that magic. You need them side-by-side with the rest of the team coding and delivering.
The remainder of the Team Lead's time is broken down into the following areas that can come and go at different intervals.
A Team Lead is great for onboarding new resources to the team, showing them what is what, walking them through the code, introducing them to people on the team, and helping them navigate the first few weeks without fear or worry.
Despite everything I have tried, I still feel we can sometimes be afraid of our "managers" so it's easier to ask a peer some of the questions that we don't always want to be asking our manager.
Depending on the area of code they are working in. A Team Lead should be very familiar with what they are working on and viewed as a domain expert in that area. They don't need to know it from memory, but they should be able to help the team and new developers with questions as well as providing architectural guidance on new features/requests coming in.
There are days when every customer is calling in and QA bugs are piling up. On these days, this is where the Team Lead shines and makes their presence known. If they are working with a Manager, chances are their Manager is doing damage control in other areas, while they are focused on keeping the team on point and providing support in other areas with other teams in the company. If they are on their own, it's a busier day of coordinating a number of moving pieces.
Hats off to everyone out there being a Team Lead right now, it's not an easy gig, there are lots of moving parts and it can be a challenge with your peers. One of my most memorable times as a Team Lead was when I asked someone to do so task and they responded back with - "are you telling me to do it or are you asking me to do it?" - in my head, we needed the task done, I had been asked my manager to get the team to do it, so I knew what I was saying but I responded with - "I'm asking you to help us out and get it done." - to which they did.
Little scenarios like that are what helped me become better at Team Leading and Leadership before jumping into being a Manager.
Depending on how your role was defined, via a formal job description or an afternoon lunch, it's yours to make with it what you will. This is what I've always loved about the Team Lead role, the freedom to try out new ideas and see what does and doesn't work, see what sticks and what you should move on with. It's the best role to try out ideas for leading teams, motivating people, suggesting changes to code, and getting to implement them.
Am I missing anything? Would love to hear other people's thoughts on what Team Leads are doing?