Distributed extreme programming : extending the frontier of the extreme programming software engineering process.

Extreme Programming (XP) is inherently collaborative, which makes it amenable to Computer Supported Cooperative Work (CSCW) support. The collaboration enabling tools and techniques used in XP, such as whiteboards, index cards and co-location, are adequate for their immediate purposes. However, they do not allow sufficient information to survive beyond the end of projects. Long term consequences of their use include the risk of inadequate software maintenance, and limitation of the process’ scalability. In this thesis, we explore the opportunity to address these risks by means of a desktop-based client/server experimental groupware application. We exploit existing metaphors and characteristics of XP, such as the ‘information radiator’ and the natural hierarchical arrangement of the primary project concerns, in order to reduce the gap between user’s mental model of normal XP and CSCW enabled XP. We use XML, relaxed-WYSIWIS and a message passing communications system to allow users to interact with the same or different aspects of a project’s information space—the Project Document — while they collaborate on essential project planning and coordination activities of the Planning Game. We conclude that our choice of deployment architecture and selection of aspects of XP which are augmented offer relevant and more sophisticated support for XP teams than do web-based approaches reported in literature.

[1]  S. B. Kiselev,et al.  The capability maturity model: guidelines for improving the software process , 1995 .

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

[3]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[4]  Frank Maurer,et al.  Process Support for Distributed Extreme Programming Teams , 2002 .

[5]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[6]  Martin Fowler,et al.  Is design dead , 2001 .

[7]  G. Lakoff Philosophy in the flesh , 1999 .

[8]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[9]  Kjeld Schmidt,et al.  CSCW: Four Characters in Search of a Context , 1989, ECSCW.

[10]  Gerold Keefer,et al.  Extreme Programming Considered Harmful for Reliable Software Development 2 . 0 Status : Draft , 2002 .

[11]  Harvey G Lehtman,et al.  Working together , 1988 .

[12]  Keith A. Lantz,et al.  Collaboration awareness in support of collaboration transparency: requirements for the next generation of shared window systems , 1990, CHI '90.

[13]  Tom Rodden,et al.  A Survey of CSCW Systems , 1991, Interact. Comput..

[14]  Carl Gutwin,et al.  Heuristic Evaluation of Groupware Based on the Mechanics of Collaboration , 2001, EHCI.

[15]  Yann Laurillau,et al.  Clover architecture for groupware , 2002, CSCW '02.

[16]  Pete McBreen,et al.  Questioning Extreme Programming , 2002 .

[17]  Frank Maurer Supporting Distributed Extreme Programming , 2002, XP/Agile Universe.

[18]  Neville Churcher,et al.  A Pure-Java Group Communication Framework , 2003 .

[19]  James A. Highsmith,et al.  Adaptive Software Development: A Collaborative Approach to Managing Complex Systems , 1999 .

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

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

[22]  Neville Churcher,et al.  An extensible framework for collaborative software engineering , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[23]  Glen Van Der Vyver,et al.  Using the New Generation of IS Development Techniques in Effective Group Learning: A Pilot Study of a Team-Based Approach in an IT Course , 2003 .

[24]  Eric Lefebvre,et al.  Java modeling in color with UML: enterprise components and process , 1999 .

[25]  Bruce E. Wampler,et al.  The Essence of Object-Oriented Programming with Java? and UML [With CDROM] , 2002 .

[26]  Giancarlo Succi,et al.  Extreme Programming Perspectives , 2002 .

[27]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[28]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[29]  Michael J. Rees,et al.  A feasible user story tool for agile software development? , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[30]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[31]  Michele Marchesi,et al.  Developing a Tool Supporting XP Process , 2003, XP/Agile Universe.

[32]  Jörg M. Haake,et al.  Designing object-oriented synchronous groupware with COAST , 1996, CSCW '96.

[33]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[34]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[35]  Laurie A. Williams,et al.  All I really need to know about pair programming I learned in kindergarten , 2000, Commun. ACM.

[36]  Jonathan Grudin,et al.  Why CSCW Applications Fail: Problems in the Design and Evaluation of Organization of Organizational Interfaces. , 1988 .

[37]  Marvin V. Zelkowitz,et al.  Principles of software engineering and design , 1979 .

[38]  Neville Churcher,et al.  GROUPCRC: exploring CSCW support for software engineering , 1996, Proceedings Sixth Australian Conference on Computer-Human Interaction.

[39]  Ron Jeffries,et al.  Extreme Programming Installed , 2000 .

[40]  Till Schümmer,et al.  Support for distributed teams in extreme programming , 2001 .

[41]  Kent Beck,et al.  Test-infected: programmers love writing tests , 2000 .

[42]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

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

[44]  Joëlle Coutaz,et al.  From single-user architectural design to PAC*: a generic software architecture model for CSCW , 1997, CHI.

[45]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[46]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[47]  Ken Auer,et al.  Extreme Programming Applied: Playing to Win , 2001 .

[48]  Donald C. Wells Extreme Programming: A gentle introduction , 2003 .

[49]  Yvonne Rogers,et al.  PETRA: Participatory Evaluation Through Redesign and Analysis , 1995, Interact. Comput..

[50]  Andy Hopper,et al.  Virtual Network Computing , 1998, IEEE Internet Comput..

[51]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[52]  Adam Wojciechowski,et al.  Extreme programming modified: embrace requirements engineering practices , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[53]  Mark C. Paulk,et al.  Extreme Programming from a CMM Perspective , 2001, IEEE Softw..

[54]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[55]  Jay F. Nunamaker,et al.  Electronic meeting systems , 1991, CACM.

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

[57]  Robert C. Martin,et al.  Extreme programming in practice , 2001, OOPSLA '00.