Distributed Pair Programming: A Systematic Literature Review

ContextGeographically 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. ObjectiveIn this paper we sought to identify and synthesize papers that describe and analyze DPP both from teaching and practice perspectives. MethodWe conducted a Systematic Literature Review to search for empirical evidence in eight digital libraries. ResultsMost 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. ConclusionWe 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.

[1]  Han Lai,et al.  An experimental research of the pair programming in java programming course , 2011, Proceeding of the International Conference on e-Education, Entertainment and e-Management.

[2]  Pearl Brereton,et al.  Pair programming as a teaching tool: a student review of empirical studies , 2009, 2009 22nd Conference on Software Engineering Education and Training.

[3]  Jan Chong,et al.  The Social Dynamics of Pair Programming , 2007, 29th International Conference on Software Engineering (ICSE'07).

[4]  Dag I. K. Sjøberg,et al.  Effects of Personality on Pair Programming , 2010, IEEE Transactions on Software Engineering.

[5]  Xiaoyong Zhang,et al.  A Framework of Distributed Pair Programming System , 2009, 2009 International Conference on Computational Intelligence and Software Engineering.

[6]  J. Herbsleb,et al.  Global software development , 2001 .

[7]  Matthias M. Müller,et al.  Do programmer pairs make different mistakes than solo programmers? , 2006, J. Syst. Softw..

[8]  Mariana V. Bravo,et al.  Coding Dojo: An Environment for Learning and Sharing Agile Practices , 2008, Agile 2008 Conference.

[9]  Tim Wahls,et al.  The Case for Pair Programming in the Computer Science Classroom , 2011, TOCE.

[10]  Aniello Cimitile,et al.  Lessons learned about distributed pair programming: what are the knowledge needs to address? , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[11]  Gail E. Kaiser,et al.  A distance learning approach to teaching eXtreme programming , 2008, SIGCSE 2008.

[12]  Sabrina Marczak,et al.  Problems? We All Know We Have Them. Do We Have Solutions Too? A Literature Review on Problems and Their Solutions in Global Software Development , 2012, 2012 IEEE Seventh International Conference on Global Software Engineering.

[13]  Nick Z. Zacharis Evaluating the Effects of Virtual Pair Programming on Students' Achievement and Satisfaction , 2009, iJET.

[14]  P. David Stotts,et al.  Next-generation DPP with Sangam and Facetop , 2006, eclipse '06.

[15]  Kristy Elizabeth Boyer,et al.  A development environment for distributed synchronous collaborative programming , 2008, SIGCSE 2008.

[16]  Ita Richardson,et al.  Culture in Global Software Development - A Weakness or Strength? , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[17]  Wei He,et al.  A conversation model of collaborative pair programming based on language/action theory , 2010, The 2010 14th International Conference on Computer Supported Cooperative Work in Design.

[18]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[19]  Brian Hanks,et al.  Successful and unsuccessful problem solving approaches of novice programmers , 2009, SIGCSE '09.

[20]  Alberto Sillitti,et al.  Analysing the Usage of Tools in Pair Programming Sessions , 2011, XP.

[21]  Tore Dybå,et al.  The effectiveness of pair programming: A meta-analysis , 2009, Inf. Softw. Technol..

[22]  Emilia Mendes,et al.  Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review , 2011, IEEE Transactions on Software Engineering.

[23]  Eric N. Wiebe,et al.  Pair Programming in Introductory Programming Labs , 2003 .

[24]  Gautam Shroff,et al.  Distributed side-by-side programming , 2009, 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering.

[25]  Christopher Oezbek,et al.  Saros: an eclipse plug-in for distributed party programming , 2010, CHASE '10.

[26]  Nuraminah Ramli,et al.  The effects of pair programming in programming language subject , 2008, 2008 International Symposium on Information Technology.

[27]  Rafael Prikladnicki,et al.  Global software development in practice lessons learned , 2003, Softw. Process. Improv. Pract..

[28]  Mika Mäntylä,et al.  Issues and Tactics when Adopting Pair Programming: A Longitudinal Case Study , 2007, International Conference on Software Engineering Advances (ICSEA 2007).

[29]  Alberto L. Morán,et al.  Distributed pair programming on the Web , 2003, Proceedings of the Fourth Mexican International Conference on Computer Science, 2003. ENC 2003..

[30]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[31]  Brian Hanks,et al.  Empirical evaluation of distributed pair programming , 2008, Int. J. Hum. Comput. Stud..

[32]  Rafael Prikladnicki,et al.  MuNDDoS - Um Modelo de Referência para Desenvolvimento Distribuído de Software , 2004, SBES.

[33]  Crescencio Bravo,et al.  Analyzing Work Productivity and Program Quality in Collaborative Programming , 2008, 2008 The Third International Conference on Software Engineering Advances.

[34]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[35]  Jo Erskine Hannay,et al.  Personality and the nature of collaboration in pair programming , 2009, ESEM 2009.

[36]  Roel Wieringa,et al.  Requirements engineering paper classification and evaluation criteria: a proposal and a discussion , 2005, Requirements Engineering.

[37]  Andrew Begel,et al.  Pair programming: what's in it for me? , 2008, ESEM '08.

[38]  Laurie A. Williams,et al.  On preparing students for distributed software development with a synchronous, collaborative development platform , 2009, SIGCSE '09.

[39]  Jeffrey C. Carver,et al.  Increased Retention of Early Computer Science and Software Engineering Students Using Pair Programming , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[40]  Till Schümmer,et al.  Understanding Tools and Practices for Distributed Pair Programming , 2009, J. Univers. Comput. Sci..

[41]  Emilia Mendes,et al.  Investigating pair-programming in a 2nd-year software development and design computer science course , 2005, ITiCSE '05.

[42]  Laurie A. Williams,et al.  Improving the CS1 experience with pair programming , 2003, SIGCSE.

[43]  Alan Clinton Shaw,et al.  Extending the Pair Programming Pedagogy to Support Remote Collaborations in CS Education , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

[44]  Fadi P. Deek,et al.  Exploring the underlying aspects of pair programming: The impact of personality , 2008, Inf. Softw. Technol..

[45]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[46]  Wanfeng Dou,et al.  A Preliminary Design of Distributed Pair Programming System , 2010, 2010 Second International Workshop on Education Technology and Computer Science.

[47]  Aniello Cimitile,et al.  How Distribution Affects the Success of Pair Programming , 2006, Int. J. Softw. Eng. Knowl. Eng..

[48]  Doris Schmedding,et al.  Pair programming in software development teams - An empirical study of its benefits , 2008, Inf. Softw. Technol..

[49]  Laurie A. Williams Lessons learned from seven years of pair programming at North Carolina State University , 2007, SGCS.

[50]  Jesús Gallardo,et al.  A groupware system to support collaborative programming: Design and experiences , 2013, J. Syst. Softw..

[51]  Brian Hanks Problems encountered by novice pair programmers , 2008, JERC.

[52]  David C. Webb,et al.  Collective Programming: Making End-User Programming (More) Social , 2011, IS-EUD.

[53]  Tim Wahls,et al.  The effects of pair-programming on individual programming skill , 2008, SIGCSE '08.

[54]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[55]  P. David Stotts,et al.  Virtual Teaming: Experiments and Experiences with Distributed Pair Programming , 2003, XP/Agile Universe.

[56]  Laurie A. Williams,et al.  Building pair programming knowledge through a family of experiments , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[57]  Norsaremah Salleh,et al.  An empirical study of the effects of personality in pair programming using the five-factor model , 2009, ESEM 2009.

[58]  Sufian Idris,et al.  Improving Learning of Programming Through E-Learning by Using Asynchronous Virtual Pair Programming , 2006 .

[59]  P. David Stotts,et al.  Support for Distributed Pair Programming in the Transparent Video Facetop , 2004, XP/Agile Universe.

[60]  Alex Radermacher,et al.  Investigating student-instructor interactions when using pair programming: An empirical study , 2011, 2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T).

