Exploring the Efficacy of Distributed Pair Programming
Pair programming is one of the twelve practices of Extreme Programming (XP). Pair programming is usually performed by programmers that are collocated — working in front of the same monitor. But the inevitability of distributed development of software gives rise to important questions: How effective is pair programming if the pairs are not physically next to each other? What if the programmers are geographically distributed? An experiment was conducted at North Carolina State University to compare different working arrangements of student teams developing object-oriented software. Teams were both collocated and in distributed environments; some teams practiced pair programming while others did not. In particular, we compared the software developed by virtual teams using distributed pair programming against collocated teams using pair programming and against virtual teams that did not employ distributed pair programming. The results of the experiment indicate that it is feasible to develop software using distributed pair programming, and that the resulting software is comparable to software developed in collocated or virtual teams (without pair programming) in productivity and quality.
KeywordsTeam Project Virtual Team Computer Support Cooperative Work Student Team Pair Programming
Unable to display preview. Download preview PDF.
- 1.K. Beck, “Extreme Programming Explained: Embrace Change”. Reading, Massachusetts: Addison-Wesley, 2000.Google Scholar
- 2.B. George., Y. M. Mansour, “A Multidisciplinary Virtual Team”, Accepted at Systemics, Cybernetics and Informatics (SCI), 2002.Google Scholar
- 4.L. A. Williams, “The Collaborative Software Process PhD Dissertation”, Department of Computer Science, University of Utah. Salt Lake City, 2000.Google Scholar
- 5.J. T. Nosek, “The case for collaborative programming”, Communications of the ACM 41:3, March 1998, p. 105–108.Google Scholar
- 6.L. A. Williams, and R. Kessler, Pair Programming Illuminated, Boston, MA: Addison Wesley, 2002.Google Scholar
- 7.L. Williams, R. Kessler, W. Cunningham, and R. Jeffries, “Strengthening the case for pair-programming”, IEEE Software 17:4, July/Aug 2000, pp. 19–25.Google Scholar
- 8.Cockburn, and L. Williams, “The costs and benefits of pair programming”, in Extreme Programming Examined, Succi, G., Marchesi, M. eds., pp. 223–248, Boston, MA: Addison Wesley, 2001Google Scholar
- 9.S. P. Foley, “The Boundless Team: Virtual Teaming”, http://esecuritylib.virtualave.net/virtualteams.pdf, Report for MST 660, Seminar in Industrial and Engineering Systems, Master of Science in Technology (MST) Graduate Program, Northern Kentucky University, July 24, 2000.
- 10.T. Schummer and J. Schummer, “Support for Distributed Teams in Extreme Programming”, in Extreme Programming Examined, Succi, G., Marchesi, M. eds., p. 355–377, Boston, MA: Addison Wesley, 2001Google Scholar
- 11.M.Z. Last, “Virtual Teams in Computing Education”, SIGCSE 1999: The Thirtieth SIGCSE Technical Symposium on Computer Science Education, LA, New Orleans, 1999, Doctoral consortium. See page v. of the proceedings.Google Scholar
- 12.D. Gould, “Leading Virtual Teams”, Leader Values, http://www.leader-values.com/Guests/Gould.htm. July 9, 2000.
- 13.P. Dourish, V. Bellotti. “Awareness and Coordination in Shared Workspaces”, CSCW’ 92, Conference Proceedings on Computer-Supported Cooperative Work, 1992.Google Scholar