Distributed Pair Programming: A Systematic Literature Review

https://doi.org/10.1016/j.infsof.2015.02.011Get rights and content

Abstract

Context

Geographically distributed teams have adopted agile practices as a work strategy. One of these practices is Distributed Pair Programming (DPP). DPP consists in two developers working remotely on the same design, algorithm or code.

Objective

In this paper we sought to identify and synthesize papers that describe and analyze DPP both from teaching and practice perspectives.

Method

We conducted a Systematic Literature Review to search for empirical evidence in eight digital libraries.

Results

Most of the 34 DPP primary studies identified explore DPP from a teaching perspective. We found that DPP requires a specific infrastructure, but the existing studies do not explore the impact of the distribution in the details. There are many tools proposed that support DPP practice, but few of them are evaluated within a software development team.

Conclusion

We need more studies that explore the effects of Pair Programming in the context of Distributed Software Development, such as coordination and communication. Most of the studies do not empirically evaluate DPP in industry. There is also a need to propose guidelines to use DPP in industry and as a teaching strategy.

Introduction

Pair Programming (PP) is one of the primary practices of Extreme Programming (XP) [2]. As the name suggests, it is a practice that involves two programmers at one computer, working collaboratively [19]. In a PP session, a programmer acts as the driver and implements the code controlling the keyboard and mouse. Another programmer acts as the observer or navigator and is responsible for reviewing the code, preventing and identifying logical and syntactical errors in the code at the same time.

A strong collaboration and a good communication are requirements for a successful execution of Pair Programming. In a PP session, both programmers should be in a continuous conversation to discuss possible solutions and code errors [19]. The successful of PP has also a direct relationship with the workplace, due arrangement of the pairs [30]. The feasibility of using the practice of Pair Programming is also related to the complexity of the task [11].

On the other hand, the literature reports several benefits of the practice of Pair Programming: productivity product quality due to the high number of defects found in the ongoing review of the pairs, collaboration and communication within the team and the improvement of confidence and motivation between the programmers [11].

Many studies involving the practice of Pair Programming have been developed, focusing both the practice of PP or PP as a tool for teaching programming. In the context of education, research results showed that PP creates an environment that leads the students to a better learning and social interaction, increasing the grades, confidence and the interest in programming subjects [25]. As for the practice of PP, results reported an improvement in code quality and performance at work, though some critics have also been reported on effort, costs of staff and personality clashes between the programmers [11].

In parallel, in recent years the IT globalization has lead the companies to distribute their software development around the world, emerging the concept of Distributed Software Development (DSD), or Global Software Engineering (GSE) [16]. In this context, Pair Programming also started to be adopted by distributed teams [20], emerging the concept of Distributed Pair Programming (DPP) [1]. In DPP, two programmers collaborate to develop software using tools that allows screen sharing and communication such as audio, text and video.

The goal of this work is to identify and analyze the state of the art of DPP, both from the teaching and practice perspective. To reach this goal we have conducted a systematic review of the literature. This paper is organized as follows: in Section 2 we present the background of the work. In Section 3, we detail the related works, while in Section 4 we present our methodology. In Section 5 we set out the results, while in Section 6 we discuss the findings and future opportunities in this area.

Section snippets

Distributed Pair Programming

The combination of practicing PP with geographically distributed team members has created the Distributed Pair Programming. Some studies have investigates the effects of the DPP. Baheti reported that the benefits of PP are the same DPP, such as productivity and code quality [1]. Another benefit of DPP is that due to its characteristics, it helps to promote the work and communication within distributed teams [1].

However, the focus on aspects such as infrastructure should be redoubled, and this

Related work

Systematic Literature Review (SLR) is part of Evidence-Based Software Engineering and aim to identify, combine and assess the evidence from the primary studies, following an explicit, rigorous and systematic method [18]. We did not find in the literature any SLR covering DPP. However, we did find studies about PP. Table 1 presents a comparative analysis of the SLR presented in this paper and the other three PP systematic studies.

The studies we found were published between 2009 and 2011. In

Methodology

In this study, the SLR followed the guidelines proposed by Kitchenham. Two researchers participated in the review process [18]. A graduate student was the primary reviewer, which was responsible for developing the research protocol, search strategy, selection of studies, quality assessment of studies, extraction and synthesis of data and reporting of results. The other reviewer was responsible for validating the review protocol, monitoring the results of the search and selection processes and

Results

The initial search with the string “Remote Pair Programming” OR “Virtual Pair Programming” OR “Distributed Pair Programming” returned 435 papers, but only 147 were considered potentially relevant based on the reading of the title and abstract. All 147 papers were read in full and after the application of inclusion and exclusion criteria and the removal of duplicates, we selected 34 papers for quality assessment.

Table 3 shows the quality score of 34 papers. Most of the papers (16) were assessed

Discussion and conclusions

Both the quantitative and qualitative analyses present significant results regarding empirical evidence of DPP. This section aims to discuss such results.

Acknowledgments

This research is partially funded by the agreement between ThoughtWorks and PUCRS. We also thank CNPq – Brazil (309000/2012-2).

References (35)

  • T. Dyba et al.

    The effectiveness of pair programming: a meta-analysis

    Inf. Softw. Technol.

    (2009)
  • P. Baheti, E. Gehringer, D. Stotts, Exploring the efficacy of distributed pair programming, in: Extreme Programming and...
  • K. Beck et al.

    Extreme Programming Explained: Embrace Change

    (2004)
  • P. Brereton et al.

    Pair programming as a teaching tool: a student review of empirical studies

    Softw. Eng. Edu. Train.

    (2009)
  • G. Canfora, A. Cimitle, C. Visaggio, Lessons learned about distributed pair programming: what the knowledge needs to...
  • G. Canfora et al.

    How distribution affects the success of pair programming

    Int. J. Softw. Eng. Knowl. Eng.

    (2006)
  • S. Deshpande, I. Richardson, V. Casey, S. Beecham, Culture in global software development – a weakness or strength? in:...[6a]P. Dewan, P. Agarwal, G. Shroff, R. Hegde, Distributed side-by-side programming, in: ICSE Workshop on Cooperative...
  • W. Dou, K. Hong, X. Zhang, A framework of distributed pair programming system, in: International Conference on...
  • W. Dou, W. He, Compatibility and requirements analysis of distributed pair programming, in: Second International...
  • R. Duque, C. Bravo, Analyzing work productivity and program quality in collaborative programming, in: Proceedings of...
  • T. Dyba et al.

    Empirical studies of agile software development: a systematic review

    Inf. Softw. Technol. J.

    (2008)
  • R.L. Edwards et al.

    Assessing the effectiveness of distributed pair programming for an online informatics curriculum

    ACM Inroads

    (2010)
  • B. Hanks, Student performance in CS1 with distributed pair programming, in: SIGCSE Bulletin, 2005, pp....
  • B. Hanks

    Empirical evaluation of distributed pair programming

    Int. J. Hum. Comp. Stud.

    (2007)
  • B. Hanks

    Problems encountered by novice pair programmers

    ACM J. Educ. Resour. Comput.

    (2008)
  • J. Herbsleb et al.

    Global software development

    IEEE Softw., California

    (2001)
  • C. Ho, C. Raha, E. Gehringer, L. Williams, Sangam: a distributed pair programming plug-in for eclipse, in: OOPSLA,...
  • Cited by (0)

    View full text