tags:

views:

436

answers:

8

Hi,

I want to know if others have experienced the situation where people around you are very smart and have few star programmers but as a team you are still struggling to move. I am not talking about people with arrogance/pride or social handicap.

Does motivation to create shared vision of product play any part?


I understand the value of Star programmer and teams but what I am really looking for is when even in the presence of such teams, product team is not reflecting that! Have people experienced such situation?

+2  A: 

Star programmers are fundamental to any team, it would be great if all programmers were stars.

Teams struggling to move are typically teams that don't have a vision of the product or don't believe that the product will succeed.

Or teams that are being badly managed.

Try to figure out what is on their minds besides getting the work done, be careful, you could be opening a can of worms here.

gbrandt
+6  A: 

Star programmers are supposed to be the leaders. If none of your programmers are taking intiative and carrying on the project, none of them are star programmers (or good star programmers, if bad ones exist).

That, or, as MrTelly suggests, your star programmers are leading (or at least trying to lead) each other in opposite directions. Anyone who knows vector math knows that the sum of opposite-facing vectors is ... nothing!

strager
Another option is that the star programmers are being overruled by someone higher up the organizational ladder than they are.
Rob
I would agree with Rob to some extent. But problem I am seeing is that * people end up taking lot of initiative and team is less productive then individuals..
Ketan
Dunk's reply is also good answer. (Can't accept two)This is as pointed out complex interplay of leadership, freedom and belief. I had my doubts which are kind of confirmed by others.. That's why I was trying to understand other teams dynamics and how often they go through this phase.
Ketan
star people must provide momentum to the group - that means sharing knowledge, visions and skills. If they cannot communicate that, they DO have social skill issues.
Thorbjørn Ravn Andersen
+3  A: 

I think you've answered your own question, you can have the best team in the world, with or without stars, but if you're not all going in the same/similar direction, sharing a vision as you put it, you're not going to make much progress. It's easy to be busy all the time, but in reality acheive little that an end user could actually install and use.

I've been in this situation a few times, and I'm wondering if your experience is similar. Are you seeing small parts of the code base supposedly complete, but not integrated with the whole? Is the discipline around builds (hopefully continuous) and testing patchy with some areas well tested and others not at all. Most importantly do you have regular code deliveries - there's no better way of getting a wayward team to focus, to force a delivery - however, minor the functionality may be. If you can't get some code compiled, tested, delivered within a short time frame, say 1 month, you know you've got real problems.

BTW I think leading and leadership is a sorely under appreciated skill the development community. Great leaders aren't necessarily star technical people, in fact being a star can be more of a hindrance as the leaders time is taken up with tech issues. The leader needs to concentrate on delivery, without delivery (and of course everything that leads to it) you have nothing.

MrTelly
+1  A: 

The definition of a star programmer can be different. Is star programmer the most technical developer on the team? Is it the most dedicated developer? Is it the guy with the most accepted ideas (by management or by other members of the team or both)?

I've had experience where a team was extremely technical and motivated. Every member of the team was a senior developer when he starter and every member had very high growth potential (rightly so). However, as people expect to move in seniority and responsibility, some can feel left out. Until this is resolved by growing the team, moving members around, etc... the team is a lot less productive then it was at the beginging.

There is a saying - "its not enough to know your price, someone has to be willing to pay it." Same way, its not enough to have a star programmer, he has to be willing to lead, and others have to be willing to accept it.

Timur Fanshteyn
+1  A: 

Just a thought, "Struggling to move" might be in the eye of the beholder. Just because they aren't cranking out code yet, does not necessarily mean they are struggling to move. Depending on the type of project, there can be a significant amount of up front work that might make one think nothing is being accomplished (because nothing tangible has been produced) but in reality a lot of the smart work is being created that will greatly simplify things later. Is this a complicated or easy project?

However, assuming that they really are “Struggling to Move”. I have seen that when the smooth-talker developer is put in charge because the manager likes the way they talk, but the smooth-talker doesn’t really know what they are talking about. Yet, the manager doesn’t know enough to know that the smooth-talker is clueless. This is characterized by a lot of give me this rock, no I meant that rock type of activities.

