||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: XP, agile, software methodology, software development
Title: Extreme Programming Explained: Embracing Change
Author: Kent Beck with Cynthia Andres
Publisher: Addison Wesley
Verdict: Good on the thinking behind XP.
In the five years since the first edition of Kent Beck's 'Extreme Programming Explained' the world has moved on considerably. Extreme Programming (XP) has moved firmly centre stage, one of the most well-known of a number of agile software development methodologies. The core practices that XP adopted - from test-first development to automated builds to continuous integration - are now becoming part of the development landscape. Inevitably this success has had a number of consequences. Firstly there has been a rush to adopt the XP-cloak. These days even proponents of heavy-weight processes claim that they too can be agile. Secondly there has been an inevitable backlash, witness for example 'Extreme Programming Refactored: The Case Against XP' by Doug Rosenberg and Matt Stephens. Finally, XP has become so trendy that just about everybody claims to be using it. Which in turn reflects badly on XP when projects fail.
In this updated and rewritten edition of the book Kent Beck reflects on some of his own experiences in the intervening period and casts light on where he thinks XP is now and where it's going.
This is a very different kind of book on software development practices. It's almost a personal manifesto rather than an 'objective' look at software theory and practice. At times it reads more like a self-help manual than anything else. The emphasis is very much on aspiration, self-improvement, self-knowledge and so on. When Beck exhorts us all to have 'courage' to strive to be the 'best we can' and to reflect critically on ourselves it's easy to miss sight of the fact that this is, after all, a book on software development. This isn't necessarily a criticism of the book, but it does point to a criticism made of XP as a whole and that is that it focuses too much on the developer.
Beck does run through the core practices but to be honest this is not a 'how to' book. There are plenty of other books which cover the practices in much more detail, for example Peter Schuh's book Integrating Agile Development in the Real World, or for refactoring nothing beats Matrin Fowler's Refactoring: Improving the Design of Existing Code or indeed Beck's own work on test-driven development and JUnit. Where the book does score is in pointing out the reasoning behind many of the practices.
In reflecting on the five years since the first book the author acknowledges that XP has become a useful cover for those people who have no methodology. Using XP to cover for no process and no design has become an easy option. The XP emphasis on doing just enough design to get a project started and delivering functionality can easily become an excuse for doing no design at all.
For an insight into the philosophy of XP this book is perfect. For more operationally oriented information there are other books that provide more detail.