This book examines the lean manufacturing approach pioneered by Toyota and how it can apply to software development. Lean boils down to seven principles: eliminate waste, build quality in, create knowledge, defer commitment, deliver fast, respect people, and optimize the whole. Many of these are familiar to agile proponents, but not all. Of particular interest to me was the last principle, optimize the whole. Developers have a strong tendency to suboptimize a problem, to “perfect” a small block of code without considering the bigger picture. Optimizing the whole means that instead of looking at an individual step you look at the entire value stream. When combined with a stop-the-line mentality that forces teams to solve problems rather than work around them, there is a lot of potential for not only higher throughput but for higher quality.
Another interesting idea presented here was set-based design: multiple teams solving the same problems at the same time in different ways. The thought here is you can have several groups all tackle the same issue, each taking a different approach or accepting a different amount of risk. They all work simultaneously, and at the end the best one of the solutions can be taken forward. I’ve never worked at a company that was willing to put this many resources towards a single problem but it is an intriguing concept.
Overall, a good book that any agile enthusiast should read. The writing isn’t as compelling as Tabeka or as interesting as Angus, but still well worth your time. Another winner from the Addison-Wesley Signature Series of books.
Paris, France, July 1785.