Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Can having too many senior programmers in one team turn out to be a bad thing?

Having like say, 4-5 senior programmers in a team of 6-7 people. What is the optimal number/ratio in these kind of situations?

Can this lead to too much philosophy and arguments about ideas?

Has anyone had such an experience, that can share it with me?

share|improve this question
add comment

8 Answers

up vote 29 down vote accepted

If I could choose I would have 6-7 seniors on a team ( assuming the project needs that many ).

The only time I can see this being a problem is if the seniors are only senior in self perception and not work ethic.

There is nothing better than working with a group of people who appreciate that every piece of software development is important - the documentation, the planning, the code, the coffee, it all matters and it takes mature ( real senior ) developers to be "above nothing" and get the job done properly.

EDIT: Many other answers have said that too many leaders is a problem - but why is there a perception that a senior must lead? A senior should be mature enough to pick a leader and follow. It is the project that matters - pick / get a role and rock it silly !

share|improve this answer
1  
True, Sr. Devs don't have to lead, but they often have some lead responsibility. This may vary across organizations... –  FrustratedWithFormsDesigner Apr 1 '11 at 17:38
8  
Concur! A true senior-level software practitioner should possess the skills and professional maturity to be able to move in and out of leadership positions as needed by the organization. A team of true seniors operates more like a jazz ensemble than an orchestra. –  bit-twiddler Apr 1 '11 at 20:25
    
Oh! That's the answer I was trying to compose earlier but couldn't quite get my head around. +1 –  pdr Apr 1 '11 at 21:11
add comment

The biggest problem I see with loading up a team with senior programmers is that it might weaken other teams. If you have junior developers on other teams that need mentoring and guidance, then you might need to shift people around.

Can this lead to too much philosophy and arguments about ideas?

Sure it can, but they should be mature enough to know what differences matter and what ones just don't. If you've designated a respected team lead, these sorts of philosophical arguments should be kept to a minimum with little effort.

share|improve this answer
add comment

Can having too many senior programmers in one team turn out to be a bad thing?

Definitely.

I'm a big proponent of Fred Brooks' surgical team pattern.

And with that being said, if the seniors on a development team don't know who the "chief surgeon" is, then they'll clash over important architectural decisions and will be pulling in different directions to the detriment of the team.

P.S. A development team's need for a "chief surgeon" is similar to an orchestra's need for a conductor. In either case, you'll likely have many veterans; but you'll have a fine mess without one person who is undisputedly in charge.

share|improve this answer
5  
Only teams on which senior means "five years of experience" need a "chief surgeon." Everyone on my team is over forty. We use a fully-cooperative model to divide up a project. We are like a Jazz ensemble. –  bit-twiddler Apr 1 '11 at 20:07
2  
The surgical team pattern might work for one or two projects, just like micromanaging. In fact, micromanaging is frequently the best approach if short-term is all you care about. However, in the long run, eventually it leads to demoralized workers who aren't being challenged to their ability level. Then the best workers will leave for better opportunities and the lazy and less competent ones will stay because it's pretty easy to do a job when you are told exactly what to do without having to think for yourself. –  Dunk Apr 1 '11 at 20:18
    
And is it fair to suppose that you see yourself as the chief surgeon? –  William Pietri Apr 2 '11 at 3:46
add comment

It depends on how responsibilites are distributed. If ALL of the Sr. Devs are supposed to have equal responsibility wrt design, code review, etc... then it could become a problem. If they are given different responsibilities such that they can work without fighting over control over each others' domains, then it shouldn't be a problem - for example, one Senior Dev gets main responsibility of project design, another gets to be in charge of setting up and maintaining source repository, another gets to be in charge of unit testing, etc...

share|improve this answer
2  
Every software practitioner on my team has equal responsibility and equal authority. We are a small, but highly-experienced team that does the work of a much larger mixed team. –  bit-twiddler Apr 1 '11 at 20:26
1  
If developers don't know how to work collaboratively, without the need for defined domains, then they aren't yet senior. –  William Pietri Apr 2 '11 at 3:47
add comment

Yes, there can be the problem of having too many cooks in the kitchen for one metaphor that may apply. It could also be quite costly if they are all expecting high salaries. Note that this is just verifying the existence of a bad case and says nothing about its probability.

Optimal depends on a number of variables that you aren't disclosing. What metric do you want to use realizing that there is a good chance of some gaming the system here. Similarly, what constraints do you have within your world that may make it different than what Google or Microsoft may have in contrast.

Too many senior developers can have the problem of either no conventions or too many conventions I'd think. While some senior developers may be good at adapting, if none of them are likely to introduce a convention, where would a team start? Conversely, there may be some senior developers that are die hard fans of some conventions that may require some conflict resolution to resolve.

share|improve this answer
add comment

Can having too many senior programmers in one team turn out to be a bad thing?

Not necessarily. I have worked on small teams of senior developers that were highly productive. The level of discourse was very high, and there was no rancor.

With TDD, there are very few big commitments to software architecture, so there's little need to argue about them. Design decisions can be resolved by simply implementing both approaches and seeing which one works out best. Since the developers are very fast, the cost of these trials is very low.

share|improve this answer
add comment

I think it depends on the personalities of the seniors. If they're arrogant and argumentative, then it can be a bad thing. But if they're all respectful, open to other viewpoints, and willing to learn from each other, then you have a great team.

I currently work on a team of 8, where 5 or 6 are senior, and it works really well for us. We get along well, learn from each other, and it's a great mentoring environment for the newer guys we have.

share|improve this answer
2  
In my humble opinion, the "senior" title also conveys a level of professional maturity. –  bit-twiddler Apr 1 '11 at 20:14
    
If senior developers are arrogant and argumentative, they will be bad on any team. It's just more obvious with other senior devs, because they know not to put up with the bullshit. –  William Pietri Apr 2 '11 at 3:48
add comment

I worked in a team where there were 1 lead developer, 4 senior developers, and 1 middle developer. And because of the reason that one "senior" member of the team was not a really mature person (good developer though), it turned out to be a nightmare. He tried to prove all the time (implicitly or explicitly) that other team members are not senior enough. Also he failed to understand basic principles of software development and specifics of our product, and, therefore, arrogantly and stubbornly tried to prove that he's right. As a result, it seriously affected effectiveness of the team. The sad part is that it even was not too much argument about ideas/solutions - it was argument about nothing. For example:

  • who broke the build (which most of the time was green and, technically, wasn't broken. it was UI which failed to work properly very often due to the poor architectural solutions)
  • why there are regressions (modules were not covered by unit-tests which we didn't have access to contribute to)
  • arguing over architectural solution in module which is somebody other's responsibility knowing nothing about module requirements and specifics.
  • ...

But I admit it was rather an exception. I want to believe that seniors behave properly most of the time :)

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.