Lean production, which has radically benefited traditional manufacturing, can greatly improve the software industry with similar methods and results. This transformation is possible because the same overarching principles that apply in other industries work equally well in software development.
The software industry follows the same industrial concepts of production as those applied in manufacturing; however, the software industry perceives itself as being fundamentally different and has largely ignored what other industries have gained through the application of lean techniques.
Lean Software Strategies: Proven Techniques for Managers and Developers, shows how the most advanced concepts of lean production can be applied to software development and how current software development practices are inadequate.
Written for software engineers, developers, and leaders who need help creating lean software processes and executing genuinely lean projects, this book draws on the personal experiences of the two authors as well as research on various software companies applying lean production to software development programs.
Review By: Lisa Crispin 11/17/2006
Having two authors--one writing as a practitioner (albeit highly educated and experienced), and the other from an academic and research angle--makes "Lean Software Strategies" unique to my experience. For someone like me, who likes to speed read and get the salient points, it slows things down. However, the academic view and hard data to back up the recommended practices gives more weight to the potential success of implementing these practices.
Although the book requires careful reading and thinking, it is extremely well-written with liberal use of real-world examples. The authors handle well the change in voice from practitioner to academician and back.
They raise an excellent question: If lean principles can be applied to software development in a way that makes us significantly more productive, why aren't more teams using them? We all know that big changes are needed in the software industry, and these authors make a succinct and persuasive case for why lean production is the way to go.
The book is well organized, beginning with an exploration of the software industry. The authors explain craft, mass and lean production, and whether each is suited to software. Part one explains five principles of lean production, which mostly relate to value--what really matters to the customer. The authors examine different software industrial paradigms, including CMM and XP, and assess how those align or conflict with lean. Parts two and three provide a detailed manual on building lean software, with a lot of emphasis on eliciting customer needs and understanding customer value. Part four gives several interesting case studies of actual software producers, including Microsoft, Timberline, and an XP project, ending with a roadmap for implementing lean in your own organization.
Lean puts more effort into gathering and analyzing customer values than even my successful agile team does. I can't help but agree with the wisdom of emphasizing the strategic goals of development, such as understanding the business and what the customers want, over the tactical parts of actual code production.
“Lean Software Strategies” includes many helpful examples and analogies, although most are from the aerospace industry and hard for me to wrap my brain around. It is a difficult but valuable read, though I think it would go easier for experienced programmers. As an agile practitioner I can't help being skeptical of some of the book's practices, such as using formal requirements as a basis for creating test cases. The authors clearly have used them successfully, so I intend to keep studying the book and trying the practices once I better understand them.
A lot of the material in the book is commonsense. For example, having a lot of specialization has always seemed intuitively counterproductive to me. The authors’ discussion on how CMM’s use of division of labor sets up an adversarial approach to accountability was enlightening. I also enjoyed their discussion of tools--how the right tools, especially custom tools, improve the flow of the project. But teams shouldn't emphasize tools over delivering customer value.
I appreciate that the book compares XP and lean, but I don't agree with the authors’ observation that XP doesn't scale. I've worked on successful, large XP projects and know of many more from other publications. XP can be scaled to large projects, and thus is more in alignment with lean than craft production.
I've previously read “Lean Software Development: An Agile Toolkit” by Mary and Tom Poppendieck. I found it to be easy to read and understand, more practical, and immediately applicable. “Lean Software Strategies” is a different book and probably aimed at a broader audience. Yet, it's worth investing the time to read both books.
I think my agile team does a great job of delivering business value, but after reading this book, I realize lean principles might help us accomplish much more. This book is a soup-to-nuts explanation of lean production, why it should be applied to software production, and how to apply it.