I’ve read up on some pair programming research. Here is the different papers I’ve read. With a short description for each.
Strengthening the Case for Pair-Programming
They compare results from professional developers working with and without pair programming and teams at the university doing both pair programming and non pair programming. In all cases pair programming deliver better results.
- Authors: Laurie Williams at North Carolina State University, Robert R. Kessler at University of Utah, Ward Cunningham at Cunningham & Cunningham, Inc & Ron Jeffries
- PDF: http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF
- ACM: http://portal.acm.org/citation.cfm?id=626149
Promiscuous Pairing and Beginner’s Mind: Embrace Inexperience
The optimal time between switching partner is 90 minutes and inexperienced developers solve problems both faster and better that people with previous knowledge about the problem. Beginners luck or just that you are more open without a baggage of experience?
A new developer was totally integrated to the team within 3 weeks of work. When not pairing they noticed a huge impact on productive. In 18 months the longest time it took to find and fix a bug was 6 hours. They also found out that a team is most productive when they own, manage and assign all tasks themselves.
- Author: Arlo Belshee at Silver Platter Software
- PDF: http://mitchlacey.com/docs/XR4PromiscuousPairingandBeginnersMind.pdf
- ACM: http://portal.acm.org/citation.cfm?id=1122100
Adventures in Promiscuous Pairing: Seeking Beginner’s Mind
They verified the performance boost described in Promiscuous Pairing and Beginner’s Mind: Embrace Inexperience, which means short times (~90 min) between changing pairing partner. They verified the results but it also broke the team.
- Author: Mitch Lacey at Microsoft
- PDF: http://mitchlacey.com/docs/lacey-AdvPromPairing1.pdf
A Study About Pair Programming in Practice
During a course at Lund University the students answered two surveys about pair programming. The first before the course. The second after.
The students were a bit more negative to pair programming after the course.
Practical recommendations about how to assign partners and tasks. What role should a team coach have in a pair programming team. How often you should change partners.
Most important personality types are not technical skills but social skills and worst personality types are dominant and ineffective.
Weaker developers liked pair programming more than the strongest.
- Authors: Mia Nyström, Johan Rix, Karin Wanhainen at Lund University
- Original title: En studie om parprogrammering i praktiken
- PDF: http://www.cs.lth.se/EDA270/Djupstudier/Articles/2001-2002/NystromRixWanhainen.pdf