Finished XP Applied
Today I finished reading Extreme Programming Applied: Playing to Win by Ken Auer and Roy Miller. The executive summary for this review is: Buy this book if you’re serious about XP. You have to read it!
I have read all books in the XP Series except XP in Practice and XP Examined (although I’ve read some of the papers published in the latter). This is the first book that delves deeper into XP.
If you want to learn about XP, you should read XP Explained, although I’m not sure it’s the best book to start with. I think I would suggest starting with XP Explored or XP Installed, probably the former, since it is a very gentle introduction. If you’re a programmer, you might want to start reading Refactoring, which isn’t explicitly an XP book, but gives an insight into “XP programming”.
As for XP Applied, this is the book to read when you feel at home with the basic concepts of XP, but are full of questions, such as how design actually works in XP – do you do any design at all? Or, do you really need to program in pairs all the time? And so on. I can’t think of any questions I’ve had during the two years I’ve been into XP, that aren’t addressed in the book – and addressed thoroughly.
Also, I tried to read the book with a critical mindset. Often, I made notes about things I thought they didn’t cover too well, only to find that it was covered later in the book. Very frustrating! (-: But I have a few things that I think should have been in the book. I will get back to those.
The book is organized chronologically after the process of implementing XP. After the intro, they describe the “bare essentials” in depth. These are the things you must implement in the beginning. Then they go on to describe the rest of the practices, that also are essential, but that can wait until you have established the core. The end of the book contains things that there’s little documented experience about: like doing “distributed XP” and scaling XP to bigger projects.
The first of the things I think should be in the book is regarding the bare essentials. They are: The Planning Game, Small Releases, Unit Testing, Pair Programming, Refactoring and Continuous Integration. They argue that On-Site Customer isn’t required from the start, but I feel that it must be stated that you must communicate much more with the customer compared to most non-XP projects. The more communication the better. It’s not like they don’t agree with this, I just felt it should be emphasized.
Secondly, I think they should have addressed the difficulty people experience with writing stories. They touch on the subject, saying “[We] can confiedently define a story as: The simplest thing that can possibly work to make everyone in the room agree that they have a placeholder for something that needs to be done.”. In other words: don’t bother with what you write on the cards – how many words, sentences, the format, etc. – the important thing is that everyone in the room feel that they can associate the writing on the card with the functionality desired.
Also, I would like them to have explored the metaphor as thoroughly as the rest. XP Explored contains the best stuff about metaphor and architecture available in the XP literature. XP Applied just does what XP Explained and XP Installed did: to devote only one or two pages to it. My opinion is that the architecture is metaphorical and that the metaphor can be regarded as an architecture (I’ve written some unfinished things about it here; hopefully, I will get back to this as the concepts start to get clearer in my head).
The book is simply brilliant and I think it stands as important as XP Explained in the XP literature. Period. What I’m not sure about, though, is how much you should have read before reading XP Applied. I think it might be wise to read at least XP Installed and XP Explained first, if you’re a programmer – or XP Explained and Planning XP if you’re a customer or other non-programmer.