The good team leads protected me from more tasks (management never stops to ask for more) and emphasized to finish current ones first.
Has to lead by example, willing to do first whatever he asks his team to do. Keeps the team focused on the forest, not the trees.
I think a good team lead is able context switch quickly without being frustrated at being pulled off what they are currently doing to help others.
As a lead, people will ask you questions, that's part of the job.
support morale in the team
support morale in the team
Though I do agree a team lead should help the morale in the team, there's a few ways to do it. It can come from things like (just to name a few):
Listening and having compassion is one thing, but I don't think a team lead should be used as a dumping ground for emotional issues (or be used as some form of a psychologist) and I think a good team lead needs to know at which point conflict resolution becomes something that management needs to be involved.
I think a good team lead is patient and can explain concepts concisely. They're willing to sit down and pair up with you to solve problems, and defend you from work that is over your head when necessary.
I was migrating a set of applications from one server platform to another (FUSE to Tomcat), it was a touchy install and we ended up backing it out. But we stayed up until 1am at the office trying to figure it out and he didn't complain about it once. The amount of patience was profound and I'll never forget it.
It is nice of them to stay with you and help, but I would question the culture in this workplace. The proper solution from my point view would be to say: "Let's go home and continue tomorrow together".
That's the culture at my workplace. While there are a few developers who stay late, the vast majority of us have no difficulty walking away and going home. We even encourage it.
Totally agree that this is another key for a tech lead.
I think it depends on the team and company dynamics that govern how much a team lead should 'sit and pair' with a developer.
For me personally, if there's something mission critical, and I am able to help out and stay late, I'll probably do it. Part of a tech lead is responsibly and accountability....but all within reason.
I have also been on teams with some very inexperienced devs that required way too much 'teaching and pairing' that I could do at that given moment. Mentoring/coaching is one thing, but a tech lead isn't a teacher in the literal sense...b/c their teaching is a balance given the overarching goals and progress of the team itself.
Good team leads have a knack of protecting you from external factors, but also making you aware of them so you can take them on board (eventually you may want a role that needs to tackle them head on).
They will want to nurture their team and encourage progress both in skills but also in personal confidence and perhaps personal goals.
They will be able to jump in when things get tough but be the voice of reason and calm in a stressful situation.
They will create an environment of honesty so that people feel comfortable raising their hands to problems and fixes are found instead of people feeling scared to speak up in case they're fired.
I think that a good team lead is a strong coder, who speaks the language of their programmers, and also has a good sense of what's important, what isn't, what the requirements are. A good team lead can reason well, communicate those things to the upper management, and can stand up for their developers and for good ideas.
Of all the replies so far (currently, there are 20 replies) this one is the closest to my opinion. The general consensus at the moment seems to imply that a good team leader is a shield that protects the team, but this function has nothing at all to do with leadership, and leadership is the core function of a team lead.
As a tech lead (which might be different from a team lead.. you can't be sure), my main goal was to maintain team productivity.
For example, if I observed we are slowed by regressions, I invested time into improving test infrastructure.
Or, I tried to take dull infrastructure tasks that noone really likes to do.
In my observation, good team leads are able to wear a bit of engineering management, a bit of product management and a bit of a developer hat. The top 3 qualities of great team leads I’ve seen:
1. Prioritises ruthlessly and knows how to say no. Limiting work in progress and finishing what people and the team started are key to a high-performing team. Great team leads do this via clear prioritisation and using the prioritisation principles to tactfully say no to stakeholders.
2. Unblocks the team and team members. When someone on the team is stuck, they notice and help. Either by pairing or more often, by advising or connecting with others, who can help efficiently.
3. Great mentors and leading by example. Team leads are often the one of the most experienced developers on the team. And just like good developers are usually great and approachable mentors, they mentor and coach team members day by day, helping them get better. They also lead by example and pull their weight.
You can really tell who a great team lead is during a challenging project and stressful situations and how they help the team overcome this, staying sane and giving most of the credit to the team members upon success.
A good team lead has to be able to fire (or at least remove) low performing team members (which can be surprisingly difficult sometimes), and makes sure that team/individual work/achievements are recognized.
Good leads I worked with would run interference whenever POs would request things directly from me, and another good manager even gave me tips for asking for more money during our performance review.
As a Lead, I have one major goal of maximizing my teams productivity. And I think that's the goal of most Leads, it's just how you go about it.
The one measure I rely on most is how often I NEED to interact with my team.
I ensure the work being asked of them is clear.
I filter requests and randomization from outside the team.
I provide training and guidance so they're able to do more without me.
And I work with my senior engineers to have them mentor juniors. Fostering team communication and preparing them to take on lead roles.
If my team can function WELL with or without me, then I'm probably doing a good job. And I work very hard at working very little.
To me a good team lead is:
A good lead let's you do your job well by shielding you from irrelevant or less important work, providing the support when you need it and fostering an environment where people can make mistakes and learn constructively from them
For me is hard to pick one. I would say:
One which prioritises improvements in speed and experience in development workflow rather than -like many- prioritising making their own reporting workflow easier.
e.g. making issue tracking simple and quick to ease development rather than making it long and complex so that better reports can be generated
Push the company's stack forward, manage and delegate tasks based on team's abilities, document processes and make onboarding as easy as possible, lead by example.
document processes and make onboarding as easy as possible,
document processes and make onboarding as easy as possible,
Facilitating and blocker-solver over strict management. Lead helps team to find a solution but dont privide guru-styled-the-only-right solution
Also lead dont get in the team way. Nice, polite, wide-thinking person
Someone who can balance being in charge and taking ultimate responsibility, while still supporting a relatively flat team structure that takes input from each developer.
A person who knows exactly what's going on. I know it sounds obvious but in my life, I've been working with a lot of bubble heads who don't even know what's going on with the product or the team.
You don't have to be a genius to lead the team. Sometimes, you only need to check in frequently to know what your team is doing.
My team leader isn't a know-it-all. He asks a lot of questions about back-end system since he's more about project management. He doesn't know a lot about SEO or coding, but he asks us.
We use a lot of productivity apps to keep the flow going and enhance the team collaboration.
No one can know everything. The key is to keep the communication between team members and learn from each other.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.