Learning from Lean Software Development for Manufacturing

Written by Tom Villiers

Senior Manufacturing Manager at Gogo Business Aviation

When people hear the term Lean, they tend to think manufacturing and more specifically Lean manufacturing and the production process developed by Toyota which revolutionized the automobile manufacturing process. In Lean Thinking, the bestselling book by James P. Womack and Daniel T. Jones, they enunciated the 5 principles of Lean which is the pillar of the Toyota Production System (TPS).

The 5 Principles of Lean are:            

  1. Specify Value

  2. Identify Value Streams

  3. Create Flow

  4. Leverage Pull

  5. Seek Perfection

Our modern world runs on software. Software development teams today are rethinking the traditional waterfall approach to development. The waterfall model is a structured sequential design process, in which progress is seen as flowing steadily downward like a waterfall through the various  product development  phases of conception, launch, analysis, planning, testing, implementation and maintenance. For operations and supply chain professionals, the waterfall approach to software development is very much like the traditional push process in manufacturing.


*Peter Kemp / Paul Smith.

Waterfall Model of System Development

The waterfall development model is a highly structured process in which changes are costly and are nearly impossible to implement in a timely fashion. This can be frustrating to the customer and the end users. Think of the bug fixes and various software releases we constantly are inundated with on our PC’s and/or smartphones.

In order to efficiently design and develop increasingly complex and sophisticated software more organizations today are utilizing the principles of lean in their development process. The Lean software development process commonly known as the Agile Development/Scaled Agile methodology incorporates the following seven principles as articulated in Tom and Mary Poppenieck book Lean Mindset...

7 Principles:

1. Eliminate Waste

In software development, as in manufacturing, for every valued-added activity, there are activities that are necessary but do not add value in their own right. For example, a project iteration that develops an increment of working software requires planning and configuration management (setup), a release plan and a demonstration to the customer (a delivery activity), and teardown or reconfiguration (a cleanup activity). These costs are considered waste in Lean.

Lean software development methods focus on fast, cheap, and quick planning methods, and effective low overhead coordination mechanisms, such as visual controls in virtual Kanban systems. They also encourage automated testing and automated deployment to reduce the transaction costs of delivery.

2. Build Quality In

In Lean literature, the term kaizen means “continuous improvement” and a kaizen event is the act of making a change to a process or tool that hopefully results in an improvement.

Multiple Kaizen events are conducted during Lean Software Development. Each of these Kaizen activities are designed to stimulate a conversation about problems that adversely affect capability and consequently the ability to deliver against demand. The essence of kaizen in a knowledge work environment is that it initiates conversations about problems from teams with different skillsets in order to resolve problems.

3. Create Knowledge

The Lean Software & Systems community uses statistical methods such as statistical process control and histograms to understand system capability. They also use the following Lean tools:

  • Theory of Constraints to understand bottlenecks.

  • An analysis of economic costs in the form of tasks performed to merely coordinate, set up, deliver, or clean up after customer-valued product or services are created.

  • Real Option Theory, which seeks to apply financial risk management to real-world decision making.

4. Defer Commitment

Project teams may schedule regular meetings to reflect on recent performance. These are often done after specific project deliverables are complete or after time-boxed increments of development known as iterations or sprints in Agile software development.

Retrospectives typically use an anecdotal approach to reflection by asking questions like “what went well?,” “what would we do differently?,” and, “what should we stop doing?”

Retrospectives typically produce a backlog of suggestions for kaizen events.

5. Deliver Fast

Lean Software Development requires that work that is undertaken in 2 weeks or fewer increments which is referred to as iterations. This is equivalent to single-piece flow process in a manufacturing environment.

6. Respect People

Peter Drucker’s definition of knowledge work states, "Workers are knowledge workers if they are more knowledgeable about the work they perform than their bosses. This creates the implication that team members are best placed to make decisions about how to perform work and how to modify processes to improve how work is performed. So, the voice of the team member should be respected. Workers should be empowered to self-organize to complete work and achieve desired outcomes. They should also be empowered to suggest and implement process improvement opportunities or “kaizen events.

7. Optimize the Whole

A Lean Systems Thinking and Design Approach require that we consider the demands on the system made by both internal and external stakeholders. It is important that the demand requirements are fully analyzed and the system has the capability to deliver the expected results. We must assure that desired outcomes meet our customer’s expectations. One of the key actions that assure the development team is delivering the required results is the monthly operations review. The Operations Review is usually a one to two hour meeting where representatives from the various departments gather (usually as a stand-up meeting) to evaluate if the development team is delivering the expected results.

Lean Software Development is still an emerging field and as we move into the Internet of Things (IOT) we can expect to see more of the Lean concepts that were first developed for manufacturing use to be expanded and employed in both the private and public sectors.  


  1. Anderson, David J., Kanban: Successful Evolutionary Change for your Technology Business, Blue Hole Press, 2010

  2. Anderson, David J., Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall PTR, 2003

  3. Womack, James P., and Daniel T. Jones, Lean Thinking: Banish Waste and Create Wealth in your Corporation, 2nd Edition, Free Press, 2003

  4. Beck, Kent et al, The Manifesto for Agile Software Development, 2001 http://www.agilemanifesto.org/

  5. Highsmith, James A., Agile Software Development Ecosystems, Addison Wesley, 2002

  6. Poppendieck, Mary and Tom Poppendieck, Lean Software Development: An Agile Toolkit, Addison Wesely, 2003

  7. Poppendieck, Mary and Tom Poppendieck, Leading Lean Software Development: Results are not the Point, Addison Wesley, 2009

  8. Reinertsen, Donald G., The Principles of Product Development Flow: Second Generation Lean Product Development, Celeritas Publishing, 2009

  9. Anderson, David J., Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall PTR, 2003

  10. Shalloway, Alan, and Guy Beaver and James R. Trott, Lean-Agile Software Development: Achieving Enterprise Agility, Addison Wesley, 2009

  11. Larman, Craig and Bas Vodde, Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-scale Scrum, Addison Wesley Professional, 2008

  12. Practices for Scaling Lean & Agile Development: Large, Multisite, and Offshore Product Development with Large-Scale Scrum, Addison Wesley Professional, 2010

  13. Coplien, James O. and Gertrud Bjornvig, Lean Architecture: for Agile Software Development, Wiley, 2010