Hypervideo Support for Distributed Extreme Programming

We present a hardware/software system for support of distributed Extreme Programming, or DXP. It consists of a dual video projector setup with NetMeeting running on a single PC, and a hypervideo system we built called OvalTine. OvalTine allows the creation and automatic tracking of hyperlinks in a video stream, both archived and real-time (as in video conferencing). DXP supports the development of software by a pair of programmers that is non-co-located. One projector displays a shared PC desktop, and another projector displays a life-sized image of each collaborator to the other. OvalTine integration means developers can add hyperlinks to the collaborator camera stream, integrating it with Web pages or other video streams. The DXP work environment gives a better sense of being there to the pairs in a pair-programming team. We are experimenting with DXP to measure the productivity of distributed software developers working via different technical processes (paired, individual, full XP, traditional). 1. Pair programming, XP, and distributed collaboration Increasingly, programmers are working in geographically distributed teams. Escalating trends in teleworking, distance education, and globally distributed organizations are making these distributed teams an absolute necessity. These trends are beneficial in many ways, particularly for those in geographically disadvantaged areas. However, it is not believed that any of these arrangements makes a programmer more effective than if all the programmers were, indeed, co-located. Therefore, organizations must strive to maximize the efficiency and effectiveness of these unavoidably distributed programmers and teams. This paper describes the development and study of a technique tailored for distributed programming teams. The technique is based on an emerging software engineering methodology known as pair-programming combined with nearly 20 years of widespread and active research in collaborative software systems. We aim to show that geographically distributed programmers benefit from using technology to collaborate synchronously with other programmers. Our objective is to demonstrate that the geographically distributed programmers who collaborate synchronously with other programmers will outperform geographically distributed programmers who work independently. Professional interest in pair programming has risen dramatically in recent years with the success of an agile software development process called Extreme Programming, or XP [1,2] developed by Beck. XP is distinguished from more traditional development processes by emphasizing (even requiring) • pair programming • test-first code development at the unit level • full regression test support (with JUnit [3,4]) • lack of up-front detailed design • frequent code refactoring [5] • on-site client • expectation of requirements changes. XP practitioners develop requirements conversationally with the client, and deliver frequent working prototypes for feedback and changes. No code is written unless it is needed (no programming for the perhaps future), and when a design grows to the point that it feels unwieldy it is refactored and re-architected before further extension.