||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: Agile, Scrum, XP, software development
Title: Integrating Agile Development in the Real World
Author: Peter Schuh
Publisher: Charles River Media
Verdict: Recommended, particularly for those thinking of going Agile
What goes on between the covers of books on software development methodologies often bears little resemblance to what goes on in the real world. This is as true of agile methodologies as it is of the heavy-weight and high-process methodologies that they seek to replace. While it's true that agile technologies are close to the reality of fluid deadlines, ever-changing requirements and static processes that only have fleeting contact with what is really going on, it's also true that the perfect world of management bought in to agile development, on-site customers, daily builds and small releases of functional code often doesn't match reality either. This is particularly true for those developers trying to adopt agile processes in the face of entrenched management opposition, or worse, where management pays lip service to agile ideas whilst wanting to retain command and control the old-fashioned way.
Peter Schuh's book is all about bridging the gap between theory and practice. Firstly it should be noted that the book is not about any one particular flavour of Agility, the scope is wide enough to include everything from extreme programming (XP), to Scrum to Crystal, DSDM, FDD, Adaptive Software Development and Lean Software Development. Basically all of the main agile methodologies are covered. In fact anyone looking for a single source of information on these very different methodologies would be well advised to look here, (the third chapter of the book provides a solid introduction to each of the methodologies listed previously).
In addition to introducing the various methodologies, and pointing how they differ and where they cross-over, the book also goes through the practices that are common: build automation, continuous integration, test-driven development, automated deployment, refactoring etc. Again, if you're looking for introductions to these practices - which are useful in and of themselves regardless of whether you are using Agile or not - then this is a good place to get a useful overview and pointers to further information (and tools).
However, the core of Schuh's book is about how to introduce agile methodologies into non-agile environments. Here is where the book scores with some sound advice on how to handle the inevitable conflicts that arise in this situation. Whether it's advising against a huge fanfare when you start going agile or how to mix agile practices with traditional waterfall processes, the author makes good sense.
What's also useful is that the author helps the would-be Agilista select from amongst the methodologies on offer so that they best fit the current environment. XP, for example, may not be the methodology that best fits your current organisation but that's no reason not to look at some of the other agile methodologies that are available. It's this kind of advice that is most useful for those wanting to take their first faltering Agile steps, and it's what gets this book a strong recommendation.