"Talking the talk": Is intermediate-level conversation the key to the pair programming success story?

Pair programming claims to provide benefits over and above those offered by a programmer working alone. In particular, a number of studies have suggested that pair programming improves software quality. The literature speculates that the 'driver' (the programmer currently typing in the code) and 'navigator' work together in a complimentary manner, and that the nature of these roles may be key in realizing the reported benefits. Here we dispute two of these existing claims: (i) that the navigator providing a 'continual review' of the driver's work and highlighting errors (i.e. acting as a reviewer); (ii) that the navigator is focused on a higher level of abstraction that the driver (i.e. acting as a foreman). Our findings suggest that the key to the success of pair programming does not lie in the differences in behaviour or focus between the driver and navigator. Rather, we suggest an alternative perspective (the "tag team ") and remark upon the proliferation of talk at an intermediate level of detail in pair programmers' conversations. This leads us to suggest that producing the type of talk necessary to work effectively together may itself be fundamental in realizing the reported improvements in software quality.

[1]  Beatrice Gralton,et al.  Washington DC - USA , 2008 .

[2]  Laurie A. Williams,et al.  The effects of "pair-pressure" and "pair-learning" on software engineering education , 2000, Thirteenth Conference on Software Engineering Education and Training.

[3]  William C. Wake,et al.  Extreme Programming Explored , 2001 .

[4]  Dewayne E. Perry,et al.  People, organizations, and process improvement , 1994, IEEE Software.

[5]  Steve Parkes,et al.  Trends in the use of verbal protocol analysis in software engineering research , 2003, Behav. Inf. Technol..

[6]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[7]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[8]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[9]  Pablo Romero,et al.  Pair programming and the re-appropriation of individual tools for collaborative software development , 2006, COOP.

[10]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[11]  M. Chi Quantifying Qualitative Analyses of Verbal Data: A Practical Guide , 1997 .

[12]  Pablo Romero,et al.  The Collaborative Nature of Pair Programming , 2006, XP.

[13]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[14]  Judith Good,et al.  Program comprehension and authentic measurement: : a scheme for analysing descriptions of programs , 2004, Int. J. Hum. Comput. Stud..

[15]  Susan Wiedenbeck,et al.  A comparison of the comprehension of object-oriented and procedural programs by novice programmers , 1999, Interact. Comput..

[16]  Andrew j. Dick,et al.  Paired Programming & Personality Traits , 2002 .

[17]  Eliot Soloway,et al.  Workshop on empirical studies of programmers , 1986, SOEN.

[18]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[19]  Alan F. Blackwell What is Programming , 2002 .

[20]  Ronald Jensen A pair programming experience , 2003 .

[21]  Sallyann Bryant Double Trouble: Mixing Qualitative and Quantitative Methods in the Study of eXtreme Programmers , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[22]  Dewayne E. Perry,et al.  Understanding Software Development Processes, Organizations, and Technologies , 1999 .

[23]  Helen Sharp,et al.  An ethnography of XP practice , 2003, PPIG.

[24]  Bill Curtis,et al.  By the way, did anyone study any real programmers? , 1986 .

[25]  Orit Hazzan,et al.  Bridging Cognitive and Social Chasms in Software Development Using Extreme Programming , 2003, XP.

[26]  Johnette Hassell,et al.  Information Relationships in PROLOG Programs: How Do Programmers Comprehend Functionality? , 1991, Int. J. Man Mach. Stud..