By Kevin Callahan
The first time I heard the term Theory of Constraints (ToC), I imagined something as exciting as watching laundry dry. Years later, the Five Focusing Steps of ToC are some of the most powerful tools I know for improving delivery performance—whether in manufacturing, software, or government IT.
Created by Eliyahu Goldratt in the 1980s, ToC started in factories but has since brought value to software development and digital organizations. It centers on identifying and improving the one part of a system that most limits performance—the constraint. We discussed this in a previous post on Applying Theory of Constraints. Once you find the constraint and improve it, you improve everything. The Five Focusing Steps is a tried-and-true process for locating and elevating the constraint.
To make these concepts easier to grasp, I’ll use a simple example: my wife and I recently bought a small laundromat in rural Maine. The business came with 20 years of history, aging equipment, and plenty of learning curves. What better laboratory for applying the Five Focusing Steps of ToC?
First, identify Throughput
Before we get started, we need to identify how and where value is created. Goldratt defined Throughput (capital T) as the rate at which a system generates value. In business, that’s usually money; in government or IT, it’s often time saved or value delivered to users.
AI Lab update on the use cases for LLMs in the public sector
Large Language Model Applications for Government
When I began consulting with state agencies, I had to reframe this: time, not money, was the “coin of the realm.” The more time we could return to citizens through better systems, the greater the Throughput.
At our laundromat, there are three revenue streams:
- Self-service customers using coin machines
- Retail wash–dry–fold services
- Commercial accounts
All three share the same process: wash, dry, fold, deliver. The business makes money at the end of that chain. Likewise, in knowledge work, value is realized only when the user receives something usable—not when we start a project, hold a meeting, or complete a sprint planning session.
Understanding where and how value is created is the foundation of ToC. Until you can answer, “How do we generate Throughput here?” it’s impossible to improve the system.
Step 1: Identify the constraint
Once you understand where value is created, the next step is to find what limits it.
In the laundromat, that was easy: dryers. They take longer than washing, folding, or sorting. If dryers are idle, the whole system slows down.
In knowledge work, the constraint is usually less visible. It might be:
- A senior developer who knows the legacy system best
- A slow QA cycle that holds up releases
- A decision bottleneck (e.g., waiting for approvals)
- A poorly defined backlog with too many half-started priorities
The challenge is that in knowledge work, the “work” isn’t physical. We can’t see laundry piling up like we can at the laundromat. To be able to see where work is, we need to make the invisible visible—through Kanban boards, value stream maps, or analytics—to identify the true constraint.
Wherever work piles up—in front of a person, a process, a dryer, or a decision point—you’ve likely found your constraint.
Step 2: Exploit the constraint
Once you’ve found your constraint, focus on keeping it fully utilized.
In the laundromat, that meant never letting dryers sit idle while laundry waited. If a load was ready to dry, the dryer should be ready. Watching the work rather than the workers made this clear: the goal wasn’t keeping everyone busy—it was keeping the constraint productive.
The same applies to knowledge work. If your senior developer is the constraint, don’t bury them in meetings or bug fixes. Make sure they’re focused on the highest-value tasks only they can do. Automate, delegate, or simplify everything else and make sure they’re the last, not the first, to be committed to work.
An idle constraint is expensive. When dryers are idle, the cost isn’t just the lost use of the machines—it’s the lost revenue of the entire business. Similarly, when your constraint (say, code review or testing) sits idle, your whole delivery flow not only slows down, but money and time are literally burning up.
A key insight from ToC: it’s better to have some people waiting for work than to have the constraint waiting for work. In other words, protect the constraint’s time at all costs; it’s not about keeping everyone busy, it’s about keeping the constraint busy!
Step 3: Subordinate everything else
With the constraint fully utilized, the rest of the system must support it.
Goldratt’s model is sometimes described as a drum–buffer–rope system:
- The drum sets the pace—the constraint’s throughput rate.
- The buffer protects the constraint from running out of work.
- The rope signals when it’s safe to start new work.
At the laundromat, this was easy to see. Clean laundry moving from the dryer was the drumbeat. A small queue of washed clothes waiting for dryers was the buffer. And a dryer freeing up was the rope; the signal it’s time to start another wash.
But in most digital organizations, everyone’s running full tilt. Every developer, designer, and analyst is at “100% utilization.” It feels productive but actually slows everything down. Too much work-in-progress (WIP) creates queues, multitasking, and rework.
I’ve seen this pattern in nearly every IT organization I’ve worked with: new projects start faster than the system can complete them. The backlog grows; context switching explodes; quality drops.
The solution sounds simple but requires discipline: Don’t start new work faster than you can finish old work.
When you tie your start rate to your completion rate, flow improves. Work finishes faster. Quality rises. Changes are less disruptive. People breathe again.
Step 4: Elevate the constraint
Once the system is stable—constraint exploited, work subordinated—it’s time to increase the constraint’s capacity.
In the laundromat, we had several options:
- Add more dryers (increase capacity)
- Upgrade to moisture-sensing dryers that stop automatically (improve efficiency)
- Use washing machines with higher spin speeds to reduce dry time (reduce demand on the constraint)
All of these would increase throughput though also require capital investment. But sometimes, simple policy changes work too. Sorting laundry by dry time—running quick-drying loads first—required no capital investment, just smarter sequencing.
In software, the same principle applies. Once the constraint is identified, explore ways to elevate it:
- Add staff or automate tasks
- Improve testing pipelines
- Streamline decision-making
- Invest in better tools or documentation
Don’t waste effort “optimizing” parts of the system that aren’t the constraint. Adding capacity in the wrong place just creates waste and more work-in-progress.
And remember: knowing who you’re not serving can be as valuable as knowing who you are. The prior laundromat owners refused farm blankets—they made a huge mess and took too long to dry. Similarly, IT teams benefit from defining what work they won’t take on, or what “good enough” looks like for certain requests.
Step 5: Prevent inertia from becoming the constraint
When you successfully elevate a constraint, another one will appear. That’s normal—and healthy. The goal isn’t to eliminate constraints but to continually improve flow around them.
The danger is inertia: assuming yesterday’s solution will solve tomorrow’s problems.
In our laundromat, optimizing for dryers revealed a deeper, hidden constraint: the septic systems. Two of our leach fields had failed after 20 years of buildup. Suddenly, the problem wasn’t drying laundry—it was where the water went.
The metaphor holds in knowledge work: once you fix visible bottlenecks, systemic or cultural ones emerge—slow decision cycles, lack of learning, unclear priorities. These often lurk “underground,” invisible but exerting profound pressure on the organization.
We addressed our septic constraint the same way we did everything else: by applying the Five Steps again. We restored the system, implemented new policies (no bleach, biodegradable detergents), and built slack into operations to protect the constraint.
Within a year, flow was fully restored. The septics handled any amount of drain water that went out. Our dryers ran smoothly, and we even found ways to stabilize demand in the off-season—offering winter clothing discounts to keep throughput high.
In digital work, this phase often looks like improving governance, communication, and feedback loops. Once technical flow is healthy, the real constraint often shifts to how fast the organization can learn and act on that learning. That’s where true agility begins.
Follow the steps to success
The Five Focusing Steps of ToC—Identify, Exploit, Subordinate, Elevate, and Repeat—offer a powerful lens for diagnosing and improving delivery systems once you clarify the Throughput to understand how your team creates measurable value (money, time, outcomes).
- Identify the Constraint – Locate what truly limits that value.
- Exploit the Constraint – Protect and maximize it.
- Subordinate Everything Else – Align the rest of the system around it.
- Elevate the Constraint – Improve its capacity and repeat.
- Prevent inertia – Continue to address any underlying constraints that arise.
What’s most transformative about ToC is the shift in what we pay attention to: stop focusing on local efficiency and start focusing on system flow. Most organizations are filled with “busy” people and “stuck” work guided by policies that optimize parts, rather than wholes. ToC flips that: it’s better to have idle people and flowing work than the other way around.
When applied well, these ideas change how leaders make decisions. Instead of measuring output, they measure Throughput—the rate of real, delivered value. Instead of pushing for 100% utilization, they create slack for the system to breathe. And instead of reacting to every new initiative, they commit to finishing what’s already started.
In summary
Owning a laundromat might not sound like management training, but it’s given me a wonderful laboratory to apply system flow that was often elusive in my consulting work. Every pile of laundry waiting for a dryer mirrors a backlog of stories waiting for review. Every idle machine is a reminder that value only matters when it’s finished.
These lessons apply directly to any organization that produces knowledge-based value: software, digital services, policy design, or creative work.
The Five Focusing Steps are just the beginning. To make consistent, system-wide decisions that improve delivery economics, ToC offers a broader framework called Throughput Accounting—the financial and operational logic behind these principles.
That’s a story for another post. For now, remember this:
Don’t just work harder. Find your constraint—and make it flow.
Learn more
- Applying Theory of Constraints: Agile consultant Kevin Callahan on using Theory of Constraints to manage uncertainty
- Contact GovWebworks to learn more about managing your constraints
- Contact Kevin Callahan for Agile consulting






