Expand to search all pages
Scientific Literature
We know programmers need papers to read as a proof, so we've compiled a list of notable studies (academic papers and industry case studies) on pair programming.
Each entry includes the title, authors, year, a summary of key findings, and a source or link for access if you want to read more.
This IEEE Software article provides early empirical evidence that pair programming leads to better code quality and shorter completion time. An experiment with professional and student programmers showed that pairs produced higher-quality code and completed tasks ~40% faster than individuals (though with about 15% more total programmer hours). Programmers also reported greater enjoyment when pairing.
John T. Nosek's influential 1998 paper presents compelling evidence for pair programming effectiveness through a field experiment with experienced professionals. Working on a challenging database consistency check problem, collaborative teams consistently outperformed individual programmers in solution quality, completed tasks approximately 40% faster, and reported higher confidence and enjoyment. One pair even produced code twice as efficient as scripts previously purchased from external consultant
This paper laid important groundwork for what would later become widely known as "pair programming" in software development methodologies like Extreme Programming.
This paper investigates productivity differences between novice-novice and expert-expert pairs in programming through a "repeat-programming" experimental approach. Addressing contradictory findings from previous research, the study reveals that novice-novice pairs show greater productivity gains over solo novices compared to expert-expert pairs over solo experts.
Two key principles emerge:
(1) pairs are more productive when tackling new, complex programming challenges, and
(2) pair programming productivity decreases when programmers have prior experience with similar tasks.
This paper investigates productivity differences between novice-novice and expert-expert pairs in programming through a "repeat-programming" experimental approach. Addressing contradictory findings from previous research, the study reveals that novice-novice pairs show greater productivity gains over solo novices compared to expert-expert pairs over solo experts.
Two key principles emerge:
(1) pairs are more productive when tackling new, complex programming challenges, and
(2) pair programming productivity decreases when programmers have prior experience with similar tasks.
This industrial case study examines how pair programming affects developers' attention by tracking application usage of 17 developers over ten months. The research analyzes time spent on productive activities, frequency of tool switching, and duration of focus before task switching.
The findings reveal that paired developers spend significantly more time in productive activities (64% vs 34% in the IDE), switch between applications less frequently, and maintain longer periods of concentration (128 vs 28 seconds). Pair programming sessions also lasted longer without interruption (23 vs 12 minutes),suggesting that pairing helps developers eliminate distractions and maintain better focus.
*Our note: We live in an attention economy, and pair programming helps developers maintain focus and productivity. We think this is one of the most important benefits of pair programming. Regaining our attention.
This paper by Begel and Nagappan presents findings from a longitudinal study of pair programming at Microsoft. Based on a survey of randomly selected engineers, they found that 22% had experience with pair programming. The biggest perceived benefits included fewer bugs, better knowledge sharing, and higher quality code.
Major challenges included cost-efficiency concerns, scheduling difficulties, and personality conflicts. Most engineers preferred partners with complementary skills, flexibility, and good communication abilities. While about two-thirds of respondents believed pair programming produces higher quality code, there was less agreement about whether it takes more time than solo programming.
This paper investigates the effects of pair-programming on student performance in an introductory programming course at the University of California, Santa Cruz. The study compared approximately 600 students who either programmed in pairs or independently. Results showed that students who programmed in pairs produced better quality programs, had significantly higher course completion rates (92% vs 76%), and performed comparably on final exams to those who programmed alone.
This paper evaluates pair programming (PP) with respect to system complexity and programmer expertise. The study involved 295 Java consultants from 29 companies in Norway, Sweden, and the UK, performing change tasks on Java systems with varying complexity. The experiment aimed to determine the effects of PP on duration, effort, and correctness.
The results indicated that PP did not consistently reduce the time required or increase the proportion of correct solutions. However, on more complex systems, PP increased the proportion of correct solutions, particularly for junior programmers. For simpler systems, PP reduced the time taken, mainly for intermediate and senior programmers. The study suggests that the benefits of PP depend on system complexity and programmer expertise, and may be more pronounced for larger, more complex tasks and with longer collaboration periods.
Additional Resources#
- The Costs and Benefits of Pair Programming (2001)- Alistair Cockburn, Laurie Williams
- Pair Programming: An Empirical Investigation in an Agile Software Development Environment - Sanjay Misra
- A Multiple Case Study on the Impact of Pair Programming on Product Quality - H. Hulkko, P. Abrahamsson
- Collaboration in Pair Programming: Driving and Switching - Laura Plonka, Judith Segal, Helen Sharp, Janet van der Linden
- Knowledge Transfer in Pair Programming: An In-depth Analysis - Laura.Plonka, Helen.Sharp, Janet.Vande
- The Case for Pair Programming in the Computer Science Classroom - Grant Braught, Tim Wahls, L. Marlin Eby