Implementing Extreme Programming in Distributed Software Project Teams: Strategies and Challenges

Agile software development methods and distributed forms of organizing teamwork are two team process innovations that are gaining prominence in today’s demanding software development environment. Individually, each of these innovations has yielded gains in the practice of software development. Agile methods have enabled software project teams to meet the challenges of an ever turbulent business environment through enhanced flexibility and responsiveness to emergent customer needs. Distributed software project teams have enabled organizations to access highly specialized expertise across geographic locations. Although much progress has been made in understanding how to more effectively manage agile development teams and how to manage distributed software development teams, managers have little guidance on how to leverage these two potent innovations in combination. In this chapter, I outline some of the strategies and challenges associated with implementing agile methods in distributed software project teams. These are discussed in the context of a study of a large-scale software project in the United States that lasted four months.

[1]  M. Maznevski,et al.  Bridging Space Over Time: Global Virtual Team Dynamics and Effectiveness , 2000 .

[2]  Pär J. Ågerfalk,et al.  Agile Practices Reduce Distance in Global Software Development , 2006, Inf. Syst. Manag..

[3]  O. Murru,et al.  Assessing XP at a European Internet Company , 2003, IEEE Softw..

[4]  Pekka Abrahamsson,et al.  Extreme programming: a survey of empirical data from a controlled case study , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[5]  C. Cramton The Mutual Knowledge Problem and Its Consequences for Dispersed Collaboration , 2001 .

[6]  Brian Fitzgerald,et al.  Customising agile methods to software practices at Intel Shannon , 2006, Eur. J. Inf. Syst..

[7]  Pär J. Ågerfalk,et al.  Global software development , 2009, Commun. ACM.

[8]  Xiaojun Zhang,et al.  Role of collective ownership and coding standards in coordinating expertise in software project teams , 2009, Eur. J. Inf. Syst..

[9]  Erran Carmel,et al.  Tactical Approaches for Alleviating Distance in Global Software Development , 2001, IEEE Softw..

[10]  Pär J. Ågerfalk,et al.  A framework for considering opportunities and threats in distributed software development , 2005 .

[11]  Dinesh Batra,et al.  Modified agile practices for outsourced software projects , 2009, CACM.

[12]  Jonathon N. Cummings,et al.  The Spatial, Temporal, and Configurational Characteristics of Geographic Dispersion in Teams , 2007, MIS Q..

[13]  Viswanath Venkatesh,et al.  A Control Theory Perspective on Agile Methodology Use and Changing User Requirements , 2009, Inf. Syst. Res..

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