As XP is catching pace, the 12 practices of XP have grown to 25…26…(whatever). Though the basic principles and core XP values remain the same, the practices have been made more prescriptive. My understanding is that this is done to remove the so-called “ambiguity” with XP.
XP 1st edition Practices:
- The Planning Game formalizes the rituals and roles of planning and estimations
- Small Release tries to put a simple system into production quickly and then release versions on very short cycles
- System Metaphor: how we communicate the system to others and ourselves
- Unit Tests ensure that we don’t break one another’s code;
- Simple Design – The system should be designed as simply as possible at any given moment. Extra complexity is removed as sson as it’s discovered
- Refactor Mercilessly keeps the code clean and speeds progress;
- Pair Programming gives higher quality, great cross-training, and higher speed;
- Collective Owenership: Any one can change any code anywhere in the system at any time
- Continuous Integration helps avoid Integration Hell;
- 40 Hour week
- An OnsiteCustomer to make sure we build business value;
- Coding Standards
XP 2nd edition Practices:
- DoTheSimplestThingThatCouldPossiblyWork encourages us not to over (or under)-engineer;
- AskTheCode because it knows; CodeSmells if it has a problem; ListenToTheCode;
- AcceptanceTests (formerly called FunctionalTests) tell us how we’re progressing against user needs;
- ContinuousIntegrationRelentlessTesting helps avoid IntegrationHell;
- SpikeSolution helps explore the area we’re working on;
- ModelFirst plus SpartanUserInterface helps us concentrate on real customer value
- ExtremePlanning suggests quickly building a map of the whole imagined system and incrementally refining it
- CountDownToRelease discusses how to use the ExtremePlanning practices when you’re getting close to release
- ExtremeReuse – adopting third party software and making it XP-compatible by building tests
- TossIt – making projects trim and keeping projects trim
- ExtremeDocuments – we do documentation, sometimes differently
- SupportCrisis – what to do until the doctor comes
- LazyOptimization and EarlyProfiling
40-Hour week and Coding Standards seem to be dropped.
Overall, the core values of XP are what you need to understand when practicing XP. You don’t want to miss the forest for a tree. Don’t you?
Disclaimer: The new XP practices are the summary of what I read from the C2 Wiki. Thanks to Owen for letting me know that they are quite different from what’s in Kent Beck’s book.