Introducing Programmers to Pair Programming: A Controlled Experiment

Pair programming is a key characteristic of the Extreme Programming (XP) method. Through a controlled experiment we investigate pair programming behaviour of programmers without prior experience in XP. The factors investigated are: (a) characteristics of pair programming that are less favored (b) perceptions of team effectiveness and how they relate to product quality, and (c) whether it is better to train a pair by giving routine tasks first or by giving complex tasks first. Our results show that: (a) the least liked aspects of pair programming were having to share the screen, keyboard and mouse, and having to switch between the roles of driver and navigator (b) programmers solved complex problems more effectively in pairs compared to routine problems, however, perceptions of team effectiveness was higher when solving routine problems than when solving complex problems and (c) programmers who started pair programming with routine tasks and moved on to complex tasks were more effective than those who started with complex ones and moved on to routine ones. We discuss how these results will assist the industry in inducting programmers without prior pair-programming experience into XP process environments.

[1]  Tore Dybå,et al.  Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise , 2007, IEEE Transactions on Software Engineering.

[2]  Tore Dybå,et al.  An initial framework for research on pair programming , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

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

[4]  S. Xu,et al.  Pair Programming in Graduate Software Engineering Course Projects , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[5]  Jari Vanhanen,et al.  Experiences of Using Pair Programming in an Agile Project , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[6]  Keith C. C. Chan,et al.  Pair programming productivity: Novice-novice vs. expert-expert , 2006, Int. J. Hum. Comput. Stud..

[7]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[8]  Lech Madeyski On the Effects of Pair Programming on Thoroughness and Fault-Finding Effectiveness of Unit Tests , 2007, PROFES.

[9]  Stuart Anderson,et al.  Requirements Evolution from Process to Product Oriented Management , 2001, PROFES.

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

[11]  Alberto Sillitti,et al.  Investigating the Usefulness of Pair-Programming in a Mature Agile Team , 2008, XP.

[12]  Raymund Sison,et al.  Investigating Pair Programming in a Software Engineering Course in an Asian Setting , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[13]  H. J. Arnold Introduction to the Practice of Statistics , 1990 .

[14]  H. Hulkko,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..

[15]  Alberto Sillitti,et al.  An interpretation of the results of the analysis of pair programming during novices integration in a team , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[16]  Pekka Abrahamsson,et al.  Perceived Effects of Pair Programming in an Industrial Context , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[17]  M. K. Raja,et al.  Quality function deployment usage in software development , 1996, CACM.

[18]  Jacob Cohen Statistical Power Analysis for the Behavioral Sciences , 1969, The SAGE Encyclopedia of Research Design.

[19]  Mark A. Toleman,et al.  A Framework for Understanding the Factors Influencing Pair Programming Success , 2005, XP.

[20]  Casper Lassenius,et al.  Effects of pair programming at the development team level: an experiment , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[21]  T. Perneger What's wrong with Bonferroni adjustments , 1998, BMJ.

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

[23]  Michele Marchesi,et al.  Extreme Programming and Agile Processes in Software Engineering , 2003, Lecture Notes in Computer Science.