At £25.49 ($32.92) from Amazon(uk,us) (paperback edition, Kindle edition now also available) and running to a comfortable 253 pages, Mario E. Moreira’sAdapting Configuration Management for Agile Teams: Balancing Sustainability and Speed makes a good day’s reading. The book’s style is informative and not laden with jargon, making it an ideal read even for the uninitiated configuration manager.
This book is not a technical implementation manual but rather a bridge between the worlds of Agile practices and Configuration Management. As such, it can be read be either Agilists wanting to get a grip on configuration management, or configuration managers wanting to understand how Agile projects may be accommodated.
In places I myself yelling, ‘but this should be done on any project, not just Agile’, before recalling that the sole purpose of this book is to offer that bridge between CM and Agile. Much of the advice in the book is good advice on almost any project. The book is useful to any CM practitioner whether applying CM to Agile or not—simply replace the word ‘Agile’ with ‘good’ throughout and you won’t go far wrong.
The book presents two primers; one for CM, the other for Agile. These primers provide a whirlwind tour of each discipline in order to orient the reader to the material in the remainder of the book. Each primer is sufficient that the interested reader will not be lost in later material while remaining brief enough that they do not dominate.
After these primer chapters Moreira discusses how CM and Agile values work together. This chapter should disabuse the reader of any notion that the two disciplines are in any way in conflict and reassure each side that the other has only the best interest of both at heart.
Chapter five discusses infrastructure in the context of Agile projects, highlighting practical issues such as short lead times between project initiation and the need for infrastructure to be in place to support development which will start much sooner than in non-Agile projects. Some practical advice is offered on delivering infrastructure and in reusing existing infrastructure.
Next, the specifics of CM implementation on Agile projects is discussed. Discussions about the implications of team coordination and locations are discussed along with potential difficulties and possible solutions when dealing with Agile teams that are near– or off–shored rather than collocated.
By far the largest chapter, chapter seven, is dedicated to adapting CM pratices for Agile. Each of the main CM functions (identify, control, report, and audit) are examined from the perspective of their impact on, and benefit to, an Agile project. Particular care is taken to point out where CM practices must be tailored to the Agile mindset in order to accommodate Agile practices. A great deal of the advice boils down to ‘keep it lean’ and ‘do nothing that does not add value’; tenets that apply universally, but are particularly important for Agile projects.
The final three chapters deal with the relationship between CM tools and Agile projects, tool selection, and the application of CM standards and frameworks to Agile projects. Chapters eight and ten are written by guest authors Damon Poole and Bob Aiello respectively. These three chapters cover a lot of ground already covered in the first seven chapters, but from a fresh perspective.
A book that every CM practitioner (and every Agilist) should read.