Distributed-pair programming can work well and is not just distributed pair-programming

Background: Distributed Pair Programming can be performed via screensharing or via a distributed IDE. The latter offers the freedom of concurrent editing (which may be helpful or damaging) and has even more awareness deficits than screen sharing. Objective: Characterize how competent distributed pair programmers may handle this additional freedom and these additional awareness deficits and characterize the impacts on the pair programming process. Method: A revelatory case study, based on direct observation of a single, highly competent distributed pair of industrial software developers during a 3-day collaboration. We use recordings of these sessions and conceptualize the phenomena seen. Results: 1.Skilled pairs may bridge the awareness deficits without visible obstruction of the overall process. 2.Skilled pairs may use the additional editing freedom in a useful limited fashion, resulting in potentially better fluency of the process than local pair programming. Conclusion: When applied skillfully in an appropriate context, distributed-pair programming can (not will!) work at least as well as local pair programming.

[1]  Judith S. Olson,et al.  Distance Matters , 2000, Hum. Comput. Interact..

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

[3]  Laurie Williams,et al.  A Video-enhanced Environment for Distributed Extreme Programming , 2002 .

[4]  Daniel G. Bobrow,et al.  WYSIWIS revised: early experiences with multiuser interfaces , 1987, TOIS.

[5]  Daniela E. Damian,et al.  Essential communication practices for Extreme Programming in a global software development team , 2006, Inf. Softw. Technol..

[6]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

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

[8]  Franz Zieris,et al.  On knowledge transfer skill in pair programming , 2014, ESEM '14.

[9]  Saonee Sarker,et al.  The Role of Communication and Trust in Global Virtual Teams: A Social Network Perspective , 2011, J. Manag. Inf. Syst..

[10]  Pablo Romero,et al.  Pair programming and the mysterious role of the navigator , 2008, Int. J. Hum. Comput. Stud..

[11]  Alistair Cockburn,et al.  Crystal Clear: A Human-Powered Methodology for Small Teams , 2004 .

[12]  Ralph Johnson,et al.  Design patterns: elements of reuseable object-oriented software , 1994 .

[13]  Chengzheng Sun,et al.  Operational transformation in real-time group editors: issues, algorithms, and achievements , 1998, CSCW '98.

[14]  James D. Herbsleb,et al.  Team Knowledge and Coordination in Geographically Distributed Software Development , 2007, J. Manag. Inf. Syst..

[15]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[16]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[17]  Laurie A. Williams,et al.  What agile teams think of agile principles , 2012, Commun. ACM.

[18]  Brian F. Hanks Tool Support for Distributed Pair Programming , 2002 .

[19]  Carl Gutwin,et al.  Workspace Awareness in Real-Time Distributed Groupware: Framework, Widgets, and Evaluation , 1996, BCS HCI.

[20]  James D. Herbsleb,et al.  Familiarity, Complexity, and Team Performance in Geographically Distributed Software Development , 2007, Organ. Sci..

[21]  Lutz Prechelt,et al.  Types of Cooperation Episodes in Side-by-Side Programming , 2009, PPIG.

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

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

[24]  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.

[25]  Jutta Eckstein Agile Software Development with Distributed Teams , 2010 .

[26]  Franz Zieris,et al.  Liberating pair programming research from the oppressive driver/observer regime , 2013, 2013 35th International Conference on Software Engineering (ICSE).

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

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

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

[30]  Kent L. Beck,et al.  Extreme programming explained - embrace change, Second Edition , 2005, The XP series.

[31]  Daniela E. Damian,et al.  Global Software Development and Delay: Does Distance Still Matter? , 2008, 2008 IEEE International Conference on Global Software Engineering.

[32]  A. Strauss,et al.  Basics of qualitative research: Grounded theory procedures and techniques. , 1993 .

[33]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[34]  Laurie A. Williams,et al.  Pair Programming , 2010, Encyclopedia of Software Engineering.