Empirical studies of distributed pair programming

  • Authors:
  • Brian F. Hanks;Charlie Mcdowell

  • Affiliations:
  • University of California, Santa Cruz;University of California, Santa Cruz

  • Venue:
  • Empirical studies of distributed pair programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.01

Visualization

Abstract

Pair programming, in which two software developers work together at a single computer workstation, transforms what has traditionally been a solitary activity into a collaborative effort. While pair programming, two software developers share a single computer monitor and keyboard. One of the developers, called the driver, controls the computer keyboard and mouse. The second developer (the navigator), sits beside the driver, examining his or her work, offering advice, suggesting corrections, and assisting with design decisions. The developers switch roles regularly while pairing. Although role switching is an informal process, a typical interval is 20 minutes. Software developers who follow the pair programming model produce higher quality programs, have higher morale, and report greater job satisfaction than programmers who work alone. Students who are learning to program also benefit from pairing. They are more confident in their work, more likely to complete their introductory programming course, and more likely to pursue computer-related majors. Pair programming also shows promise in reducing the gender gap in student confidence and in retention in computer-related majors. Although pair programming provides clear pedagogical benefits, its collocation requirement makes it unusable by some students. To increase the flexibility of pair programming and make it available to a wider audience of students, I developed a tool that supports distributed pair programming. This tool allows the driver and navigator to pair program from separate locations, and provides a second cursor that allows the navigator to easily gesture. I empirically evaluated the effectiveness of this tool by conducting a controlled experiment using student volunteers from three introductory programming courses. The experimental results indicated that distributed pair programming does not have any negative impacts on student performance, confidence, or attitudes to ward pair programming. There was some evidence that students who were allowed to pair from separate locations spent a smaller proportion of their time working alone. The students also liked and used the gesturing feature. Contrary to expectations, there was no evidence that distributed pairing reduced scheduling conflicts or improved student satisfaction in their working relationships with their partners. This research has shown that the collocation requirement of pair programming, which some students feel is a significant drawback, can be overcome by allowing students to pair from separate locations. No negative impacts on student performance, confidence, or attitudes regarding pair programming were observed. There was also evidence that students who were allowed to pair program from separate locations spent less time working alone. This research also provides confirming evidence that students who pair program in their introductory classes have greater confidence in their work, and that pair programming helps reduce the gender gap in confidence levels.