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.