Evaluating performances of pair designing in industry

Pair programming has attracted an increasing interest from practitioners and researchers: there is initial empirical evidence that it has positive effects on quality and overall delivery time, as demonstrated by several controlled experiments. The practice does not only regard coding, since it can be applied to any other phase of the software process: analysis, design, and testing. Because of the asymmetry between design and coding, applying pair programming to the design phase might not produce the same benefits as those it produces in the development phase. In this paper, we report the findings of a controlled experiment on pair programming, applied to the design phase and performed in a software company. The results of the experiment suggest that pair programming slows down the task, yet improves quality. Furthermore we compare our results with those of a previous exploratory experiment involving students, and we demonstrate how the outcomes exhibit very similar trends.

[1]  Keith C. C. Chan,et al.  When Does a Pair Outperform Two Individuals? , 2003, XP.

[2]  Mario Piattini,et al.  Performances of pair designing on software evolution: a controlled experiment , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

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

[4]  Gerardo Canfora,et al.  Pair designing as practice for enforcing and diffusing design knowledge: Research Articles , 2005 .

[5]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[6]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

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

[8]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

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

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

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

[12]  Witold Pedrycz,et al.  Preliminary Analysis of the Effects of Pair Programming on Job Satisfaction , 2001 .

[13]  John T. Nosek,et al.  The benefits of collaboration for student programmers , 1993, SIGCSE '93.

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

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

[16]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

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

[18]  Laurie A. Williams,et al.  On pair rotation in the computer science course , 2004, 17th Conference on Software Engineering Education and Training, 2004. Proceedings..

[19]  Laurie A. Williams,et al.  The effects of "pair-pressure" and "pair-learning" on software engineering education , 2000, Thirteenth Conference on Software Engineering Education and Training.

[20]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[21]  David Lorge Parnas,et al.  Software design , 2001 .

[22]  Matthias M. Müller,et al.  A preliminary study on the impact of a pair design phase on pair programming and solo programming , 2006, Inf. Softw. Technol..

[23]  Marcela Genero Metrics For Software Conceptual Models , 2005 .

[24]  Sven Heiberg,et al.  Pair-Programming Effect on Developers Productivity , 2003, XP.

[25]  Adam Wojciechowski,et al.  Experimental Evaluation of Pair Programming , 2001 .

[26]  Donald J. Reifer,et al.  How good are agile methods? , 2002, IEEE Software.

[27]  Paola Salomoni,et al.  Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE 2006, Bologna, Italy, June 26-28, 2006 , 2006, ITiCSE.

[28]  Aybüke Aurum,et al.  Evaluation of effects of pair work on quality of designs , 2005, 2005 Australian Software Engineering Conference.

[29]  Scott Grissom,et al.  Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education, 2002, Cincinnati, Kentucky, USA, February 27 - March 3, 2002 , 2002, SIGCSE.

[30]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[31]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

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

[33]  Tore Dybå,et al.  Conducting realistic experiments in software engineering , 2002, Proceedings International Symposium on Empirical Software Engineering.

[34]  Laurie A. Williams,et al.  Experiments with Industry's “Pair-Programming” Model in the Computer Science Classroom , 2001, Comput. Sci. Educ..

[35]  Mario Piattini,et al.  Pair designing as practice for enforcing and diffusing design knowledge , 2005, J. Softw. Maintenance Res. Pract..

[36]  R. Gittins A call for engineering activism , 2001 .

[37]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..