How many developers does it take to complete a project?
The million-dollar question about the level of productivity in software development teams is the following: How does their productivity scale with the team size? Forget everything you knew about the ideal team size. Are you familiar with the Ringelmann effect?
It has become common knowledge that developers in large teams produce less code than developers in small teams (see the two pizza rule by Amazon CEO Jeff Bezos). But where does this idea come from? You can find the answer in Ingo Scholtes’ article titled From Aristotle to Ringelmann: Using data science to understand the productivity of software development teams.
To be or not to be….a team?
Maximilien Ringelmann, a French professor of agricultural engineering is the person who discovered that individuals’ productivity decreases when they work in teams. The Ringelmann effect came into being after he asked large groups of his students to simultaneously pull on a rope and discovered that the collective force of a group was less than the total force applied by each team member alone.
More than half a century later, Fred Brooks wrote in his book The Mythical Man-Month that “adding manpower to a late project makes it later.” Some tasks in software development cannot be easily distributed and a bigger number of people results in extra needs such as coordination and communication, which may limit team members’ productivity.
According to the summary of Ingo Scholtes’ article, “a recent study suggested that in Open Source Software (OSS) projects, the productivity of developers increases as the team grows in size. Attributing it to collective synergetic effects, this surprising finding was linked to the Aristotelian quote that ‘the whole is more than the sum of its parts’.”
To find out who is correct —Aristotle or Ringelmann and Brooks—, they analyzed a set of 58 major Open Source projects on GitHub with a history of over ten years and a more than half a million commits contributed by more than 30,000 developers and tried to answer this question: How does the productivity of software development teams scale with the team size?
They mapped out the average code contribution per team member and discovered that Ringelmann and Brooks were in fact right: the decreasing trend suggests that developers in bigger development teams have a tendency to produce less. They concluded that there’s a strong Ringelmann effect in all of the analyzed open source projects, which means that developers in bigger teams produce less code than developers in smaller teams (back to the two pizza rule).
Furthermore, their analysis of time-evolving co-editing networks constructed from the commit log history showed that “the increasing coordination overhead imposed by larger teams is a factor that drives the decrease of developer productivity as teams grow larger.”
Therefore, it is safe to say that open source projects are not an exception from the rule and less (team members) is indeed more in software development teams.