[61]  Zafar Nasir,et al.  Efficacy of distributed pair programming , 2010, 2010 International Conference on Information and Emerging Technologies.

[62]  Mexhid Ferati,et al.  Assessing the effectiveness of distributed pair programming for an online informatics curriculum , 2010, INROADS.

[63]  Wei He,et al.  Compatibility and Requirements Analysis of Distributed Pair Programming , 2010, 2010 Second International Workshop on Education Technology and Computer Science.

[64]  Lucas Layman,et al.  Eleven Guidelines for Implementing Pair Programming in the Classroom , 2008, Agile 2008 Conference.

[65]  Forrest Shull,et al.  Are Two Heads Better than One? On the Effectiveness of Pair Programming , 2007, IEEE Software.

[66]  Raymund Sison,et al.  Investigating the Effect of Pair Programming and Software Size on Software Quality and Programmer Productivity , 2009, 2009 16th Asia-Pacific Software Engineering Conference.

[67]  Charles E. McDowell,et al.  Guidelines for the use of pair programming in a freshman programming class , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[68]  Christopher Oezbek,et al.  Project Kick-off with Distributed Pair Programming , 2010, PPIG.

[69]  Claes Wohlin,et al.  An empirically based terminology and taxonomy for global software engineering , 2014, Empirical Software Engineering.

[70]  M. Giri,et al.  A Study of Pair Programming in the Context of Facilitating the Team Building , 2012, 2012 Second International Conference on Advanced Computing & Communication Technologies.

[71]  W. Chigona,et al.  Pair programming for information systems students new to programming: Students’ experiences and teachers’ challenges , 2008, PICMET '08 - 2008 Portland International Conference on Management of Engineering & Technology.

[72]  Brian Hanks,et al.  Student performance in CS1 with distributed pair programming , 2005, ITiCSE '05.

[73]  Stelios Xinogalos,et al.  Exploring the effects of collaboration scripts embedded in a distributed pair programming system , 2013, ITiCSE '13.

[74]  Nick Z. Zacharis,et al.  Measuring the Effects of Virtual Pair Programming in an Introductory Programming Java Course , 2011, IEEE Transactions on Education.

[75]  P. David Stotts,et al.  Exploring the Efficacy of Distributed Pair Programming , 2002, XP/Agile Universe.

[76]  Laurie A. Williams,et al.  Sangam: a distributed pair programming plug-in for Eclipse , 2004, eclipse '04.

[77]  Grzegorz Dobrowolski,et al.  How to Build Support for Distributed Pair Programming , 2007, XP.

[78]  Matthias M. Müller,et al.  An empirical study about the feelgood factor in pair programming , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..

[79]  Casper Lassenius,et al.  Using Scrum in Distributed Agile Development: A Multiple Case Study , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[80]  Pekka Abrahamsson,et al.  A multiple case study on the impact of pair programming on product quality , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[81]  Brian F. Hanks,et al.  Distributed Pair Programming: An Empirical Study , 2004, XP/Agile Universe.

[82]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .