Distributed Pair Programming: A Systematic Literature Review
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)
- 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...
- et al.
Extreme Programming Explained: Embrace Change
(2004) - 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...
- 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...