XP: Taking the psychology of programming to the eXtreme

Extreme Programming (XP) is a software development methodology which is growing in popularity and commercial use. Despite a number of published experience reports and a small number of studies, predominantly in an academic environment, our knowledge about how and why some aspects of it work is still in its infancy. One major limitation of many of these studies is a failure to question why the practices of XP appear to work or fail. This paper reviews the research on Extreme Programming and suggests further work is required in order to ascertain how these practices fit into the framework of existing knowledge on the psychological aspects of programming.

[1]  E. Hutchins Cognition in the wild , 1995 .

[2]  Marian Petre,et al.  Team coordination through externalised mental imagery , 2003, PPIG.

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

[4]  Axel Schmolitzky,et al.  Metaphor Design Spaces , 2003, XP.

[5]  John M. Neveu,et al.  Extreme programming in a customer services organisation , 2002 .

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

[7]  Bent Jensen,et al.  Cross-Continent Development Using Scrum and XP , 2003, XP.

[8]  John C. Thomas,et al.  Metaphor and the Cognitive Representation of Computing Systems , 1982, IEEE Transactions on Systems, Man, and Cybernetics.

[9]  Ian Alexander Designing Collaborative Systems. A Practical Guide to Ethnography , 2003, Eur. J. Inf. Syst..

[10]  James D. Herbsleb,et al.  How useful is the metaphor component of agile methods? : a preliminary study , 2003 .

[11]  Jari Vanhanen,et al.  Practical Experiences of Agility in the Telecom Industry , 2003, XP.

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

[13]  Aaron Marcus Metaphor design in user interfaces: how to manage expectation, surprise, comprehension, and delight effectively , 1997, CHI Extended Abstracts.

[14]  James D. Herbsleb,et al.  The eXtreme programming (XP) metaphor and software architecture , 2003 .

[15]  Darren C. Atkinson,et al.  Comparing Extreme Programming to Traditional Development for Student Projects: A Case Study , 2003, XP.

[16]  Etienne Wenger,et al.  Situated Learning: Legitimate Peripheral Participation , 1991 .

[17]  Andrew Johnston,et al.  Extreme Programming: A More Musical Approach to Software Development? , 2003, XP.

[18]  Luigi Benedicenti Using Extreme Programming for Knowledge Transfer , 2001 .

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

[20]  William C. Wake,et al.  Extreme Programming Explored , 2001 .

[21]  Sian Hope,et al.  Qualitative Studies of XP in a Medium Sized Business , 2001 .

[22]  Roberto Deias,et al.  Introducing XP in a start-up , 2002 .

[23]  Daniel Karlström Introducing Extreme Programming – An Experience Report , 2002 .

[24]  Sharon Johnson,et al.  Extreme Makeover: Bending the Rules to Reduce Risk Rewriting Complex Systems , 2003, XP.

[25]  Axel Schmolitzky,et al.  Teaching Team Work: An Extreme Week for First-Year Programmers , 2003, XP.

[26]  Pablo Romero,et al.  Visual Attention and Representation Switching During Java Program Debugging: A Study Using the Restricted Focus Viewer , 2002, Diagrams.

[27]  Giancarlo Succi,et al.  Extreme Programming Examined , 2001 .

[28]  Walter Ambu,et al.  Extreme Programming at Work , 2003, XP.

[29]  Masaki Suwa,et al.  External Representations Contribute to the Dynamic Construction of Ideas , 2002, Diagrams.

[30]  B. Adelson,et al.  The Role of Domain Expenence in Software Design , 1985, IEEE Transactions on Software Engineering.

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

[32]  K. Holyoak,et al.  Analogical problem solving , 1980, Cognitive Psychology.

[33]  John M. Hammer,et al.  Embracing Change: An XP Experience Report , 2003, XP.

[34]  Peter Lappo No Pain, No XP Observations on Teaching and Mentoring Extreme Programming to University Students , 2002 .

[35]  Michael Kircher,et al.  Distributed eXtreme Programming , 2001 .

[36]  Dewayne E. Perry,et al.  Understanding Software Development Processes, Organizations, and Technologies , 1999 .

[37]  Nancy J. Nersessian,et al.  Conceptual Diagrams: Representing Ideas in Design , 2002, Diagrams.

[38]  Moni Naor,et al.  Extreme Programming and Agile Processes in Software Engineering , 2004, Lecture Notes in Computer Science.

[39]  Friedrich Steimann,et al.  Filleting XP for Educational Purposes , 2003, XP.

[40]  Andrew j. Dick,et al.  Paired Programming & Personality Traits , 2002 .

[41]  Yvonne Rogers,et al.  External cognition: how do graphical representations work? , 1996, Int. J. Hum. Comput. Stud..

[42]  Helen Sharp,et al.  An ethnography of XP practice , 2003, PPIG.

[43]  Neil B. Harrison,et al.  A Study of Extreme Programming in a Large Company , 2003 .

[44]  Bill Curtis,et al.  By the way, did anyone study any real programmers? , 1986 .

[45]  Michael B. Twidale Interfaces for Supporting Over-The-Shoulder Learning , 2000 .

[46]  Tom Carey,et al.  Human-computer interaction , 1994 .

[47]  Bjørnar Tessem,et al.  Experiences in Learning XP Practices: A Qualitative Study , 2003, XP.