Why 100% busy isn't 100% effective, and how slack improves flow.
It seems obvious: to maximize productivity, keep everyone busy. If developers are idle, you're wasting money.
This intuition is wrong for knowledge work.
High utilization (80%+) causes:
The math is brutal. As utilization approaches 100%, queue times approach infinity. A system at 99% utilization has dramatically longer queues than one at 80%.
Queuing theory shows that wait time explodes as utilization increases:
At 50% utilization: Wait time is roughly equal to service time At 80% utilization: Wait time is 4x service time At 90% utilization: Wait time is 9x service time At 95% utilization: Wait time is 19x service time
This is because variability in both arrivals and service times creates queues. When you have no slack, you can't absorb the variation.
Real-world example: If it takes 2 hours to review a PR, but the reviewer is at 90% utilization, the PR waits 18 hours in queue before review starts. Total time: 20 hours for a 2-hour task.
The Paradox
Slack doesn't slow you down—it speeds you up. A system at 75% utilization often delivers faster than one at 95% because queues are shorter.
Slack isn't the same as idleness. There are productive uses for slack:
Queue draining: When limits hit, slack lets people help clear bottlenecks.
Improvement work: Technical debt, automation, tooling improvements. These make future work faster.
Learning: Training, experimentation, skill development.
Responsiveness: Ability to handle urgent requests without disrupting everything.
Collaboration: Helping teammates, pair programming, knowledge sharing.
Teams at 100% utilization have no time for any of this. They just process work items in a queue. They get slower over time because they never invest in getting better.
"We don't have time to improve our process."
This is the most common symptom of the utilization trap. Teams are so busy doing work that they can't improve how they do work.
But process improvement is how you sustainably increase capacity. Without it:
The cycle:
Breaking the cycle:
Team runs at 70-80% utilization. When sprints are light, they pay down tech debt, automate tests, improve their CI pipeline. Next quarter, the same team delivers more with less effort.
Team runs at 100% utilization permanently. No time for improvements. Code quality degrades. Bugs increase. Team works harder to deliver the same amount. Eventually, people quit.
"Why are developers sometimes not coding?"
This question comes from utilization thinking. Here's how to reframe:
Focus on throughput, not utilization. "We're completing 10 features per sprint. Would you prefer we complete 8 features but everyone looks busier?"
Explain queue time. "When we're at 100% capacity, urgent requests wait 2 weeks to start. At 80%, they start within 2 days."
Show the math. "Last quarter we spent 30% of time on emergency fixes. This quarter we spent 20% on prevention, and emergency fixes dropped to 10%. Net gain: 10%."
Use analogies. "A highway at 100% capacity is a parking lot. A highway at 80% capacity flows. Which gets people home faster?"
The goal is shifting the conversation from "Are people busy?" to "Is work flowing?"
If stakeholders resist, offer a time-boxed experiment: 'Let's try 80% allocation for one quarter and measure lead times.' Data beats argument.