views:

905

answers:

15

I work in a team that was decent until about 3 months ago when a senior programmer, colleague of mine, was officially appointed "tech lead". He is a great programmer but he basically sucks at leading.

We all respect him and think he would be great as an architect or something along that line but he needs a lot more of "something" to be a tech lead. I would love to help him because I can see he realizes he doesn't do the best job and he looks like drowning.

He is responsible (we think) for communication inside the team and for delegating chunks of work. However, nobody knows anymore what other people are doing and why.

What kind of suggestions would you make in this situation and how? We need a decent way of making him improve his act while he can save face. Stepping down is not an option for him since management will see this as a failure. But we need to do something before he manages to make a real mess.

I would like to hear from tech leaders and their successes and failures. Thanks.

+4  A: 

Situational leadership.
Mentoring/teaching skills.
Time management.
Patience...

Try a few books...
http://en.wikipedia.org/wiki/The_Mythical_Man-Month

And the latter chapters of Code Craft
http://www.amazon.com/Code-Craft-Practice-Writing-Excellent/dp/1593271190

Nescio
Thanks, I have the "Mythical..." not the other one.
alfinoba
A: 

Give him Joel's book.

Thomas
A: 

People and management skills for a start? Spelling ("Skills" does NOT end in a "Z"...) for another.

Honestly, this is a very subjective question. There are a ton of management styles and any can work differently for different people.

I would recommend picking up "Collins: Best Practices: Managing People" (ISBN 978-0-06-114556-8) by Barry Silverstien. It costs less than $10, can be read in an hour or two, and is a great primer for managing and motivating employees.

Scott S.
Skillz != Skills. Skillz is 1337 slang for that implies not only knowledge in a certain skillset but also expertise in that skillset, as opposed to "skills" where expertise can vary.
Jon Limjap
Yeah, when I hear about my managers "skillz," l337ness, etc, I know I am in for a bad time. 1337speak is not professional and should be used sparingly in a professional environment.
Scott S.
Sorry guys, English is not my first language. I wanted to be cool :) and failed miserably at it.
alfinoba
+1  A: 

Training. If you were thrown into a new situation with a new language or new tools, you'd expect training. Should be the same when you're expected to start managing.

Yes, the skills are softer, but they're just as able to be taught in a classroom and through practice. Also, speaking to other people in the organisation in a similar position can be a real help.

Let him know that he doesn't have to do everything. There's a tendency as a new manager to expect that you have to be superman and not to ask for help. It shouldn't be so. People will not lose respect for you if you delegate and get others to help out.

mopoke
+7  A: 

Make him read this article:

36 steps to success as technical lead

A gentle way to do it is to leave a browser open there while you talk to him about something else :)

klasbas
Thanks this looks very interesting. Pretty long list... now I have to think how to serve it to him sugar coated. :)
alfinoba
+1  A: 

There's a nice article/blog post which might help. http://littletutorials.com/2008/07/07/success-as-technical-lead/

Dhananjay Nene
+1  A: 

I think a Technical Lead should be someone who will set a technical direction for your team and choose and/or help in choosing methodologies/technologies to implement, rather than someone who will manage the project and interface with business analysts or upper management.

Seriously though, what does he suck at?

Update

Now it's clear that the problem is communication. I suspect that years of not needing to talk to other devs have atrophied social skills that are absolutely necessary in management.

That being said, here are some immediate points to address:

  • Team members must communicate to the tech lead that there is a problem. You really have to do this. He might not be aware of it until it is too late.
  • He has to understand that he needs to be more democratic about the decision making processes. He should hear out everyone who has an opinion regarding an issue. He should allow people to voice out concerns if certain decisions turn out to be wrong.
  • He should learn to accept criticism and opinion contrary to his own.

This are only pointers for the short term. In the long term he needs the management training stuff provided by the other answers here. :)

Jon Limjap
The problem is he doesn't communicate to the interested people things they should know like changes in the design of subsystems they depend on and stuff like this. He has discussions with some programmers and then the decisions are not propagated to other people.
alfinoba
Also he changes his mind a lot when he allocates tasks. Maybe only small correctable things but for sure he doesn't look like he knows how to handle the new job. It is a feeling.Sorry for the "skillz" thing, I wanted to be cool, lol. Also English is not my first language as you can probably guess
alfinoba
English is not my first language either, though I can think in it. No prob with "skillz" really -- it has a whole different meaning from "skills". As I suspected, the problem is in communication -- I'll edit my answer to reflect my thoughts on this.
Jon Limjap
+1  A: 

It all depends on what his role really is as a tech lead?

If he is in charge of (some) of the human resource/management function in addition to contributing technically, then he needs to work on his people skills.

If he must now deal with scheduling and deliverable issues, he should get some project management skills.

A great resource for people having to deal with "management" (project or people) is the Manager Tools podcast It is full of good advice.
Specifically look at the "Trinity" of management: One on Ones, Delegation, Mentoring, Feedback (yes I know, there are 4)

Benoit
He is in charge of delegating work
alfinoba
+2  A: 

Peopleware is a really fantastic book. I wish I would have read it a lot sooner.

http://www.amazon.com/Peopleware-Productive-Projects-Teams-Second/dp/0932633439/ref=sr_1_11?ie=UTF8&s=books&qid=1221625422&sr=8-11

Eric P. Mangold
alfinoba
A: 

Responsibility, the rest will come naturally.

leppie
A: 

Being a good team lead is less about writing code, and more about creating good designs, communicating with management, motivating their team, and delegating responsibilities. A team lead who just wants to keep their head down and code is not really a lead at all.

Nighthawk
A: 

read TSP: Leading a Development Team

kmilo
A: 

Responsibility
Communication Skills
and above all...common sense.

rkalajian
I agree, but how do you get experienced and good with those? Just by doing it? It might wreck projects before getting it right!
alfinoba
A: 

When you say:

He is responsible (we think) for communication inside the team and for delegating chunks of work.

Why do you only "think"? Has his role been left unclear by management?

JosephStyons
Yes the role is not very clear IMHO. This is because there is a tech leader and also a manager. Both are formal roles and I am not sure how the responsibilities are divided. I think it is left up to the two guys to negotiate or share or something.
alfinoba
No it is up to the manager to explain the roles to all developers of the team. If the manager has not made it clear to you than your teamlead is not to blame but your manager definately is.
Hace
A: 

I'd say Mentoring is the skill he needs. Its easy to learn and be good at, just most people don't bother to take the time.

Mentoring, for this guy, should be about helping the other coders be effective - ie helping get set up, helping with code problems, advice on design, help with legacy code and historical decisions. These things should be a doddle for him... if he can take the time to ensure that the people he's helping are helped. If he tries to sit down and do it for them.. well, that's no good.

But if he can sit, take the time to help, and generally make sure the other guy is doing well, then that's the definition of a team lead role!

So get him on a Mentoring course (talk to his boss about training for you all and drop the idea .."perhaps TL guy could do some TL-type courses while we're all off learning Python"..)

gbjbaanb