Embedding Architectural Practices into Extreme Programming

Today, agile methods become a popular approach to develop software systems. They try to satisfy customer, respond to changes, release in less time and achieve suitable profits for developers. XP is one of the most popular agile methods which is currently being used and different kinds of research have been accomplished about its various aspects such as pair programming. In spite of all benefits known of XP, it does not involve architectural techniques yet. As it is mentioned in many technical reports, the way to achieve high quality of system is to consider its architecture as an important matter in the development process. This paper introduces two practices in order to empower XP's development process toward improving system's architecture. The main characteristic of proposed solution is that it is derived from values and practices of XP in order to be compatible with XP process model and to keep its agility intact.

[1]  Pekka Abrahamsson,et al.  Perceived Effects of Pair Programming in an Industrial Context , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[2]  James E. Tomayko,et al.  Integrating the Architecture Tradeoff Analysis Method (ATAM) with the Cost Benefit Analysis Method (CBAM) , 2003 .

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

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

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

[6]  James E. Tomayko,et al.  Software architecture-centric methods and agile development , 2006, IEEE Software.

[7]  Ian Gorton,et al.  Essential software architecture , 2006 .

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

[9]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[10]  James E. Tomayko,et al.  Integrating Software-Architecture-Centric Methods into Extreme Programming (XP) , 2004 .

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

[12]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[13]  Steve McConnell,et al.  Rapid Development: Taming Wild Software Schedules , 1996 .

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