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.

Laurie Williams, Robert Kessler, Ward Cunningham, Ron Jeffries.
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

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.

Kim Man Lui, Keith C.C. Chan

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.

Kim Man Lui, Keith C.C. Chan

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.

Alberto Sillitti, Giancarlo Succi, Jelena Vlasenko

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.

Andrew Begel, Nachiappan Nagappan - Microsoft Research

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.

Charlie McDowell, Linda Werner, Heather Bullock, Julian Fernald

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.

Erik Arisholm, Hans Gallis, Tore Dyba, Dag I.K. Sjoberg

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.