I have also seen the problem when the lead is not really interested in managing, but is more interested in development. This results in the team going in all sorts of directions. They do a lot of work, much of it good, but somehow it doesn’t fit together as a whole. Thus, no real progress is made. Every team needs that nag, who can nag without ticking people off, that keeps the team moving forward in the right direction. The lead who wants to focus on development usually does not fill this role well.

It is hard to give any meaningful feedback because you did not give enough info to describe your particular situation. Do they have a detailed schedule? At the very least that will give you an indication that they know where they are supposed to be heading. If they aren’t meeting the schedule then it should point out who is not making the desired progress. If the schedule isn’t detailed enough to point out who, then the schedule isn’t detailed enough.

Maybe a little more info will help us come up with more suggestions.

Dunk
I understand that my question is vague but it is the feeling that I get sometime. Also keep in product delivery and leadership in market is great, so we are doing great :) Question I am asking is replied partly by you as "nag" or leadership.
Ketan
Now I'm more confused. First you say your team is struggling to move, then your team is doing great? If your team goes through phases of great productivity then periods of down time then I think that is normal. You can't expect them to go full tilt all the time....cont...
Dunk
Also, managing and leadership are 2 entirely different things. The manager is in a better position to be the leader because they have the authority, but more often than not the *leader* and the manager are different people.
Dunk
When I mean team is doing great means we have strong product in market due to last 10+ yrs of work. But I feel may be as others have pointed out.. due to various reasons.. team as a whole is less productive then individuals!
Ketan
There will always be inequities in the productivity between developers. Contrary to what managers think CMMI represents, software developers are not interchangeable pieces. If you think that everyone on the team should be performing to your best developer’s level then that will never happen....
Dunk
OTOH, don’t relate importance of a person to a project to being a good developer. Do your developers have fiefdoms that they protect or are they interested in helping the team be more productive? The fiefdom chiefs usually seem very important but that is because they take action to ensure they....
Dunk
are the only ones who understand their software. The best developers make themselves dispensable on the portions of software they developed. If fiefdomism is your problem, then get rid of the chieftains, even if they are important. The team will improve dramatically, everyone is replaceable.
Dunk
A: 

There are usually two reasons for this:

1) The programmers have conflicting personalities leading to them sub-consciously playing the role of saboteurs in the team.

2) They have a product that they don't really believe in because it is trying to serve conflicting purposes.

+1  A: 

As others have said, no visible progress in terms of lines of code, etc. does not necessarily mean that no progress is being made.

Having said that, yes, I've been in situations where there were plenty of good people, some stars, but things moved slowly or not at all. That can be a result of many factors: "corporate knowledge" (i.e. is there any one around who knows how things were done and why), proper background/training/aptitude/interest for the jobs people are assigned, support of and clear direction from management, autonomy, that shared vision thing, and other things.

As for team building, there's more to it that just having a star programmer or two. To wit, in sports, it's not uncommon for even bad teams to have a star player or two. It's often how the whole group interacts that determines how successful it is. So, do you have a team, or - as I think Casey Stengel said - "an interesting collection of individuals"? If you're not already familiar with it, I'd recommend reading DeMarco & Lister's Peopleware. It's a classic that deals with team building, amongst other things.

PTBNL
A: 

While the lack of a shared vision can cause some problems, it isn't the only issue that can act as a way to prevent the team from looking good. Here are another few:

  1. Ping-pong requirements. If what is asked requires many hours of work and the team is running in circles, this can be a case where while it may look like nothing was done, because all the changes done for one iteration were undone in another, this can also de-motivate the team and cause problems.

  2. Fuzzy requirements. If the end-user doesn't know what they want, it can be more than a little hard for the team to jump on things and git-r-done. What may work one time, may backfire completely another time. This is slightly different than the first one as this doesn't necessarily create a cycle. This may be very similar to the shared vision issue though this is from the business or client or customer that wants the software.

  3. Things just don't go together smoothly. Sometimes what one thinks should just plug and play, don't even really plug well. These rough patches can take months to sort out and cause all kinds of headaches that may or may not be easy to resolve, even with clear requirements. Where I work we have had problems repeatedly with various things coming together and what should be smooth, just isn't that way at all. Ultimately things will be fine, but until that end there can be a lot of pain for a lot of people.

JB King