You know the old joke. If it takes one programmer one day to produce some code how long does it take two programmers to produce the same code? The answer is usually two days but depending on how cynical you are it could be two weeks or two months. Now we have evidence that in reality it is better than you might think.
The research used 164 open source projects ranging in size from 5 to 1678 programmers. Rather than using lines of code produced as a measure of work, the number of commits in a period of time was selected as being a better measure of productivity. A quick check proved that they were correlated and hence probably a measure of the same sort of thing.
After gathering the data it was found that
R ≈ c4/3
where R is the number of commits in a 5-day period and c is the number of active contributors in the same period.
If commits scaled as you might expect then the exponent would be one and the productivity would scale linearly with effort. With the measured exponent the productivity scales super-linearly and if you double the effort you get as the amount of output:
24/3 = 2.5
Examining the relationship between project size and exponent, the data reveals that smaller groups have larger exponents but more variability and larger groups have smaller exponents but less variability.
The relationship between productivity and number of people for the Apache Web Server project.
The next question is why does this happen?
The research looked into the possibility that it might be either the way that one commit triggered another, i.e. activity breeds activity, or it could be that projects occasionally get a super programmer involved who work harder than the average or it could be both. However when testing these mechanisms it seems we need something more complicated. The suggestion is that to fit the model it is necessary to take into account developers responding to their own commits and other developers responding.
So now you know it happens even if we don't quite know why; two programmers can do more than twice the work of one programmer. More seriously it seems that the open source collaborative model is a good one for getting teams of people to be productive.
Finally, if it takes one program a day to write a function how many days does it take two programmers to write the same function?
It doesn't, the function is already written and they can use copy and paste - this is the real beauty of software.
PHP is the focus of this week's round up of interesting posts from external blogs. Among the mix you'll find guidelines to reduce complexity, a comparison with HHVM and an excursion into Docker. We st [ ... ]