Did you know that Extreme Programming (XP) is based on a methodology used to fairly spectacularly fail to deliver a project? The project team consisted of most of the people have since started selling books on the subject. (Ok, I’m being overly cynical here, there have been some great books written from members of the team).
Matt Stephens also decided to sell some books, but instead by pointing out flaws in XP as co-author of Extreme Programming Refactored. He has an article making The Case Against XP, as well as other information critical of XP on his site. Interestingly enough, he also points out that he supports agile practices in general, and his main aim is cut through the hype of XP and address its limitations, which seems a pretty worthwhile goal.
While I feel Agile methods (of which XP is one example) do have a lot to offer (things like TDD, refactoring, avoiding over-engineering, and interesting approaches to gathering requirements), XP does seem to have been over-hyped (the name itself screams hype!).
There are no silver bullets for software development (but there are werewolves), and I think one of the best parts of Agile methodologies in general is that they emphasise doing what works, rather than blindly following a fixed process. By becoming overly zealous with things like XP we lose that advantage of using common sense to do what works.
For the record, here is how the original, failed XP project (C3) project wound up.