InfoQ

Article

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

Posted by Mary Poppendieck and Tom Poppendieck on Sep 18, 2006 12:00 AM

Community
Agile
Topics
Delivering Value,
Methodologies
Tags
Continuous Improvement,
Book,
Lean,
Introducing Agile

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. 

RelatedVendorContent

IBM Agile Development eKit: Free Articles, Expert Q&A, Educational Resources

Agile Tool Evaluation Guide

The Agile Business Analyst: Skills and Techniques needed for Agile

IBM Web 2.0 Developer eKit: Free Tutorials, Webcasts, Whitepapers

IBM software architect eKit: Grady Booch podcast, whitepapers, articles

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

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

6 comments

Reply

Broken link by Eric Torreborre Posted Sep 18, 2006 11:13 AM
Re: Broken link by Deborah Hartmann Posted Sep 18, 2006 12:14 PM
Re: Broken link by Eric Torreborre Posted Sep 18, 2006 2:02 PM
Re: Broken link by Deborah Hartmann Posted Sep 18, 2006 7:40 PM
ERROR : broken link even today by anjan bacchu Posted Sep 19, 2006 4:13 PM
Re: ERROR : broken link even today by Deborah Hartmann Posted Sep 20, 2006 7:00 AM
  1. Back to top

    Broken link

    Sep 18, 2006 11:13 AM by Eric Torreborre

    Hi, the link to the sample chapter is broken,... Thanks, Eric.

  2. Back to top

    Re: Broken link

    Sep 18, 2006 12:14 PM by Deborah Hartmann

    Links work for me... what browser are you using? Pls send further details to me at deborah a t infoq d o t com - I'll see what I can do. Thanks for letting us know.

  3. Back to top

    Re: Broken link

    Sep 18, 2006 2:02 PM by Eric Torreborre

    Hi Deborah, I tried this link in both Firefox and IE http://www.infoq.com/resource/news/poppendieck-implementing-lean/en/resources/poppendieck_ch02.pdf and got a: "Oops! The server couldn't find the requested information" message. Anyway, I can wait for the book, I have pre-ordered it 3 months ago,...

  4. Back to top

    Re: Broken link

    Sep 18, 2006 7:40 PM by Deborah Hartmann

    Solved. Thanks for your patience.

  5. Back to top

    ERROR : broken link even today

    Sep 19, 2006 4:13 PM by anjan bacchu

    http://www.infoq.com/resource/news/poppendieck-implementing-lean/en/resources/poppendieck_ch02.pdf is broken. Monitoring comment logs for strings like broken/error can make it easy to manage forums like these. BR, ~A

  6. Back to top

    Re: ERROR : broken link even today

    Sep 20, 2006 7:00 AM by Deborah Hartmann

    Uh oh, there were two links, only one got fixed. Done.

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.