Extreme Programming Refactored
There's a review of "Extreme Programming Refactored" here. I read it last year (in the midst reading a whole load of other XP stuff - it didn't seem sensible to listen to the cheerleaders without getting views of their detractors), and found it interesting... though the tone of the book (wacky to the point of near-hysteria) hampered my taking it too seriously, I found.
But this comment from the reviewer doesn't fit with our experience of introducing selected XP practices at Future Platforms: "All practices of XP are highly dependent on each other and each one requires the other ones to be in place. For example, remove unit testing and the continuous integration turns a nightmare. Remove pair-programming and the design knowledge doesn’t spread in the team. "
We've been pragmatically taking individual practices from XP, testing them on projects, and adopting them where they work. And our experience is that whilst some of them complement each other (unit testing builds beautifully on continuous integration, for instance), they can certainly work well independently. Most of the problems that CI+Unit testing catches, for instance, are compilation errors, not failed tests: they tend to be the result of code that someone forgot to check in (as we routinely run unit tests on developer workstations before checking in). So CI without unit testing certainly isn't a waste of time.
Incidentally, on the subject of our adoption of Agile-ish methods I should credit Joh, who's helping us work through this stuff after doing an academic study on us in late 2004/early 2005. /me waves ...