Extreme Programming is a software engineering practice, promising to deliver a flat cost line for fixing defects during all the development cycle of the project.The book is very well thought out, providing a crystal clear explanation of all the methodology and the rationale behind.
I don’t agree on every part though I think that there are some practices that are worth studying or using in other environments. For example the idea of running light is very attractive, but having large and or complex system just described by the code itself is, to put it mildly, scaring. Design is needed to point the way and ensuring that the system is evolving in the right direction.
The extensive use of the unit test is a good thing, too often the building blocks are flawed and you discover it only when you need them in some specific situation. Pair programming is one of the aspects of XP that I like the less. When programming I like to have the control, to be free of editing a file in the most messy way I prefer grant that the result is good. Also trying to think alone to the solution and following reasoning path that could be perceived as fruitless by my hypothetical pair.
I wrote a summary (in Italian) of this book.