views:

429

answers:

8

I've been working with my manager to move myself from a designer/programmer role in to a lead designer/programmer role.

I have several years experience in programming. I've not became that "super" programmer that I've always wanted to be but my manager said that he thought I'd make a good team lead; I’ve since been put in charge of a couple of projects that I feel are going well.

My question is about what makes a good team leader. I know that I could use tips and pointers to improve myself and so I want to ask:

  • What characteristics do you see in a good leader?
  • What characteristics do you see in a poor leader?
  • When in a leadership role what guidelines do you use to ensure you are doing an effective, good job?
  • What would you tell someone you've just put in charge of a very important project?
+1  A: 

To put it short: leadership is about people. Focus on developing your developers so they become better and more self-organized.

As a starting point, I would recommend you to read the book Behind Closed Doors.

Jonas Kongslund
+1  A: 

Keep aware of what everyone is doing without micro-managing. It's a delicate balance, but a good team lead can do it. Be personable, approachable, and listen to what your team tells you. They often know more about the specifics of what they are working on than you want to know, but displaying interest in what they are doing and valuing their opinions will go a long way toward running a successful team.

Elie
+15  A: 
  • A lot of it is instinct I think (which comes from experience). You need to be able to quickly spot the hurdles that will result from different solution paths.

  • You need to be able to delegate. It can be difficult giving someone else work you know will take them 4 hours when you can do it in 1. But you can't do everything.

  • You need to admit when you don't know something. But be able to get the answers.

  • To build a team that respects you - always take the blame when things go bad, and share the credit when things go well.

GeekyMonkey
Good post. #2 is super important and also the hardest one for me to do. Letting go is so much easier in the end.
Chris Kloberdanz
#2 's probably the hardest skill to master in being a leader
chakrit
+6  A: 

first off, it takes a while to get used to relying on others to do work for you. It is really hard being responsible for work done by someone else.

That said, a good leader is good at listening and to a lesser extent talking. Coding is no longer that persons real responsibility.

I have found that one skill that is remarkable useful is to listen to someone explain their problem well enough to ask questions. More often than not, by asking the right questions the person can solve their own problems.

Changing to a leadership role means that you will be using a whole host of new skills. Unfortunately, unless you are good in those skills already you will have no idea of how well you are doing in the role.

To counter act this, it is best to try and get better at what you do every day, regardless of your perceived skill at it (this actually is good for any skill you care about). In fact, the article Unskilled and Unaware of it(pdf warning) by Justin Kruger and David Dunning helped me understand quite a bit about working with others.

A poor leader will assume they are "okay" at it.

Guidelines I use for judging if I am doing a good job is if I know what is going on and how individuals are feeling about the work. It is also a good indicator if the project is going well, but the feelings of the individuals on the project will usually be a good indicator of potential failure.

The people you rely on to do the work are, ultimately, the only thing that will determine your success or failure as a leader. If you can rely on your people you can step back and concentrate on serving their needs. If even one person is incompetent, you will be doing so much more work and it will be much harder.

Nat
Very true about the listening part. I was told once that there is a reason why we have two ears and only one mouth :-)
Jonas Kongslund
Sadly, your link to the article has expired..
Fuu
Thanks for the heads up. Changed link
Nat
+1  A: 

It's all about the people. A great leader understands that. I would just suggest reading the classic:

Peopleware: Productive Projects and Teams

Mindaugas Mozūras
+3  A: 

My opinion....

Good leader:

  • listens to your team and the concerns they have AND provides helpful input and solutions
  • provides your team the tools to get their job done most effectively, even if that means you going to management to make it happen
  • steps in at crunch time and get things done that the rest of your team may not have been able to accomplish
  • Rewards your team -- at the very least, talk them up to management if they are doing an extraordinarily great job
  • Stays out of your team's way as much as possible

Bad leader:

  • Micro-manages all details of the project. Trust your team to do the right thing. Empower them to be self-responsible for their work.
  • Condescending attitude, even if you think a team member may be missing something basic
  • Not showing the same passion to get the job done as your team is showing. Actually you need to be the one showing the most passion and heart.

Definitely not an exhaustive list, but important nonetheless.

I think the old, cliched adage of "Treat others like you want to be treated" is appropriate here with the exception that you, are in the end, the final decision maker and ultimately responsible.

Joel Marcey
A: 

Understanding that everybody is unique. What works for you often may be a poor fit for someone with different goals or work habits.

A self-motivated developer will resent you micromanaging everything he does, so it's easy to generalize this as a bad thing. However not everyone is driven that way. There are many talented individuals who produce good results but need constant guidance to ensure they don't get off track. Take the time to get to know each member of your team to better understand what management style works best for them,

polara
A: 

It's very hard to raise from within the team. The rest of the team will likely not respect/treat to you as a manager/leader. Make sure you get strong support from you manager to build the team you are comfortable with. Not the team you are stuck with.

Kozyarchuk