Flow, Lean, and the Theory of Constraints
This page provides an overview of Flow, Lean, and the Theory of constraints.
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.
Together these represent a paradigm shift. One that many are not aware of
People complain about management using velocity as a measure of how fast teams are going in an attempt to get them to go faster. That’s not the problem.
And yes, it is A problem. But they are missing a much bigger one.
The problem is not that they are using velocity, the problem is they are trying to go faster.
Trying to go faster is the wrong paradigm. And I’m not talking about going slower to go faster. That’s also a less than ideal way of thinking.
The thinking behind Flow, Lean, and the Theory of Constraints is not speed. The idea is to manage your queues to achieve flow. You don’t try to go faster. You try to avoid large queues which create multi-tasking and waste due to slow feedback.
Trying to go faster, even thinking about it, is the wrong paradigm.
The problem trying to do this is, as Edgar Schein remarks, “We don’t think and talk about what we see, we see what we are able to thin and talk about.” So when someone is talking about going faster they are not talking about what they should be talking about – achieving flow.
While you want to deliver value quicker, you don’t get there by going faster, you get there by not creating waste. This enables you to get done quicker by having less work to do to get done.
We also don’t want to be talking about getting more done in less time. We’re not getting more done. We’re just not wasting what we do on created waste. We’re only working on valuable things. So more value gets done quickly. And if we build in small units of value. We get done even quicker. All by going at our normal pace.
When you shift into this paradigm, what looks difficult becomes a lot easier.
Flow
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
Lean is about learning how to increase the value delivered to clients quicker with less waste involved, resulting in a lower cost as well. Lean is based on Deming’s management philosophy with a few key concepts added. These are:
- attending to delays in the workflow, hence the mantra “just-in-time”
- building quality in, hence “stop-the-line” when something goes wrong
- automating quality, hence “autonomation” which is automation with a human touch
Lean focuses on:
- 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
- managing work in process with “just-in-time” eliminate delays between steps and achieve quick feedback
- 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 limited to 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
- Flow is the core of Lean productivity. In many ways it is more senior to Lean from a workflow management approach. Note Don Reinertsen’s book “Principles of Product Development Flow: 2nd Generation Lean Product Development” has Lean in the subtitle.
- 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 section introduces lean as five different levels of understanding.
- Lean from a practice point of view
- Lean from manufacturing – eliminate waste
- Lean as a systems thinking approach
- Lean as a management approach
- 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:
- Transportation
- Inventory
- Motion
- Waiting
- Overproduction
- Overprocessing
- Defects.
These can be translated into wastes in product development as shown in the table below.
| Waste | Manufacturing | 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 the 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.
Common Myths of Lean Restated
1. Lean is not about slowing down to get more done.
2. Nor is it about eliminating waste.
3. Nor is it about doing more with less.
4. Nor is it doing the low-hanging fruit first.
1. Lean is not about slowing down to get more done.
It is about pausing (stopping even) to reflect on:
– am I building the thing we think is right?
– questioning what the right thing is.
– am I following the approach to building that I think is the best approach to follow?
– questioning the approach I’m taking
Note that the questioning of what the right thing is and the approach takes place at a slower cadence. The others should be almost continuous.
2. Lean is not about eliminating waste.
Lean is about eliminating the creation of waste. The pausing step above enables us to avoid creating waste in the first place.
3. Lean is not about doing more with less.
It is about not working on things that aren’t useful. Like misunderstood requirements, running experiments when inherent simplicity would tell you what to do, working on larger items than what could be delivered sooner, by not getting feedback because you’re waiting for a sprint to end.
The end result is that more of what we create is of value.
Lean is about creating more value with less waste with the same people.
These may sound the same but they are quite different. When you appreciate the difference, you will be more effective.
4. Lean is not about doing low-hanging fruit.
Kaizen is a part of Lean improvement. Kaizen is doing a sequence of small steps. But this doesn’t necessarily mean taking easy steps. Instead, one must take small steps in the context of the bigger picture. We want to look towards what action sets up the next actions.
Lean and the Triple Constraints
Toyota disproved the validity of “triple constraint” thinking. By focusing on quality to decrease the amount of effort taken to get work done. This enables quicker value of high quality at a lower cost. Al Shalloway’s understanding of Lean is what inspired him and Tom Gilb to create the idea of the Penta.
The Theory of Constraints
Most people think of the 5 focusing steps when they think of the Theory of Constraints. The intention is to find what is constraining the value creation in the organization and focus on it. This is consistent with the theories of Flow and Lean.
The real value ToC adds to Flow and Lean are its core assumptions:
- Everything within a system is connected by cause and effect relationships. Identification of the causes leads us to converge onto an apparent core problem/contradiction/conflict. Manifestation: Search for a logical reasoning. The use of Cause and Effect relationships to structure our thinking, record our analysis and understand the suggested solution for any problem (based on Convergence). This is based on “inherent simplicity.”
- All contradictions can be resolved without compromise – our level of understanding and our assumptions hold the contradiction in place. A compromise is not usually a win-win solution. Manifestation: Resolve conflicts. A strong belief that there should be no conceptual conflict within our reality – hence – striving to find a win-win solution to any perceived “no solution situation” (Local & Global)
- There is no resistance to improvement – people do not embrace change because we have not brought them to see the win for them. Manifestation: Seek for collaboration and contribution. The use of TOC logical tools logic to communicate to ourselves and thereafter to the team with the view of working together to achieve the desired improvement (based on Respect)
Inherent Simplicity
Inherent simplicity is the exposition of core belief #1 stated above. It provides a foundation for logically looking at the system being improved.
Inherent simplicity explained using quotes from The Choice by Eli Goldratt and Efrat Goldratt-Ashlag
“What I mean by Inherent Simplicity is that reality, any part of reality, is governed by very few elements, and that any existing conflict can be eliminated. If we take that as a given, as absolutely correct in every situation, we’ll find ourselves thinking clearly.”
“If we dive deep enough we’ll find that there are very few elements at the base – the root causes – which through cause and effect connections are governing the whole system.”
”The biggest obstacle is that people grasp reality as complex when actually is surprisingly simple.”
“When I left physics and started to deal with organizations, I was astonished to see that the attitude of most people is that the more sophisticated something is, the more respectable it is. This ridiculous fascination with sophistication also causes people to altogether avoid using their brain power. You see, since complicated solutions never work, people tell themselves that they don’t know enough. That a lot of detailed knowledge is needed before one can even attempt to understand an environment.”
“The key for thinking like a true scientist is the acceptance that any real life situation, no matter how complex it initially looks, once understood, is actually embarrassingly simple. Moreover, if the situation is based on human interactions, you probably already have enough knowledge to begin with.”
(from his daughter) “he doesn’t claim that reality is not overwhelmingly complex; he acknowledges it in full. But what he says is that there is a way to realize that from another more important aspect, it is exceedingly simple.”
“Okay, let’s take it one step at a time. We already covered the first two obstacles to thinking clearly—the perception that reality is complex, &the tendency to accept conflicts as a given. What if I tell you that deeper understanding of the extent to which reality is harmonious helps a lot in overcoming the third obstacle that stands in the way of thinking clearly?
“The first and most profound obstacle is that people believe that reality is complex, and therefore they are looking for sophisticated explanations for complicated solutions. Do you understand how devastating this is?”
“The hardest thing to do is to struggle to find an answer to a problem when we believe that there is a high chance that it doesn’t have an answer; it is so easy to give up. That is why Father recommends starting with the conviction that a better solution exists for sure.”
“The difficulty is that if I’m not sure, really sure that a second effect does exist, I might stay inside the box; it is always safer to stay within the comfortable boundaries of a box than to jump out into the unknown. Since the other effect is not within that box, I will not find it. I’ll give up searching and remain stuck with a tautology (circular logic).”
“A comfort zone has less to do with control and more to do with knowledge.”
How Amplio Uses the Theory of Constraints
There is a considerable amount more to the Theory of Constraints than merely looking for the constraint and fixing it. The mindset of focusing on a constraint that affects the entire system is invaluable. But it is also covered by the theories of Flow and Lean. Many ToC experts insist on focusing on only the constraint. The logic is that fixing things other than the system constraint will not result in increased delivery of value and is often (even usually) distracting.
When one studies other successful companies, however, one sees that they work on overall systemic improvement. There is value in this. First, what is not a constraint now may very well become one in the near future. When one takes a system perspective and understands how the system is working, one can often see what the next constraint will be. This is not often because of what is present in the current organization but by basing this diagnosis on what’s been seen in similar situations.
It’s important not to distract efforts from the primary constraint when working on these secondary constraints. Improving throughout the value stream reduces waste and creates capacity that can now be used on the constraint as well.
Another reason is that we want everyone involved to have a sense of purpose and to be learning. While greater value delivered may not be being created by working on secondary constraints, people are learning and increasing their sense of purpose.
Thinking about constraints in flow sometimes has us think the problem is where the constraint is. This is not always the case. For example, not having an intake process can cause a lot of overloading and this is often a significant constraint in organizations.
Other Aspects of the Theory of Constraints
There are many other aspects to the Theory of Constraints. One of particular interest is the Evaporating Cloud technique espoused in It’s Not Luck by Dr. Goldratt. The evaporating cloud is one of the six thinking processes in the theory of constraints. It is a way to diagram and resolve a problem that has no obvious satisfactory solution.
How these interact with each other
Flow, Lean, and the Theory of Constraints all complement each other. But each has its own strength and therefore you may choose to start with one over the other. Here’s an excerpt from Don Reinertsen’s, The Principles of Product Development Flow: Second Generation Lean Product Development (p. 155)
Developers often ask if they should begin by changing capacity utilization or by reducing batch size. In theory, I could tell you to choose the approach that produces the most economic benefit for the least economic cost. However, the practical answer is much simpler: start with batch size. This is the great lesson of the Toyota Production System. The 100-fold improvement in manufacturing cycle times was not achieved by finding bottlenecks and adding capacity to the bottlenecks. It was achieved by reducing batch size.