Optimally Interacting Minds Bahador Bahrami, Karsten Olsen, Peter E. Latham, Andreas Roepstorff, Geraint Rees, Chris D. Frith Science 27 August 2010: Vol. 329. no. 5995, pp. 1081 - 1085 DOI: 10.1126/science.1185718
This paper is not about pair programming, but about two people pairing on any task. The paper requires membership or purchase, but is discussed at http://blogs.discovermagazine.com/notrocketscience/2010/08/26/two-heads-better-than-one-if-the-heads-talk-and-know-how-competent-they-are/ . In brief, the findings are that two people generally perform better working together, but not if one person is unconsciously incompetent.
Abstract: In everyday life, many people believe that two heads are better than one. Our ability to solve problems together appears to be fundamental to the current dominance and future survival of the human species. But are two heads really better than one? We addressed this question in the context of a collective low-level perceptual decision-making task. For two observers of nearly equal visual sensitivity, two heads were definitely better than one, provided they were given the opportunity to communicate freely, even in the absence of any feedback about decision outcomes. But for observers with very different visual sensitivities, two heads were actually worse than the better one. These seemingly discrepant patterns of group behavior can be explained by a model in which two heads are Bayes optimal under the assumption that individuals accurately communicate their level of confidence on every trial.
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise Erik Arisholm, Hans Gallis, Tore Dyba, and Dag I.K. Sjøberg IEEE Transactions on Software Engineering, VOL. 33, NO. 2, February 2007
- A study of 99 individual and 98 pairs of contracted Java programmers found little benefit in pairing for 5 to 8 hours of maintenance development. The study notes that the systems being modified were relatively simple and that the overwhelming majority of subject developers had no experience in pair programming.
Adventures in Promiscuous Pairing: Seeking Beginner’s Mind Mitch Lacey http://mitchlacey.com/docs/lacey-AdvPromPairing1.pdf
- Mitch Lacey's team was unable to duplicate the results of Arlo Belshee's team. Mitch still reports, "By using agile principles, we were able to have an 84% increase in quality with only a 15% increase in overhead."
Promiscuous Pairing and Beginner’s Mind: Embrace Inexperience (2005) Arlo Belshee http://mitchlacey.com/docs/XR4PromiscuousPairingandBeginnersMind.pdf
- This paper the experiments that Arlo Belshee's team conducted with pair programming switching rates and which pair to switch off a task. In that team, switching at 90 minute intervals and keeping the Least Qualified Implementer on the task were optimal.
Distributed Pair Programming: An Empirical Study (2004) Brian F. Hanks (University of California, Santa Cruz) http://repositories.cdlib.org/cgi/viewcontent.cgi?article=1713&context=postprints
- This paper reports the results of a controlled experiment using university students in which a collaboration tool enabled remote pairing.
Pair Programming: When and Why It Works (2003) Jan Chong, Robert Plummer, Larry Leifer, Scott R. Klemmer, Ozgur Eris, George Toye http://hci.stanford.edu/research/pairs/PairProgramming-WhenWhy.pdf
- An exploration of the conditions under which pair programming adds value, and how it does so.
The Costs and Benefits of Pair Programming (2000?) Alistair Cockburn, Laurie Williams (University of Utah) http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF
- Through a combination of interviews and controlled experiments, the authors found a range of significant benefits in exchange for a cost in terms of development time of about 15%.
Strengthening the Case for Pair Programming (2000) Laurie Williams (North Carolina State University), Robert R. Kessler (University of Utah), Ward Cunningham, Ron Jeffries http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF
- The authors present anecdotal, qualitative, and quantitative evidence of the value of pair programming.
A Comparison of Pair Programming to Inspections for Software Defect Reduction (2002) James E. Tomayko http://www.informaworld.com/smpp/content~content=a714015883&db=all
- "An experiment was conducted to see if pair programming reduces defects more than formal inspections. Results indicate that pair programming is more effective. A defect rate of 9.6 per thousand lines of code, much lower than that of a heavier method, were achieved. The implications for teaching are explored."
Management Impact on Software Cost and Schedule (1996) Randall W. Jensen http://www.stsc.hill.af.mil/crosstalk/1996/07/manageme.asp
- This article describes a 1975 experiment in 'two person teams' - what we would call pair programming. The technique resulted in significant productivity improvements.
Extracted from StudiesOfAgileEffectiveness
