Evaluating Tools That Support Pair Programming in a Distributed Engineering Environment

The construction and improvement of high-quality products in a global software development environment requires (a) flexible practices for collaboration and (b) tools that support these practices in a distributed software development team. Pair Programming (PP), a well-known agile practice has been reported to improve software productivity and software quality in co-located environments. However, in a distributed environment PP needs stronger tool support to address new challenges like communication, distributed collaboration , and data exchange. This paper introduces a systematic tool evaluation approach for distributed pair programming (DPP) and reports on an initial tool survey of open source tools. Major findings were that (a) DPP was not fully supported by any tool under investigation and (b) some tools are limited to selective and individual aspects of DPP requirements. The results of this tool evaluation can help project managers in selecting adequate tools and tool developers in providing high-value features for better support of DPP as basis for improving the quality of distributed engineering projects.

-2 developers (a pair) elaborate on a software artifact concurrently sharing a common working (co-located) environment (screen, keyboard, and mouse).
-Clearly defined roles and change of role assignments: Driver (implementation) and Observer / Navigator (e.g., continuous reviews, provides ) Benefits of pair programming (derived from various empirical studies): -Increased quality, effectiveness, and productivity.
-Improved team communication.
Is Pair Programming applicable in a distributed environment?

Distributed Pair Programming
Applying traditional pair programming requires a shared work space in a co-located environment.
Basic idea of Distributed Pair Programming (DPP): -Pair programming and a shared workspace over distances.
-Gaining benefits of traditional pair programming.
-Efficient data exchange approaches.
-Floor control (ability to change of roles and trace changes) -Tools that support collaboration and continuous interaction within a common working environment to bridge geographical and temporal distances.
Challenge: Identification of a best-practice tool for DPP support.

Process for Tool Selection
Four basic steps for tool selection [Poston, 1992]: 1. Analysis and classification of user requirements and expected tool properties.
2. Elicitation and prioritization of selection criteria.
3. Classification of candidate tools.
4. Assessment of tools according to a pre-defined evaluation scheme. [Poston, 1992] Step Brainstorming of related stakeholders to capture and complete individual (tool) requirements.
Samples of important basic requirements categories for DPP supporting tools: -Workspace control and awareness. Visibility of participants within the working environment; defined mouse and keyboard control.
-Screen Sharing support.
-Floor control. Transparent and traceable changes within an artifact by roles.
-Gesturing. Ability to point to specific aspects of interest (e.g., defects) by using a second pointer device.
-Efficient information exchange to support communication and collaboration, e.g., textual and/or voice chat, video conferencing.

Classification and Prioritization
Elicitation, classification and prioritization of collected requirements Requirements Elicitation workshop (EasyWinWin) according to Boehm et al, 2001.
Snapshot of collected requirements.
Critical: basic functions for DPP. High importance: Pre-conditions for efficient PP application. Medium importance: Requirements and attributes that can increase tool application. Low importance: Nice-to-have features.

Requirements prioritization
Step

Snapshot of Candidate Tools
Sample snapshot of candidate tools depending on the availability of tools.

Evaluation Framework
Evaluation framework for systematically assessing candidate tools with respect to classified requirements. 4a. Identification of success-critical evaluation scenarios.
4c. Evaluation and assessment of tools based on captured scenarios. Step 4a: Tool Assessment: Identification of Success-Critical Scenarios Scenarios: Typical workflows and tasks based on user requirements.
Guidelines for real-world tasks Scenario brainstorming workshop for DPP application Selection of 6 basic scenarios: General scenarios (applicable to various types of tools): -Tool installation and configuration.
DPP specific scenarios -Initialization of a DPP session -Support of role assignment changes (Floor control).
-Sample application for executing a small implementation task.
Tool evaluation is based on scenario application and a subjective assessment of the Pair Programming Pair (Team result after discussion).

Evaluation Framework Definition
Classified requirements and priorities (y-axis) Candidate tools for planned evaluation (x-axis) Tool evaluation matrix: -Estimation of the degree of requirements coverage by the tool: • Likert-scale: 0.. not supported / 5 ... fully supported. • 0/1 estimation if applicable, e.g., support of an individual platform (yes/no). -Weighting of the subjective assessment (acc. to requirement prioritization)