Flow, Lean, and the Theory of Constraints

This page provides an overview of Flow, Lean, and the Theory of constraints for both Al Shalloway’s Amplio Development: The Path to Effective Lean-Agile Teams and to his and Paula Stewart’s Being a Value Creation Coach: Leading by Coaching People to Add Value to Themselves and Others.

Books have been written on each of these topics so this page merely lists some of the highlights of each of these methods.

All of these methods have a lot in common:

  • They are based on systems thinking. 
  • They have originated outside of software development but are very pertinent to it in the same way physics is not about apples falling on peoples’ heads, it’s just where it started.
  • They incorporate learning methods and focus on improving the environment within which people work. 
  • They are about creating value, not keeping people productive.


 People often refer to “flow” as a state people are in. But the “flow” being referred to is the flow of value. When progress on work is delayed the delay causes waste for a variety of reasons. If the delay is due to someone having to wait on someone else, bad multitasking will happen. This, of course, lowers their efficiency. But delays in workflow cause three other problems. The first, obviously, is a delay of value delivery. But delay in feedback is also a result and that tends to cause waste. Delays in workflow also cause waste simply because requirements and other work often need to be redone.

Flow tells us to focus on smooth delivery and that we must manage our queues (where work waits) to be efficient. 

The best resource to learn about Flow is Don Reinertsen’s Principles of Product Development Flow: 2nd Generation Lean Product Development



Lean is about learning how to increase the value delivered to our clients. Lean is a multifaceted approach integrating:

  • getting clarity on what value is to our customers
  • improving workflows by removing delays or work that don’t add value
  • creating a deeper understanding of how to work better.

Lean provides its own management philosophy as well – a focus on the environment people find themselves in. Management’s role mirrors Deming’s belief that management’s job is to create excellent environments for people. Lean is a combination of:

  • learning
  • a focus on creating customer value
  • “just-in-time” meaning to eliminate delays between steps
  • managing work in process by using pull methods – that is, instead of planning ahead people pull work when they are ready for the next item
  • “stop-the-line” or “build quality in” meaning that when errors are found we not only fix them then and there, but we look for what in the system caused them and fix that.

Lean is often misunderstood to be focused on eliminating waste and improving manufacturing workflows. The reason for this is that people often believe Lean is about improving manufacturing. But Lean is no more about manufacturing than physics is about apples falling on people’s heads. It’s just where it came from.

The best book to be introduced to Lean is Lean Thinking: Banish Waste and Create Wealth in Your Corporation 2nd Edition, by James P. Womack, Daniel T. Jones. 

In this book Womack and Jones describe Lean as a combination of:

  • Value
  • Value Stream
  • Flow
  • Pull
  • Perfection

These concepts can be applied most everywhere. They represent:

  • Value – understand what is of value to the customer.
  • Value stream – this really refers to the process by which an idea gets created. Lean focuses on removing non-value added work and delays in the workflow
  • Pull is a technique used to avoid overloaded those doing the work
  • Perfection is an attitude to keep improving.

While these concepts may be implemented differently in different situations, they are fairly universally applicable. Lean has been successfully used in product development, hospital management, software development, and many other contexts.

This chapter introduces lean as five different levels of understanding.

  1. Lean from a practice point of view
  2. Lean from manufacturing – eliminate waste
  3. Lean as a systems thinking approach
  4. Lean as a management approach
  5. Lean as a continuous education approach

Lean From a Practice Point of View

Lean has many practices that you can take and apply and get improvements. These include:

  • managing work in process (“just in time”)
  • focus on quality (“build quality in”)
  • have a focus on finishing

But merely putting Lean practices into an Agile approach makes that approach no more lean than putting a Daily Scrum into a waterfall process would make it Scrum.

This is a very shallow view of what Lean is.

Lean is not about practices. It is much deeper than that.

Lean from manufacturing

The Toyota Production System, later called Lean, focuses on three types of causes of error:

  • Muda (waste)
  • Mura (unevenness)
  • Muri (overburden)

These three, however, are tied to manufacturing which is a process where you want to:

  • eliminate unnecessary steps
  • lower inventory
  • reduce variation
  • drive down costs

This has people look at eliminating the seven wastes identified in Lean manufacturing:

  1. Transportation
  2. Inventory
  3. Motion
  4. Waiting
  5. Overproduction
  6. Overprocessing
  7. Defects.

These can be translated into wastes in product development as shown in the table below.




Product Development

1. Transportation

Physical cost. 

Cost of lost knowledge

2. Inventory

Physical cost and risk items are defective but manufacturing continues.

Too much work in process which delays feedback and errors cascade.

3. Motion

Extra movement of people, equipment, machinery, … which cause lost effort and time. 

Handoffs have risk of losing knowledge and increasing misunderstandings. 

4. Waiting

Delays the delivery of the item being products. 

Delays delivery of item but more significantly increases the amount of work to be done since the delay is typically caused by multi-tasking and people forget what they were doing.

5. Overproduction

Creating more items than we need. 

Creating more features than necessary.

6. Overprocessing

Doing more work than necessary.

Doing more than is needed to create equivalent quality.

7. Defects

Cost of the defect.

Cost of the defect.

While the seven wastes of Lean manufacturing do have counterparts in Lean product development, it is much more effective to get to the underlying principle on which they rest than to translate directly from manufacturing to development. 

In manufacturing we’re trying to lower costs because value (the item being produced) has been set. In product development we focus on innovation so we can create more value

While the mantra in manufacturing may be “eliminate waste” it’s not as simple as that in product development. You can’t see the waste on a computer while a product is being developed. You can only see it while it is being demonstrated. The software world is not like the physical world. Product development is not like manufacturing.

In the product development world we want to avoid creating the waste as much as possible. We can do this with quick feedback and learning cycles using the levels that follow.

Lean as a systems thinking approach

The most salient aspect of systems thinking is that the system causes most of the errors. It differentiates because common cause and special cause errors. A good lean manager will look to the system to find what’s causing errors before blaming particular people or roles.

Lean as a management approach

Taiichi Ohno often remarked to his managers “if I come back in 30 days and you are doing the same thing then you have failed.” Lean management is based on Deming’s belief that you have to attend to the system people are working in.

Lean as a continuous education approach

Through learning you can improve the way you work.

You eliminate delays in the workflow so that you can get feedback and understand what’s happening in the complex world of knowledge work.

Quick feedback unobscures what we can’t see due to complexity.

It reduces risk. Eliminates waste. Increases the opportunity for innovation.

Eliminating waste is a by-product of Lean-thinking in knowledge work. In manufacturing it was a goal because we knew what to do and were trying to eliminate variation. This is not true in knowledge work.

Lean provides a means to do this that can be applied everywhere value creation is taking place. Lean’s essence can be said to be value, value stream, flow, pull, perfection. This creates the context for Lean-Thinking.

To apply it in product development you have to find the first principles of knowledge work. Too many people look at Lean practices and confuse them for principles.

Underneath all of this Lean you must have a drive to improve.


The Theory of Constraints

There is a considerable amount more to theory of constraints than merely looking for the constraint and fixing it. But this does emphasize that focus on global improvements and that improving areas that are not limiting value delivery are not critical to fix. The “constraint” isn’t necessarily in one physical place, but can be conceptually what’s happening. For example, not having an intake process can cause a lot of overloading and this is often a significant constraint in organizations. 

An easy introduction to Theory of Constraints is Goldratt’s Rules of Flow Kindle Edition by Efrat Goldratt-Ashlag.

A more in depth book would be Steve Tendon’s The Book of TameFlow: Theory of Constraints Applied to Knowledge-Work Management