Chasing Predictability
most teams chase predictable releases by tightening plans, when the real problem lives in the system producing the work.
When leaders say they want more predictable releases, what they usually mean is simpler than it sounds. They want fewer surprises. Fewer missed dates. Fewer last-minute scrambles that leave everyone exhausted and annoyed.
The most common response is to focus harder on planning.
More detailed roadmaps. More dependencies tracked. More confidence demanded. Often more meetings, just to be “safe”.
And somehow, predictability still doesn’t improve.
That’s because predictability isn’t something you plan into existence. It’s something your system produces, or doesn’t.
On the Pacific Crest Trail, this took me a while to understand. You don’t make the trail predictable by planning every mile. You make it predictable by understanding how your body behaves, how terrain affects pace, how weather changes things, and how much uncertainty you can absorb before the day goes sideways.
Predictability Isn’t About Dates
Dates are outputs. Predictability is a property of the system that produces them.
A predictable system behaves in similar ways most of the time, even under stress. An unpredictable system behaves differently depending on who touched the work last, how late it was when they finished, or how close the deadline felt.
On trail, unpredictability showed up the same way. A day felt “hard” not because of distance, but because of hidden variables. Snow conditions I didn’t expect. A climb I underestimated. A dried up water source. None of those problems were solved by a better itinerary.
Pressure increases variance. So does fear. So does hidden work. None of those show up on a Gantt chart.
When predictability is missing, most organizations try to fix the calendar instead of the system. They ask for firmer commitments. They demand confidence. They push teams to lock things down.
What they usually get is theater.
Surprise Is a System Smell
Very few release surprises come out of nowhere.
They show up earlier as small signals that are easy to ignore. A test that flakes but “probably isn’t important.” A dependency that feels fuzzy. A pull request that takes longer than expected. A conversation that didn’t quite land.
I saw the same pattern on trail. Blisters don’t suddenly appear at mile 500. They start early and small. Same with knee issues. And with exhaustion. The mistake isn’t missing the signal. It’s deciding not to listen to it.
One thing I tried to explain often to other hikers is to listen to your body - and recognize the difference between an ache and a pain. An ache is usually from use or fatigue - but a pain may be a signal of something more.
Unpredictable releases usually trace back to the same system behaviors. Work piles up into large batches that only integrate at the end. Feedback arrives late, when it’s expensive to act on. Manual steps exist that no one really owns, so they quietly become queues. Approval processes grow to compensate for missing trust. Critical knowledge lives in one person’s head, until it doesn’t.
None of those are scheduling problems. They’re design problems.
Frequency Is a Signal, Not the Goal
Teams that release frequently are often held up as examples to copy. The mistake is assuming frequency creates predictability.
It doesn’t.
I get frustrated with teams that make frequent releases the goal rather than the result of a process that works. I see teams do this with the famous DORA metrics all the time. Those metrics are outcomes of engineering effort, not levers you can pull directly. Good results don’t happen when the metrics are the target.
Frequent releases are a signal that the system can absorb change without drama. They tell you batch size is small, feedback is fast, and integration happens early. Teams that struggle to release often aren’t slow. They’re fragile. Every release feels risky, so they batch work to feel safer. Ironically, that makes each release riskier.
On trail, hikers who feared stopping often pushed too far. They skipped breaks, ignored hunger, and tried to bank miles early. It worked, until it didn’t. The system couldn’t absorb the stress.
Big releases fail for the same reason. Not because teams lack discipline, but because the system can’t tolerate uncertainty.
Predictability Is About Reducing Variance
Douglas Hubbard makes a useful point in How to Measure Anything. Uncertainty shrinks when you collect small bits of information. You don’t need perfect data. You need directional signal.
That idea applies directly to planning.
For years, I’ve asked teams to estimate work with an explicit confidence level. Not a single date. A probability.
Not “when will this be done,” but “what date do you feel 50 percent confident about.”
That number matters.
A 50 percent confidence estimate is honest. It acknowledges uncertainty without pretending it can be eliminated. It’s far enough out to include real thinking, and close enough to avoid fantasy planning.
At 90 percent confidence, teams overplan. They pad. They stall. They delay learning in the name of safety.
At zero confidence, teams rush in blind and pay for it later.
Fifty percent is the sweet spot. Enough plan to start. Enough uncertainty to keep learning.
This concept felt familiar during my hike this summer. I never planned a day to absolute certainty. I planned far enough to get moving, to the next water source or a good place for second breakfast, knowing the trail would teach me things I didn’t know
I often describe p50 estimates as the sweet spot between overplanning and starting before you know what you’re doing. Over many years and hundreds of projects, they consistently improved learning, planning, and predictability.
The point isn’t the number. It’s what it does to the system. It normalizes uncertainty. It encourages learning early. It reduces the pressure to perform certainty instead of doing the work.
Control Feels Safe. Trust Works Better.
When predictability is low, leaders reach for control. More approvals. More gates. More sign-offs. More checking.
Each one feels reasonable in isolation. Together, they create queues.
Queues hide work. They delay feedback. They turn small issues into big ones. Every extra approval step is a signal that the system doesn’t trust itself.
Organizations with predictable releases aren’t more controlled. They’re more trusting.
Trust between product and engineering. Trust between development and testing. Trust between teams and leadership. Trust that small mistakes will be caught early, not punished later.
Low-trust systems batch work to protect themselves. High-trust systems release smaller changes because the cost of failure is low.
What Leaders Usually Get Wrong
When releases are unpredictable, leaders often focus on symptoms. They ask for firmer dates. They demand clearer commitments. They push teams to “own” delivery. They increase reporting.
Those actions optimize for reassurance, not results.
What actually improves predictability looks is quieter work. Feedback loops get shorter. Changes get smaller. Integration happens earlier. Work becomes visible sooner. Failures get cheaper.
None of that produces impressive slides. All of it reduces surprise.
Predictability improves when leaders stop asking teams to be confident and start asking the system to be resilient.
Predictability Is a Byproduct
The most predictable teams I’ve worked with didn’t talk much about predictability. They talked about flow. About learning. About making work easier to finish.
They didn’t hit every date. But their misses were small. Their adjustments were fast. Their releases stopped being events and started being routine.
That’s the shift.
On the trail, predictability didn’t come from knowing every mile. It came from knowing how I moved, how the system behaved, and how much uncertainty I could absorb and still keep going.
Predictability isn’t something you can demand from teams. It’s something the system earns over time.
You don’t get it by tightening the schedule. You get it by removing the reasons work behaves unpredictably in the first place.
And when you do, frequent releases stop feeling ambitious.
They just feel normal.



