Author: Bob Aiello and Leslie Sachs
Publisher: Addison-Wesley, 2010
Audience: Development managers, project managers, software architects
Reviewer: Andrew Johnson
The subtitle of this book is "Practical methods that work in the real world". Who, and how, does it help?
Configuration management is an area that is riddled with confusing jargon and ambiguous acronyms - SCM for example can mean source code management as well as software configuration management.
The authors of this book make a point of being very clear about what they are talking about. At first glance the structure of the book looks almost over-engineered. The table of contents extends for eleven pages with topics itemized at the sub-sub-section level. Then the preface outlines the organization of the book and gives a succinct overview of each of its chapters.
Next comes an introduction that, as well as repeating information given in the Preface provides a brief summary of the book's contents. And if there's not enough each chapter starts with an overview of its contents at the section level and there are lots of references, both forwards and backwards, within the text. However, despite this level of repetition, and the impression it creates of being a textbook, the book turns out to be readable as well as instructive, largely due to it being based on personal experience, often backed up by anecdotes.
By the time you reach the first chapter of this book you should already know that Bob Aiello takes the view that configuration management consists of six functional areas:
- Source code management
- Build engineering
- Environment configuration
- Change control
- Release engineering
Part I: The Core CM Best Practices Framework devotes a chapter to each of these in turn. When I first leafed through this part of the book I thought it might be hampered by following a set formula - each chapter starts with sections on goals and principles, then each has 1.1 Why Is functional area Important? 1.2 Where Do I Start. But for once this approach does seem to work. You are never confused about what the author wants you to learn about at any given point in the book and where it is going next and the framework isn't rigidly applied - where an item doesn't fit it isn't and while there's necessarily a lot of jargon, terminology is always well explained and the writing style is conversational.
Part II: Architecture and Hardware CM has just two chapters - one on each topic in its title.
In the first paragraph of Chapter 7 the author states:
I have always believed that architecture was the Achilles' heel of configuration management, especially when the application changes in ways that can adversely impact the established configuration management procedures. I have had source code management, automated builds, and release packaging and deployment mechanism suddenly stop working because of "surprise" changes in system architecture.
The chapter looks at what architects can learn from testers, introduces Configuration Management-Drive Development and the idea of using source code management to facilitate architecture and returns to the idea that training is essential fist discussed in Chapter 1.
Although Chapter 8 Hardware Configuration Management is very short, it's very inclusion is important as this is a topic described as "often overlooked and undervalued".
Part III: The People Side of CM is the most varied part of the book - even though each chapter still starts with a discussion of goals followed in all but one case with the standard discussion of "Why?" and "Where Do I Start?"
Chapter 9: Rightsizing Your Process is an interesting, and very anecdotal, discussion of getting the correct balance for process improvement - pointing out the dangers of both too much and too little.
Chapter 10: Overcoming Resistance to Change looks at matching process to culture, fostering teamwork, and the importance of listening.
Chapter 11: Personality and CM: A Psychologist Looks at the Workplace is contributed by the other member of the book's husband and wife team, Leslie Sachs. In fewer than twenty pages she provides insights into "what makes people tick" that will be helpful beyond the remit of configuration management. Like the rest of the book it's practical, authoritative, very readable and well worth reading.
Bob Aeillo resumes the reins in Chapter 12: Learning From Mistakes That I Have Made which concludes that:
It is important to make learning from your mistake part of your process-improvement efforts.
We return to more mundane, but equally vital information in Part IV: Compliance, Standards and Frameworks which contains:
Chapter 13: Establishing IT Control and Compliance
Chapter 14: Industry Standards and Frameworks
Thanks to the extended table of contents it is easy to use this part of the book as a reference.
The book achieves a very satisfying balance. It looks at the technical and the human side of managing software projects. Equally while it has high information content it is both highly readable and easy to navigate.
Highly recommended to anyone involved in any aspect of IT systems management.