by Barry Boehm and Richard Turner
This book attempts to breach a conceptual divide between developers following agile developers and developers taking what the authors call a “plan–driven” approach. The book does an excellent job of summarizing many agile methods. The main premise of the book is that agile and plan–driven methods each have a “home ground” for which they are the appropriate choice. The central part of the book is… Chapter 5, “Using Risk to Balance Agility and Discipline.” In this chapter the authors present a tailorable method that can be used to balance what they view as the two extremes of agility and discipline.
Where the book fails is in the assumption that agility and discipline are at opposite ends of a continuum. First, those of us who have worked on agile projects know that we only achieve agility through discipline. More importantly, however, the distinction between agile processes and heavy–weight processes is not continuous and an effective process cannot always be achieved by balancing a little more of this with a little less of that.
For example, self–organizing teams are a fundamental component of what most of us consider an agile process. I cannot add a little self—organization to a project. It’s either added or it’s not. I can lighten up on some aspect of my heavyweight, plan–driven process but that doesn’t suddenly make the process agile.
Despite disagreeing with this main premise, I generally agree with the six main conclusions presented in Chapter 6. For example, the recommendation to “Build your method up’’don't tailor it down” points out the main flaw I’ve seen with implementations of the Unified Process. Once something gets added to a process it is just too easy to keep it. If we build our process up from nothing the results are much more satisfying than if we start with everything and slowly remove things.
There is much to like in this book. The book is very well written and edited. Illustrations are crisp and useful. Especially if you are not already using an agile process, this book will help you identify ways to lighten your current process and may help you make a switch all the way to agile. While I disagree very strongly with the main premise of the book I recommend it highly. The book is enjoyable to read and you will come away from it knowing more about agile processes.