It's been nearly 15 years since I published the first research article on the qualitative benefits of pair programming [2]. Since then, Williams et al. [4] and others have quantified these benefits, and an entire agile software development methodologyExtreme Programming [1]has emerged, in which pair programming is a core practice. This methodology is now commonly used within software development firms.
However, economic pressures are forcing firms to employ more globally distributed software teams, where the programmers are likely to be total strangers dispersed across the world, connected only via the Internet or other high-speed networks. Can such distributed teams still obtain the benefits of programming in pairs?
To answer this question one must realize that the benefits of pair programming derive from properties that emerge when two people work side-by-side, in close proximity. I originally listed seven properties, the most commonly cited of which is that pairs "search through a larger space of alternatives." This property leads to the benefit of pairs producing more optimal solutions compared to when individuals work alone.
There are six additional properties that mutually reinforce one another, and that facilitate properties like searching through a larger space of alternatives. They are: efficient communication; the ongoing sharing of goals and plans; joint production of ambiguous plan segments; reuse of system knowledge; shared memory for old plans; and the ability to dynamically incorporate new divisions of labor and collaborative interaction systems.
For remote pair programming to have the same benefits as close-proximity pair programming, remote pairs must exhibit these properties.
Such propertiesand others yet to be discoveredare enabled by an information infrastructure that we largely take for granted when people work in close proximity. Figure 1 depicts this infrastructure.
The information infrastructure consists of not only visual and manual channels between a programmer and his or her computer butmore importantlyalways available, easy-to-access cross-workspace visual, manual, and audio channels. These cross-workspace channels allow pairs to collaborate and provide subtle, yet significant catalysts for ongoing knowledge sharing and helping activities.
For example, an overheard mumble, or a headshake seen in peripheral vision, can be the catalyst for the pairs updating one another or for joint problem-solving activities, which lead to observed properties like exploring larger spaces of alternatives.
Such collaborative activities take place frequently when pairs work in close proximity, precisely because these cross-workspace channels are always available and easy to access. For instance, by merely turning one's head and speaking, a programmer can access and influence the other programmer's workspace. This ability to easily push and pull information across workspaces allows the pairs to maintain four kinds of important knowledge: task, system structure, modifications, and system behavior, and to exhibit the seven properties listed here [2].
For a remote programming pair to exhibit the same properties as a close-proximity pairand thus benefit from pair programmingit is necessary to design remote collaboration tools that provide a cross-workspace information infrastructure that is isomorphic to the one that exists when programmers work in close proximity.
Remote programming pairs have the potential for cross-workspace audio, visual, and manual channels available via their computers (see Figure 2). The challenge is to both encode the proper cross-workspace information as well as to give the remote pairs the same level of availability and ease of access to this cross-workspace information as pairs working in close proximity.
1. Beck, K. and Andres, C. Extreme Programming Explained. Addison-Wesley, 2004.
2. Flor, N. Side-by-side collaboration. International Journal of Human-Computer Studies 49 (1998), 201222.
3. Flor, N. and Hutchins, E. Analyzing distributed cognition in software teams. Empirical Studies of Programmers: Fourth Workshop. J. Koenemann-Belliveau, T. Moher, and S. Robertson, Eds. Ablex, Norwood, NJ, 1991
4. Williams, L., Kessler, R., Cunningham, W., and Jeffries, R. Strengthening the case for pair programming. IEEE Software 17 (2000), 1925.
Figure 1. Visual-audio-manual information channels when programmers work in close proximity
Figure 2. Pairs working remotely. The proper cross-workspace visual, audio, and manual information must be encoded.
©2006 ACM 0001-0782/06/1000 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2006 ACM, Inc.
No entries found