Skip to content

Follow One Change

Source: hooks/ways/softwaredev/delivery/groundwork/stall/stall.md

Frontmatter
Field Value
description tracing one change from clean checkout to production to find where it waits and who can move it, and separating coding time from waiting time before proposing tools, agents, or automation
vocabulary stall waiting time where does it wait who moves it end to end walkthrough trace one change lead time cycle time bottleneck stuck handoff pending approval idle throughput why aren't we shipping faster
refire 0.2
scope agent, subagent

When the question is "why isn't more coming out the other end," the answer is rarely visible from the tooling. Before recommending anything, we pick one change and walk it from a clean checkout into production, with the people who did it.

What we record

Step We write down
What builds The command, or the person
Which checks run Automatically, by hand, or "rerun until green"
Where it waits Review, environment, approval, a product decision, a release window
Who could move it A named person or role, and whether they know it is waiting
How long Working time in turns, waiting time from timestamps, kept separate

A test directory can look fine until someone explains the reruns. A deployment script can have an impressive name for something that still needs the one person who remembers.

Then aim at the longest wait

Suppose writing the change takes ten turns. The pull request then shows nine days from opened to deployed: three reruns until green, a review that arrived on day two, an environment somebody had to request, an approval that sat until a person read it. Halving the ten turns saves an hour of nine days. The fix goes where the days are.

We do not watch the wait happen. It falls after our closing message and often across sessions, so we read it off the timestamps on the pull request, the pipeline runs, and the approval.

Another hundred tests will not make someone answer an approval request. Another agent will not schedule the release window. If the longest wait is a decision, the finding is a decision, and it belongs to a person.

Common Rationalizations

Rationalization Counter
"We already know it's slow, let's just add automation" Automation of the fast part is how coding got faster and delivery didn't. Walk it first.
"One change isn't a representative sample" It is a real one. Walk a second comparable change after the fix and compare.
"The delay is organizational, not our problem" Then say so, with the wait measured and the owner named.
"The tests pass eventually" Record how many runs. Eventually is a wait.

See Also

  • delivery/merge(softwaredev) — the review gate as one of the places a change waits
  • delivery/issues(softwaredev) — the shape a stall finding takes: an owner and the condition that reopens it
  • incident(itops) — when the walk happens inside a postmortem, the finding rides its closure artifacts
  • delivery/groundwork(softwaredev) — parent: readiness before change