“Extreme” programming (XP) is a relatively new software development methodology which aims to allow small teams to produce higher quality software in less time, with less stress. The only thing that possibly exceeds the fervor of its adherents is the scorn heaped upon it by skeptics. Extreme Programming Explained: Embrace Change is “the XP manifesto”, which lays out the basic tenets of the XP idea, discusses the philosophy behind the principles, and delves into actually implementing XP in a programming team. I found the book to be a quick read, and I’m sure if you’re about to start working with an XP team (in either a developer or a customer role), it would be a good place to start familiarizing yourself with the theory and practice of Extreme Programming.
The first third of the book lays out the principles and the theory behind Extreme Programming, and reflects on how the realities of current software development don’t match up with classic development methodology that well anymore (if they ever did). By the end of this section, if you’ve been involved with any sort of structured software development, you’ll be nodding your head in agreement and/or cringing from the painful memories of past failed projects.
The middle third of the book starts out with a high-level overview of the mechanics of the XP process, and then quickly gets into the nitty-gritty of carrying out the distinct steps: The Planning Game, small releases, pair programming, collective ownership, refactoring, testing, and all the rest. Even if you don’t go for full-bore XP practices, there should be something in this section that will make you re-think some of your practices.
The final third of the book deals with practical considerations of implementing the XP methodology for software development, including when you shouldn’t try to use XP. This section, with recountings of commonly encountered problems, and descriptions of the different roles often filled by XP programmers, will be the most valuable for someone trying to actually turn theory into practice.
Overall, I found the book to be a quick, interesting read, and it was fun to consider how some things at my workplace would happen differently if some XP practices were to be adopted.