Implementing Lean Software Development: From Concept to Cash
This new book draws on the Poppendiecks' unparalleled experience helping development organizations optimize the entire software value stream. You'll discover the right questions to ask, the key issues to focus on, and techniques proven to work. The authors present case studies from leading-edge software organizations, and offer practical exercises for jumpstarting your own Lean initiatives.
- Managing to extend, nourish, and leverage agile practices
- Building true development teams, not just groups
- Driving quality through rapid feedback and detailed discipline
- Making decisions Just-in-Time, but no later
- Delivering fast: How PatientKeeper delivers 45 rock-solid releases per year
- Making tradeoffs that really satisfy customers
Review By: Daniel Campanelli
01/04/2012
As the title implies, this is a book about implementing lean methods into software development. The main idea of this book seems to be: Organizations that can deliver value to the customer at minimal cost will prosper.
A sequel to the authors’ Lean Software Development: An Agile Toolkit, this book begins with a recap of the seven principles of lean development:
- Eliminate Waste—Only code what is necessary
- Build Quality In—Prevent defects rather than fix them
- Create Knowledge—Document best practices
- Defer Commitment—Keep your options open until a decision is absolutely needed
- Deliver Fast—Reduce cycle time
- Respect People—Treat everyone with dignity
- Optimize the Whole—Measure the whole cycle from concept to cash
The authors capture the reader's attention immediately by dispelling some of the current myths regarding software development. They devote the second and third chapters to the concepts of value and waste. Thereafter, they present their arguments on how to implement their agile principles with regards to teamwork, employee empowerment, corporate culture, and systematic management.
Some of the ideas presented are a radical departure from traditional systems-development practices and are rather diverse in scope. However, the authors’ arguments are well-supported with references to organizations that have successfully used lean principles in manufacturing and software development, including Toyota, 3M, and Google. The authors also use personal anecdotes to illustrate key points. Each chapter concludes with a “Try This” section, which gives the reader specific tasks to help assess the implementation of the ideas in specific organizations--a refreshing departure from the typical questions that simply ask the reader to repeat the subject matter presented in the chapter.
The topics are high-impact, thought-provoking guidelines to be evaluated and adopted as the unique needs of specific organizations may dictate. For those of us who have been weaned on the waterfall approach to software development, some of these ideas are revolutionary. For instance, in the early chapters the authors suggest adopting an empirical school of thought by letting the product evolve after the concept is established, rather than adhering to a deterministic school of thought (i.e., trying to develop a complete specification up front).
Also impressive is the scope of the material presented in the book. From a management perspective, the authors speak of organizational improvements by reducing cycle time, measuring the whole process, breaking down barriers between departments, forming strategic alliances, etc. They then turn their attention to employee empowerment by discussing such things as sharing knowledge, training employees in formal problem solving, testing often, and providing frequent feedback.
After completing the book, implementing all of the ideas seems like an overwhelming task. However, as the authors point out, if the organization stays focused on the customer, everything else falls into place.
This book discusses some of the more salient issues regarding implementation of agile principles into software development. The writing style is easy to follow, but the substance is state of the art, with references to management science, quality theory, and the authors’ personal work experiences. The book is a must read for any software professional.