BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Book Excerpt: Implementing Lean Software Development: From Concept to Cash

Book Excerpt: Implementing Lean Software Development: From Concept to Cash

Bookmarks

In 2003, Mary and Tom Poppendieck's Lean Software Development introduced development techniques that adapt the principles of Lean manufacturing and logistics (like the Toyota Production system, which revolutionized the automobile industry) for use in software development.  Now their second book, Implementing Lean Software Development: From Concept to Cash, offers a companion guide: a blend of history, theory, and practice which shows exactly how to implement Lean software development, hands-on. 

As always, the Poppendiecks' aim is to allow organizations to deliver unprecedented agility and value. This book is written for anyone who wants a more effective development processes - managers, project leaders, senior developers, and architects in enterprise IT and software companies alike.

For those unfamiliar with their first book, Lean Software Development: An Agile Toolkit for Software Development Managers, the authors used well-proven lean concepts from the 1980’s and 1990’s to help explain why agile methods are a very effective approach to software development, and won the Jolt Software Development Productivity Award in 2004  The book really is a toolkit - offering basic ideas and practices, building blocks which a team can use to incrementally build an exceptional process over time. 


The InfoQ book excerpt from the new book
is
Chapter 2: Principles
, covering the 7 principles underlying both books:

The 7 Principles of Lean Software Development:

  1. Eliminate Waste
    The three biggest wastes in software development are: Extra Features, Churn, Crossing Organizational Boundaries.
  2. Build Quality In
    If you routinely find defects in your verification process, your process is defective.
  3. Create Knowledge
    Planning is useful. Learning is essential. Predictable performance is driven by feedback.
  4. Defer Commitment
    Abolish the idea that it is a good idea to start development with a complete specification.
  5. Deliver Fast
    Lists and queues are buffers between organizations that simply slow things down.
  6. Respect People
    Engaged, thinking people provide the most sustainable competitive advantage.
  7. Optimize the Whole
    Brilliant products emerge from a unique combination of opportunity and technology.

The new book draws on the their extensive experience helping development organizations optimize the entire software value stream, an important approach which Mary practiced years ago at 3M, where software development is seen as as simply one part of the entire product development process, or "value stream". They present the right questions to ask, the key issues to focus on, and techniques proven to work.

The book's preface summarizes its content: the first chapter of this book reviews the history of lean, and the second chapter reviews the seven principles of lean software development. These are followed by chapters on value, waste, speed, people, knowledge, quality, partners, and the journey ahead. Each of these eight chapters begins with a story that illustrates how one organization dealt with the issue at hand, for example: How PatientKeeper delivers 45 rock-solid releases per year. This is followed by a discussion of key topics the authors have found to be important, along with short stories that illustrate the topic and answers to typical questions they often hear. Each chapter ends with a set of exercises that helps practitioners explore the topics more deeply.

In the exclusive InfoQ book excerpt, Chapter 2: Principles, the authors look at how Lean practices from manufacturing and supply chain management don’t translate directly to software development, because both software and development are individually quite different than operations and logistics.  They look at where these disciplines differ, and how they needed to adapt Lean's basic ideas to the characteristics of software development. 

They then go on to illustrate each of the seven principles they developed: Eliminate Waste, Build Quality In, Create Knowledge, Defer Commitment, Deliver Fast, Respect People, and ending with these illustrations of Principle 7: Optimize the Whole:

Software development is legendary for its tendency to suboptimize.

Vicious Circle No. 1 (of course, this would never happen at your company):
A customer wants some new features, “yesterday.” Developers hear: Get it done fast, at all costs!
  • Result: Sloppy changes are made to the code base.
  • Result: Complexity of the code base increases.
  • Result: Number of defects in the code base increases.
  • Result: There is an exponential increase in time to add features.
Vicious Circle No. 2 (and this wouldn’t happen at your company either):
Testing is overloaded with work.
  • Result: Testing occurs long after coding.
  • Result: Developers don’t get immediate feedback.
  • Result: Developers create more defects.

The authors point out that a lean organization optimizes the whole value stream, from the time it receives an order to address a customer need until software is deployed and the need is addressed.  They point out that, if an organization focuses on optimizing something less than the entire value stream, it's almost guaranteed that the overall value stream will suffer.  This is a major theme of the book, which offers the tools to root out sub-optimization and other forms of inefficient process.

Note: for those who are members, this book is now available on O'Reilly's Safari Online.


About the Authors

Mary Poppendieck is a popular writer and speaker in the software world. She has been in the Information Technology industry for thirty years, managing solutions for companies in several disciplines, including supply chain management, manufacturing systems, and digital media. As a seasoned leader in both operations and new product development, she brings a practical, customer-focused approach to software development problems.

Mary first encountered the Toyota Production System in her role as Information Systems Manager in a video tape manufacturing plant, a process which later became known as Lean Production. She implemented one of the first Just-in-Time systems in 3M, resulting in dramatic improvements in the plant's performance.

Tom Poppendieck has 25 years of experience in computing. His early work was in IT infrastructure, product development, and manufacturing support, and evolved to consulting project assignments in healthcare, logistics, mortgage banking, and travel services.

Tom is an enterprise analyst and architect, and an agile process mentor. He focuses on identifying real business value and enabling product teams to realize that value. Tom specializes in understanding customer processes and in effective collaboration of customer, development and support specialists to maximize development efficiency, system flexibility, and business value.  He led the development of a world-class product data management practice for a major commercial avionics manufacturer that reduced design to production transition efforts from 6 months to 6 weeks.


This material has been posted by permission of Pearson Education. It is taken from the publication Implementing Lean Software Development by Mary Poppendieck and Tom Poppendieck, ©2007 Pearson Education. ISBN: 0-321-43738-1


Related content: Mary and Tom Poppendieck Discuss Their Next Book

Rate this Article

Adoption
Style

BT