Are Two Heads Better than One? On the Effectiveness of Pair Programming
Authors:
- 5 November 2007
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Software
- Vol. 24 (6) , 12-15
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
This publication has 8 references indexed in Scilit:
- A systematic review of effect size in software engineering experimentsInformation and Software Technology, 2007
- Evaluating Pair Programming with Respect to System Complexity and Programmer ExpertiseIEEE Transactions on Software Engineering, 2007
- A preliminary study on the impact of a pair design phase on pair programming and solo programmingInformation and Software Technology, 2006
- Effects of pair programming at the development team level: an experiment2005
- Evidence-based software engineering for practitionersIEEE Software, 2005
- Group Performance and Decision MakingAnnual Review of Psychology, 2004
- The case for collaborative programmingCommunications of the ACM, 1998
- Progress in Small Group ResearchAnnual Review of Psychology, 1990