Professional Documents
Culture Documents
Initial Results
Norsaremah Salleh
Department of Computer Science
University of Auckland
nsal017@ec.auckland.ac.nz
General Terms: Management, Human Factors In this paper, we describe the technique that we have adopted in
conducting the literature review of pair programming research
in an academic setting. We have employed the systematic
Keywords: pair programming, systematic review, review approach to systematically and comprehensively assess
empirical studies the relevant literature or studies in pair programming following
the guidelines in [18]. The result of this review can be used to
understand the current “state of the art” of research in pair
1. INTRODUCTION programming when applied to an educational context.
The term “pair programming” was first used in 1999 as one of
the core practices in the Extreme Programming (XP) software The remaining of this paper is organized as follows: Section 2
development methodology in industry. As defined by Williams describes the background of pair programming followed by an
et al. [37] pair programming refers to a practice in which two explanation of the systematic review’s approach in Section 3.
programmers sitting side by side using only one computer to Section 4 reports our initial results and finally we conclude and
work collaboratively on the design, algorithm, code or test. One suggest our future work in Section 5.
of them is the “driver”, who is responsible for typing the code
and has control over the resources such as computer, mouse and 2. BACKGROUND ON PAIR
keyboard, whereas the partner known as “navigator” or PROGRAMMING
“observer” has the responsibility of observing how the driver The success stories of pair programming in the industry have
works. In every single task, the navigator is expected to detect been reported by Haungs [12], where the practice has been
errors made by the driver and offer ideas in solving the successfully implemented in the C3 projects payroll
problem. computations for hundred of thousands of employees. As a
result of its successful implementation, pair programming was
The practice of pair programming has been widely implemented reported to efficiently increase the improvement of
in the industry as well as in educational settings (Domino et al programming productivity and also increase the knowledge
[8], Chong et al. [6]. A vast amount of research on pair transfer among software developers.
programming has been conducted to observe the benefits of the
A study by Nosek [29], which involved 15 programmers,
This paper was published in the proceedings of the New Zealand showed that all groups (paired teams) outperformed individual
Computer Science Research Student Conference 2008. Copyright is held programmers. In his study, pair programmers produced a more
by the author/owner(s).
readable and functional code compared to solo programmers.
They also found that pair programmers enjoyed more the
collaborative problem solving and were more confident in their
solutions. The benefits of pair programming in industry
NZCSRSC 2008, April 2008, Christchurch, New Zealand. motivated many academics and researchers to apply the
152 N. Salleh
technique in higher educational institutions particularly in the using extensive and comprehensive strategies based on several
field of Software Engineering (SE) and Computer Science (CS). defined stages (see Figure 1). Our systematic review followed
the steps outline below, some of which with iteration:
Anecdotal and empirical evidence shows that the pair
programming technique has brought significant contributions to • Identification of the need of the review and develop
the performance of learning introductory programming courses the review protocol
in CS curriculum [7]. In 1999, Williams et al. [36] conducted a • Formulation of the research questions
study among senior Software Engineering students to validate • Identification of relevant literature by conducting a
the effectiveness of pair programming. In terms of the time comprehensive and exhaustive search
spent on programming, initially the pair programmers took 60 • Selection of primary studies based on
more hours to complete the assignment, but it reduced by 15% inclusive/exclusive criteria
after the adjustment period (ie. “pair jelling”). They found that, • Data extraction together with the quality assessment
compared to solo students, paired students completed their • Synthesis of evidence
assignments 40% to 50% faster. In terms of students’ • Interpretation of results and report writing
satisfaction, many studies reported that the majority of students
enjoyed the experience of using pair programming and showed
positive attitudes towards the practice [36, 9, 23, 34, 25, 26]. Start
grades) and the time spent on the project. However, the findings
in McDowell et al. [22], showed that the performance of paired
Systematic Review
students was significantly higher than the solo students both in Report
the final exams and course grades. Canfora et al. [3] also
reported a decrease in time spent on programming for pair
programmers instead of solo programmers, thus refuting the End
claim made by Freeman.
Figure 1: Stages in Systematic Review Process
Considering the importance of assessing the pair programming
research, we performed the systematic review in order to
comprehensively review all related studies. Our major focus is The development of a review protocol is important as a
to review all empirical studies within the domain of CS/SE framework for the systematic review. It describes the strategies
teaching and learning for the purpose of gaining understanding to be executed when the real conduct of review is carried out.
on the social aspects of pair programming such as gender Most importantly, the protocol defines the research questions to
issues, personality type and compatibility and other relevant be answered towards the end of the review, describes how the
factors. literature will be searched and stored and the methods to
synthesize the evidence in order to answer the research
questions [18].
3. SYSTEMATIC REVIEW METHOD
3.2 Research Questions
3.1 Introduction Within the perspective of our systematic review, our focus is to
understand the factors that influence the effectiveness of pair
A systematic review refers to a process of identifying, assessing
programming practice within an educational setting, particularly
and interpreting all available research evidence with the
in relation to the behavioral aspects. As suggested by Petticrew
purpose to provide answers of a particular research question
& Robert [30], the formulation of research questions which aim
[18]. It provides means or ways to conduct a literature review
to answer a research question about effectiveness, should
A Systematic Review of Pair Programming Research - Initial Results 153
comprise of 5 elements known as PICOC: Population, assessment) AND (Effectiveness OR efficient OR successful)
intervention, comparison, outcomes and context. AND (Quality OR excellence)
The identification of primary sources from online databases,
The population comprises specific target groups of people that journals, conferences and grey literature is important to ensure
the study will cover. In our systematic review, our population of the wide coverage of potential sources. The searching of
interest consists of both undergraduate and graduate Computer literature covered the study published within the period of ten
Science and Software Engineering students in higher years between 1997 and 2007.
educational institutions. Thus, we excluded those studies
focusing on industrial contexts. Table 1 shows the PICOC The initial phase of our search process involved the use of the
structure of our questions. following online databases to search for candidate primary
sources:
Table 1: Summary of PICOC
• ACM Digital library
Population CS/SE students
• Current Contents
Intervention & Pair programming, compatibility factor • EBSCOhost
Comparison (intervention) • IEEExplore
Solo programming (comparison) • ISI Web of Science
Outcomes Measurement metrics of pair programming • INSPEC
effectiveness and measurement metrics of • ISI Proceedings
quality • ProQuest
Study Design Review(s) of all empirical studies • Sage Full Text Collections
• ScienceDirect
Context Within the domain of CS/SE education • SpringerLink
• Scopus.
Our systematic review intends to answer the following research
questions: In our preliminary search, we retrieved a very small number of
articles when using the complete search string defined in the
Question 1: What evidence is there about compatibility factors protocol. For instance, when we used IEEEXplore, Inspec, and
that affect the effectiveness of pair programming? ProQuest, each retrieved only one article. On the other hand, we
retrieved in total 320 relevant articles of pair programming
Question 2: What are the metrics that have been used to when the search string was more general. In particular, we ran
measure the effectiveness of pair programming? the search using the keyword “pair programming” OR “pair-
programming” and our systematic review relied on the results
Question 3: How is quality measured in the studies that used of these general search strings. In relation to this, we also
quality as a measure of effectiveness? sought the opinion from our subject librarian regarding the
appropriate use of the search string and we received the advice
Question 4: Which pairing configurations are considered as that more results would appear if the strings defined were a bit
most effective looking at the compatibility factors obtained looser rather than strictly adhered to search term defined in the
from Question 1? protocol. Our experience supports the suggestion made by
Kitchenham et al. [18], which states that “the simpler search
string might have been just as effective”.
3.3 Identifying Relevant Literature The results of our search are stored using the EndNote software.
The first task in identifying the literature is to develop the After screening the titles and abstracts, and excluding all
search strings that will be used to search for the relevant irrelevant and duplicate studies, finally we selected 66 studies
articles. The strategy we used to construct the search terms is as to be included in the review. We discuss our selection criteria of
follows: the studies in the following section.
a) Derive major terms used in the review questions (i.e. 3.4 Selection of Primary Studies
based on the population, intervention, comparison, As inclusion criteria, we only considered empirical studies of
outcome and context) pair programming that involved students as the population of
b) List down keywords mentioned in the articles. interest. Therefore, other types of studies that involve scientific
c) Search for the synonyms or alternative words. We have or engineering methods, such as simulation studies or
also consulted our subject librarian to seek further advice generations of economics and mathematics models were
in the proper use of the terms. excluded. We excluded the following studies from our
d) Use the Boolean OR to incorporate alternative spellings selection:
and synonyms
e) Use the Boolean AND to link the major terms from • Papers presenting the opinion of the
population, intervention and outcome. researcher(s) without evidence to support the
claim.
The complete search string we initially used for the searching of • Papers about Agile/XP describing development
online literature is as follows: practices other than pair programming such as
test-first programming, refactoring etc.
(student* OR undergraduate) AND (pair programming OR • Papers that described tools (software or
pair-programming) AND (compatibility OR Personality type hardware) to support the pair programming
OR Ethnic OR Self-esteem OR Confidence OR Gender OR practice.
skill*) AND (Experiment* OR Measurement OR evaluation OR • Papers not written in English.
154 N. Salleh
1
The list of studies can be found at
http://www.cs.auckland.ac.nz/~emilia/esem08/
A Systematic Review of Pair Programming Research - Initial Results 155
UG – Undergraduate student
G – Graduate student
SE – Software Engineering
OO – Object Oriented Programming
CS1 – Introduction to Programming
initial results from the systematic review also suggest that there
Based on the review, we could see that personality type was the is a lack of research concerning the social factors such as
most common factor investigated. However, only [15] and [32] gender and ethnicity in understanding their influence on the pair
showed that there is a significant difference between pairs of programming practice. Our future work involves performing the
mixed developer personalities and temperaments, and pairs of analysis of Question 2 until Question 4 investigating issues on
the same personalities and temperaments. Their results showed measuring pair programming effectiveness and its associated
that the former communicate and collaborate better than the quality measurement. The results would help researchers in
latter. There were no significant findings in the other studies in identifying gaps in the current pair programming research in
terms of influence of personality type on pair compatibility. improving the implementation of the practice in higher
Our systematic review also discovered that students should be education institutions.
paired with a partner of a similar or higher perceived skill in
order to achieve greater pair performance. The experiments 7. ACKNOWLEDGMENTS
demonstrated that pairs work well when both students have The author would like to thank the University of Auckland for
similar ability and motivation to succeed in the course providing the funding to present this work at NZCSRSC08. We
[15,16,40]. In terms of gender issues, we found only one study would also like to thank Emilia Mendes for her valuable
[16] that investigated gender compatibility as one of the factors comments and editing of this paper, and finally the ELSAC for
likely to determine effective pairing organization. Other gender proofreading the paper.
related studies [2,14,23] were more concerned with assessing
the usefulness of pair programming in increasing participation 8. REFERENCES
and retention of female students in CS/SE courses. Similarly, [1] K. Beck, Extreme Programming Explained: Embrace
[16] is the only study that investigated ethnicity by classifying Change, Reading, PA: Addison-Wesley, 1999
students as either belonging to majority or minority group. [2] S. B. Berenson, K. M. Slaten, L. Williams, C. Ho,
Their results showed that minority students were in favor of Voices of women in a software engineering course:
pairing. However, they did not investigate the effects on pairing Reflections on collaboration, ACM Journal of
compatibility when students within the same ethnicity were Educational Resources in Computing, 4(1), 2004, pages
paired. 1-18.
From the synthesis of evidence in answering the first research [3] G. Canfora, A. Cimitile, C. A. Visaggio, Empirical
question, we foresee that further research related to achieving study on the productivity of the pair programming,
pair compatibility particularly related to gender differences and Extreme Programming and Agile Processes in Software
ethnicities is important to investigate success in pair Engineering (6th International Conference, XP 2005),
programming practice. Investigating the personality types is Proceedings (Lecture Notes in Computer Science),
also essential in order to confirm the earlier research findings. Springer-Verlag, Vol. 3556, pages 92-95, 2005.
6. CONCLUSIONS AND FUTURE WORK [4] J. Chao, and G. Atli, Critical Personality Traits in
This paper presented the initial results of a systematic review of Successful Pair Programming. AGILE’06, IEEE
pair programming empirical studies aimed at investigating the Computer Society, 2006.
factors affecting the pair compatibility and how the
[5] E.A. Chaparro, A. Yuksel, P. Romero, and S. Bryant,
effectiveness in pair programming were measured. From the 66
Factors affecting the perceived effectiveness of pair
studies included in the review, only 10 studies were found
programming in higher education, Proceedings 17th
relevant to answer the first research question.
Workshop of the Psychology of Programming Interest
In our initial findings, there were only three studies Group, June 2005, pages 5 – 18, 2005.
investigating the compatibility issues of pair programmers
[6] J. Chong, T. Hurlbutt, The social dynamics of pair
[15,16,40]. However, the findings of those studies were
programming, ICSE 2007 29th International Conference
somewhat inconclusive. Overall, 12 compatibility factors
on Software Engineering, IEEE Computer Society,
investigated were personality type, skill level, self-esteem,
2007.
gender, ethnicity, learning style, work ethic, time management
ability, “feel good” factor, confidence level, type of role and the [7] D.C. Cliburn, Experiences with pair programming at a
type of tasks. Even though personality type was investigated in small college, Journal of Computing Sciences in
many studies, only two studies [15,32] yielded positive results Colleges, October 2003, 19(1), 2003.
suggesting different or mixed personality types will lead to pair
compatibility, while the remaining studies did not produce any [8] Domino, M. A., R. Webb Collins & Hevner, A.R.
significant results. (2007). Controlled experimentation on adaptations of
pair programming. Springer.
Our major finding from the review shows that pairing students
of similar or higher perceived skills will lead to pair [9] S. F. Freeman, Jaeger B. K., J.C. Brougham, Pair
compatibility, thus achieving greater pair performance. The programming: More learning and less anxiety in a first
programming course, ASEE Annual Conference
A Systematic Review of Pair Programming Research - Initial Results 157
[36] L. Williams, and R.R Kessler, The effects of “pair- [39] L. Williams, C. McDowell, N. Nagappan, J. Fernald,
pressure” and “pair-learning” on software engineering and J. Werner, Building pair programming knowledge
education, Proceedings 13th Conference on Software through a family of experiments, Proceedings
Engineering Education & Training, 6 – 8th March 2000, International Symposium Empirical Software
pages 59 – 65, 2000. Engineering, 30 Sept. – 1 Oct. 2003, pages 143 – 152,
2003.
[37] L. Williams, R.R. Kessler, W. Cunningham, and R.
Jeffries, Strengthening the case for pair programming, [40] L. Williams, L. Layman, J. Osborne, and N. Katira,
IEEE Software, 17(4), July – Aug. 2000, pages 19 – 25, Examining the compatibility of Student Pair
2000. Programmers, the Agile 2006 International Conference,
2006.
[38] L. Williams, K. Yang, E. Wiebe, M. Ferzli, C. Miller,
Pair Programming in an Introductory Computer Science [41] C. Wohlin, P. Runeson, M. Host, M.C. Ohlsson, B.
Course: Initial Results and Recommendations, Regnell, and A. Wesslen, Experimentation in Software
Proceedings of OOPSLA, 4th Nov. – 8th Nov. 2002. Engineering: An Introduction, Boston: Kluwer
Academic Publisher, 2000.