I’ve worked on several projects where we hit every delivery date. Not most - every single one. Predictable delivery wasn’t a lucky byproduct of the process; it was a requirement of the development system. And we didn’t achieve it through heavy planning or padded schedules.
Of course, surprises always show up - some big, some small. But large parts of the release cycle were well understood and highly predictable. We built a release process optimized for those known tasks. The unknowns couldn't be optimized: an ambiguous spec, a feature that turned out to be far harder than expected, or a dependency that suddenly shifted. So how did we handle that unpredictability?
Across these projects, one pattern stood out: the delivery date mattered more than the exact contents of the release. Our customers needed to plan their rollouts well in advance. These were products, not services. They had to train staff, schedule downtime, and budget for upgrades. A fixed release schedule gave them stability. The variable became the feature set.
Not every organization has that flexibility, but once I saw this trade‑off work in a few cases, I started noticing the same dynamic in many others.
So what does it mean when a feature carries too much uncertainty to commit to a release?
The plan didn’t need exhaustive detail, but it did need clear cut‑off criteria. If a feature wasn’t complete - or wasn’t working well enough - by a certain date, it simply didn’t make the release. The key was having confidence that the major surprises had already been discovered. This pushed teams to surface big unknowns early. The best teams accelerate learning; they don’t postpone it.
If a feature wasn’t ready, it didn’t block the release. It just moved to the next one. This lowered stress across the board. Product managers still had a shippable product on time, even if it wasn’t as fully featured as they hoped. Developers felt less pressure too. Missing a date wasn’t catastrophic as another opportunity was always coming soon.
We built systems around dates as a requirement, not a target. The stress level dropped once people trusted the system. Product managers stopped panicking about slipping features. Developers stopped burning out trying to “save” a release. And customers stopped asking whether we’d hit the date—they already knew we would. Predictability became a shared habit, not a heroic effort.