An experimental investigation of personality types impact on pair effectiveness in pair programming

In this paper, pair programming is empirically investigated from the perspective of developer personalities and temperaments and how they affect pair effectiveness. A controlled experiment was conducted to investigate the impact of developer personalities and temperaments on communication, pair performance and pair viability-collaboration. The experiment involved 70 undergraduate students and the objective was to compare pairs of heterogeneous developer personalities and temperaments with pairs of homogeneous personalities and temperaments, in terms of pair effectiveness. Pair effectiveness is expressed in terms of pair performance, measured by communication, velocity, design correctness and passed acceptance tests, and pair collaboration-viability measured by developers’ satisfaction, knowledge acquisition and participation. The results have shown that there is important difference between the two groups, indicating better communication, pair performance and pair collaboration-viability for the pairs with heterogeneous personalities and temperaments. In order to provide an objective assessment of the differences between the two groups of pairs, a number of statistical tests and stepwise Discriminant Analysis were used.

[1]  Matthias M. Müller,et al.  Are Reviews an Alternative to Pair Programming? , 2004, Empirical Software Engineering.

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

[3]  Laurie A. Williams,et al.  An initial exploration of the relationship between pair programming and Brooks' law , 2004, Agile Development Conference.

[4]  Eric N. Wiebe,et al.  On understanding compatibility of student pair programmers , 2004 .

[5]  Motoshi Saeki Communication, collaboration and cooperation in software development-how should we support group work in software development? , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

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

[7]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[8]  A. Langley Strategies for Theorizing from Process Data , 1999 .

[9]  Frank Houdek,et al.  Empirical Studies of Object-Oriented Artifacts, Methods, and Processes: State of the Art and Future Directions , 1999, Empirical Software Engineering.

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

[11]  Sallie M. Henry,et al.  The effects of roles and personality characteristics on software development team effectiveness , 1998 .

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

[13]  Helen M. Edwards,et al.  Who should test whom? , 2007, Commun. ACM.

[14]  GorlaNarasimhaiah,et al.  Who should work with whom , 2004 .

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

[16]  Katsuro Inoue,et al.  Empirical Project Monitor: A Tool for Mining Multiple Project Data , 2004, MSR.

[17]  Lucas Layman,et al.  Examining the compatibility of student pair programmers , 2006, AGILE 2006 (AGILE'06).

[18]  Grigori Melnik,et al.  Perceptions of Agile Practices: A Student Survey , 2002, XP/Agile Universe.

[19]  Tjai M. Nielsen,et al.  Group Personality Composition and Group Effectiveness , 2005 .

[20]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[21]  Carrie R. Leana,et al.  Organizational Social Capital and Employment Practices , 1999 .

[22]  John H. Bradley,et al.  The effect of personality type on team performance , 1997 .

[23]  William M. K. Trochim,et al.  Research methods knowledge base , 2001 .

[24]  Lynda Thomas,et al.  Code warriors and code-a-phobes: a study in attitude and pair programming , 2003 .

[25]  Eric Sundstrom,et al.  16 Group Dynamics and Effectiveness: Five Years of Applied Research , 2005 .

[26]  Aniello Cimitile,et al.  Working in pairs as a means for design knowledge building: an empirical study , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

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

[28]  P. L. Ferdinandi Facilitating communications , 1998 .

[29]  Luiz Fernando Capretz Personality types in software engineering , 2003, Int. J. Hum. Comput. Stud..

[30]  S. Wheelan The Handbook of Group Research and Practice , 2005 .

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

[32]  Philip M. Johnson,et al.  Beyond the Personal Software Process: Metrics collection and analysis for the differently disciplined , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[33]  Laurie A. Williams,et al.  On understanding compatibility of student pair programmers , 2004, SIGCSE '04.

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

[35]  Watts S. Humphrey,et al.  Using A Defined and Measured Personal Software Process , 1996, IEEE Softw..

[36]  Nick Hammond,et al.  Synchronous Collaborative Concept Mapping via ICT: Learning Effectiveness and Personal and Interpersonal Awareness , 2004 .

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

[38]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[39]  T. Cook,et al.  Quasi-experimentation: Design & analysis issues for field settings , 1979 .

[40]  Matthias M. Müller,et al.  Two controlled experiments concerning the comparison of pair programming to peer review , 2005, J. Syst. Softw..

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

[42]  Victor R. Basili,et al.  An Empirical Study of Communication in Code Inspections , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

[44]  Jim Highsmith,et al.  Agile Software Development Ecosystems , 2002 .

[45]  Colin J. Neill,et al.  Antipatterns: Identification, Refactoring, and Management , 2005 .

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

[47]  Francisco Javier Macias,et al.  Empirical assessment of extreme programming , 2004 .

[48]  J. Isaak Standards should be set by officially recognized bodies , 1998, IEEE Software.

[49]  I. B. Myers The Myers-Briggs Type Indicator: Manual (1962). , 1962 .

[50]  E. Sundstrom,et al.  Work teams: Applications and effectiveness. , 1990 .

[51]  Narasimhaiah Gorla,et al.  Who should work with whom?: building effective software project teams , 2004, CACM.

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

[53]  Joseph Chao,et al.  Critical personality traits in successful pair programming , 2006, AGILE 2006 (AGILE'06).

[54]  Watts S. Humphrey,et al.  Managing Technical People: Innovation, Teamwork, and the Software Process , 1996 .

[55]  Laurie A. Williams,et al.  Towards increasing the compatibility of student pair programmers , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[56]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[57]  Laurie Williams,et al.  Integrating pair programming into a software development process , 2001, Proceedings 14th Conference on Software Engineering Education and Training. 'In search of a software engineering profession' (Cat. No.PR01059).

[58]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[59]  N. Hammond,et al.  Taxonomy of analysis levels of learning effectiveness in collaborative concept mapping , 2004 .

[60]  Eliot R. Smith,et al.  Research methods in social relations , 1962 .

[61]  Benson Rosen,et al.  ASSESSING THE INCREMENTAL VALIDITY OF TEAM CONSENSUS RATINGS OVER AGGREGATION OF INDIVIDUAL‐LEVEL DATA IN PREDICTING TEAM EFFECTIVENESS , 2001 .

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

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

[64]  Patricia L. Ferdinandi Facilitating Communication , 1998, IEEE Softw..

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

[66]  Petrus A.M. Kommers,et al.  Concept Mapping as a Medium of Shared Cognition in Computer-Supported Collaborative Problem Solving , 2002 .

[67]  Gerard Delanty The Foundations of Social Theory , 2009 .

[68]  Ioannis Stamelos,et al.  Investigating the extreme programming system–An empirical study , 2006, Empirical Software Engineering.

[69]  Alberto Sillitti,et al.  Collecting, integrating and analyzing software metrics and personal software process data , 2003, 2003 Proceedings 29th Euromicro Conference.

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

[71]  Bernd Brügge,et al.  Communication Metrics for Software Development , 1998, IEEE Trans. Software Eng..

[72]  James E. Tomayko A Comparison of Pair Programming to Inspections for Software Defect Reduction , 2002, Comput. Sci. Educ..

[73]  Lionel C. Briand,et al.  An Experimental Comparison of the Maintainability of Object-Oriented and Structured Design Documents , 2004, Empirical Software Engineering.

[74]  Walter F. Tichy,et al.  Case study: extreme programming in a university environment , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[75]  Grigori Melnik,et al.  Direct verbal communication as a catalyst of agile knowledge sharing , 2004, Agile Development Conference.