Phlip made an interesting post about the discipline of XP, in response to a question about it on the XP list:
XP is the discipline to only write code when you have achieved this checklist:
- a user story, with a priority
- a failing storytest for that story
- a failing unit test for a feature in that story
- a pair
- a continuous integration system
- a daily deployment system
- a fresh attitude
Which I think is an excellent way of thinking about it, as long as one, as Naresh Jain puts it, understands the why’s of the above checklist. If we as developers see that a feature doesn’t have a failing storytest, and we just write one without involving the customer, we’ve missed the boat.