Gesellschaft für Informatik e.V.

Lecture Notes in Informatics


Software Engineering 2016 P-252, 53-54 (2016).

Gesellschaft für Informatik, Bonn
2016


Copyright © Gesellschaft für Informatik, Bonn

Contents

From aristotle to ringelmann: A large-scale analysis of team productivity and coordination in open source software projects

Ingo Scholtes , Pavlin Mavrodiev and Frank Schweitzer

Abstract


The productivity of software development teams, i.e., how their size relates to their output, is an important question for project management. Most studies suggest that teams become less productive as they grow larger, a phenomenon paraphrased as Brooks' law in software engineering and as Ringelmann effect in social psychology. Conversely, a recent study suggests that the productivity of teams in OSS projects increases as they grow larger. Attributing it to synergetic effects, this was linked to the Aristotelian quote that “the whole is more than the sum of its parts”. Using data on 58 OSS projects with 580 000 commits by 30 000 developers, we perform a large-scale analysis of , , productivity in development teams. We confirm the negative relation previously found by software engineering research, providing quantitative evidence for the Ringelmann effect. Taking a network perspective on developer-code associations, we investigate mechanism behind this effect and show that the magnitude of the productivity decrease is related to the growth dynamics of coordination networks. Most of today's software projects are so complex that they cannot be developed by a single person, instead requiring large teams of collaborating developers. This necessity of large teams raises a simple, yet important question: How productive is a team of developers compared to a single developer? Or, in other words: How much time do n developers need to finish a project compared to the time taken by a single developer? This question is of significant importance not only for project management but also for the development of cost estimation models for software engineering processes. One may naively assume that the productivity of individual team members is additive, i.e., that, compared to the time taken by\ Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap Error: Illegal entry in bfrange block in ToUnicode CMap ;a single developer, n developers will speed up the development time by a factor of n. However, this misses out two important factors that can give rise to a nonadditive scaling of productivity. First, the collaboration of developers in a team can give rise to synergy effects, which result in the team being more productive than one would expect from adding up individual productivities of its members. Under this assumption, the average output per team member can be increased by adding developers to the team, a fact that has recently been related to Aristotle's quote that “the whole is more than the sum of its parts” [SMG14]. A second, contrary factor that influences the productivity of developer teams is the communication and coordination overhead which is likely to increase as teams grow larger. In particular, this can lead to situations where the average output per team member decreases as the size of the team is increased. Studies showing that growing team sizes negatively affect productivity can be traced back to early studies of Maximilian Ringelmann [Ri13]. In the context of software engineering, it can be related


Full Text: PDF

Gesellschaft für Informatik, Bonn
ISBN 978-3-88579-646-6


Last changed 25.02.2016 18:39:03