So there's yet another article online that claims to discuss a downfall of XP. And once again, it follows a very familiar formula:
‘x’ is a property of Extreme Programming. (For some value of ‘x’ including pair programming, short iterations, doing the simplest possible thing, or having no upfront design) We did ‘x’, but it didn't work, so XP sucks.
Someone on the XP mailing list was a little less generous:
Oooh, my project failed! It was vaguely XP-like, so I'm going to blame XP, instead of myself, and then run at the mouth on the net!
In this case, the article talks about the dangers of short delivery cycles when it comes to manual testing. XP has already thought of that, and insists on the full suite of automated tests that the article's author admits would have been the most effective solution to her problem.
XP is a set of twelve practices. They're balanced against each other. One of the biggest difficulties involved in doing XP is the discipline involved in keeping the more difficult practices going. Getting significant customer involvement is hard, but you really need it if you're not nailing down all of the specs before-hand. Coding all the automated tests can be tedious, but it's necessary in the absence of a long testing phase. Refactoring is really hard to justify to management because it looks like time spent doing nothing, but it's vital in the absence of up-front design. Lots of people aren't particularly happy about Pair Programming, but it keeps the code quality up, increases team awareness of the codebase, and helps prevent an individual from forgetting the other practices.
People expect Extreme Programming to be undisciplined. That's not true. People seem to want to label any undisciplined process as being ‘agile’ or ‘extreme‘. That's not true either. Writing an article of the form above, and sticking an inflammatory headline about Extreme Programming on it gets you lots of page-views. That, on the other hand, could be true.
But it's bad. There are real problems with XP, but when it's done properly, it's still one of the better processes I've worked with. The whole straw-man backlash thing not only helps foster an unnecessary prejudice against XP, the sensationalist debate from ignorance stifles any informed (but perhaps less headline-worthy) debate that may be waiting in the wings.