Books written during the first phase of agile software development have been about very specific practices we should employ. There are some excellent books on the Extreme Programming, Feature–Driven Development and Scrum agile processes. These books teach us “do a, b, and c if you want to do Extreme Programming” or “do x, y and z if you want to do Scrum.”
In the last year we’ve seen books by Highsmith (Agile Software Development Ecosystems) and Cockburn (Agile Software Development) that represent the second wave of agile software development–that of learning to think agilely rather than following a prescribed set of agile rules. Mary and Tom Poppendieck’s book is the latest and best book for teaching how to think agilely.
The book contains 22 “thinking tools.” The thinking tools are drawn from the world of lean manufacturing where they have helped improve product delivery speed, quality and cost. Each tool is presented as a guideline. Each thinking tool is described with enough detail that you can put it into practice; but, more importantly, the reasons supporting each are made explicit. So, instead of simply reading that it is good to “deliver as fast as possible” we learn how rapid delivery is supported by pull systems (where work is pulled into the current step from the prior step), how queuing theory helps us identify bottlenecks, and how to calculate the cost of delay (to see which bottlenecks are worth removing).
This book is the perfect blend of highly actionable instructions and descriptions of why those actions work. I highly recommend this book to anyone who wishes to improve his or her software development process. The authors' ideas are applicable both to projects using agile approaches today and to more traditional, plan-driven projects.