Concept: XP Practices
Main Description

XP is a collection of guiding values and best practices. Most of these practices have been used in the industry in some shape or form for a number of years. XP has simply identified them and tried to push the envelope of these practices in order to get the most benefit from them. Taken individually, these practices are all fairly simple. But it is the sum of all of them that provides the most benefit as they reinforce each other to address the most difficult problems teams encounter when developing software.



This diagram arranges the core practices of Extreme Programming in a way that makes them easy to remember and that exemplifies the steering and control cycles of the process.

The outer red circle is called the "Circle of Life". It's what keeps an XP project going, producing tested working software. The Whole Team, customer members and development members, work together - preferably physically together - to build the project. Using the Planning Game elements of Release Planning and Iteration Planning, they plan a series of Small Releases of software that demonstrably pass all the Customer Tests.

The innermost blue circle describes the day to day, moment to moment, work of the XP developers. Each feature is addressed with Simple Design, ensuring that the design of the system is just right for the features supported. The programmers work in pairs for all production code development, providing continuous code review and valuable, team-wide understanding of the system. They build the software using Test-Driven Development, a technique that produces well-crafted and well-tested software with a minimum of wasted effort, and the design is kept clean by the continuous improvement process of Refactoring.

The middle green circle contains the important supporting practices of XP. The software is designed according to a common, shared, evolving Metaphor that helps it all hang together. It is kept continuously integrated with many system builds every day, each one fully tested. The team shares ownership of of all the code so that needed changes can be made by any qualified pair, not just by one individual. Since everyone works on everything, the team evolves a standard way of coding. Finally, XP teams work at a sustainable pace that enables them to deliver tested software on a predictable basis from the first day of the project until the last.