What happens if five developers engage into a huge project?
As projectmanager or technical teamlead you really would like to see all of your developers to contribute for about the same amount to all of the source code, right? Although this is not easy to measure, one of the measurements available to us is simply the 'number of commits' per developer to the source control system. At least, that is what Subversion is giving us right out of the box.
Suppose we would draw a nice bargraph for all commits in a certain period for five developers. For a certain period of time, you probably expect to see a graph looking something like this:
So what you would expect is that some of the developers contribute a just a little bit more than other developers to the project.
But the above graph, unfortunately, is entirely unrealistic !
In reality, in most developmentteams the bar is actually looking more like this:
What does this mean? Well, it actually means that most devteams are heavily relying on just a few top guru programmers and you also have some developers that simply did not get it, yet. We have a huge “skill hill“. We have great developers and we have good developers and the difference is frightening huge.
To be clear, I am NOT talking about bad apples here! Bad apples contribute to the codebut are harming progress. I am NOT talking about that here. I am talking about the fact that developers are so different in skill, that one sole great developer in a team contributes just as much as four FULL goodr developers in the same team. Experience tells us that there is not alot we can do about this fact.
The best way of solving this 'gap' is getting the teammembers up-to-speed with each other. Include having code-reviews in your development process and allow actual pair-programming are the only solutions. Unless you have something better?
Added dec 2009: Of course we -should- do things about that. Great developers in your team should teach the good developers and take them uphill. A good summary of links has been posted by Steve Zhang in his post from good to great developer. Get your good developers in your team uphill with the great developers. Let your team climb the skill hill!