Pair Programming and Software Defects--A Large, Industrial Case Study

Author(s): Enrico di Bella, Ilenia Fronza, Nattakarn Phaphoom, Alberto Sillitti, Giancarlo Succi, Jelena Vlasenko
Venue: IEEE Transactions on Software Engineering
Date: 2013

Type of Experiement: Case Study
Class/Experience Level: Professional
Participant Selection: Employees at the selected company
Data Collection Method: Observation

Quality
4

Paired Programming is a technique where programmers work in pairs to design, develop, or test code. There have been many studies to determine whether the technique has a positive effect on the produced artifacts. Some of the studies have found benefits, including reducing defect rate, improving design/structure of code, increasing productivity, enhancing knowledge transfer, increasing job satisfaction, and facilitating integration of new employees. However, there are also studies that do not get these same results, and a majority of the studies found are in an educational environment. In order to truly evaluate PP’s effectiveness in the work environment, the researchers determined that it would be necessary to focus on professionals instead of students.

Before conducting their own study, the writer evaluated a large sample of existing research on Paired Programming to see if there were any significant conclusions that could be made. They found that each study’s conclusions were extremely variable and depended greatly on variables such as subjects, context, and performed tasks. Because there was so much variability in the results of the studies, the writer prepares and conducts a study to observe the effectiveness of professional pair programmers in performing maintenance tasks in a large industrial software project. The study focuses on defect correction and new requirements implementation.

The study was conducted on a development team at an Italian manufacturing company over the course of 14 months. The development team was observed during this time period to gather data about their defect discovery and new implementations. The cases under consideration were: 1) Paired Programming on defects throughout the entire study. 2) Time at which defects were discovered. 3) Duration in which defect was fixed. 4) Time at which a change was made in the development of a new user story. 5) Duration in which a user story was being implemented. During the study, researchers found that new defects appeared less when Paired Programming was being practiced. Additionally, a small effect was found on defect reduction in each context. However, researchers could not confirm significance of the data in non-parametric tests. Overall, this study found perceivable benefits to PP in industry and thoroughly evaluated past studies in their planning of the study to ensure more realistic research.

0