Title :
Are Two Heads Better than One? On the Effectiveness of Pair Programming
Author :
Dyba, Tore ; Arisholm, Erik ; Sjoberg, Dag I. K. ; Hannay, Jo E. ; Shull, Forrest
Author_Institution :
Simula Res. Lab. Sintef ICI, Bucharest
Abstract :
Pair programming is a collaborative approach that makes working in pairs rather than individually the primary work style for code development. Because PP is a radically different approach than many developers are used to, it can be hard to predict the effects when a team switches to PP. Because projects focus on different things, this article concentrates on understanding general aspects related to effectiveness, specifically project duration, effort, and quality. Not unexpectedly, our meta-analysis showed that the question of whether two heads are better than one isn\´t precise enough to be meaningful. Given the evidence, the best answer is "it depends" - on both the programmer\´s expertise and the complexity of the system and tasks to be solved. Two heads are better than one for achieving correctness on highly complex programming tasks. They might also have a time gain on simpler tasks. Additional studies would be useful. For example, further investigation is clearly needed into the interaction of complexity and programmer experience and how they affect the appropriateness of a PP approach; our current understanding of this phenomenon rests chiefly on a single (although large) study. Only by understanding what makes pairs work and what makes them less efficient can we take steps to provide beneficial work conditions, to avoid detrimental conditions, and to avoid pairing altogether when conditions are detrimental. With the right cooks and the right combination of ingredients, the broth has the potential to be very good indeed.
Keywords :
programming; software engineering; code development; collaborative approach; meta-analysis; pair programming; Application software; Code standards; Educational institutions; Europe; Measurement standards; North America; Programming profession; Resource management; Time measurement; code; duration; effort; pair programming; programming; quality;
Journal_Title :
Software, IEEE
DOI :
10.1109/MS.2007.158