Production recovery

Stuck with AI another vendor could not ship?

About a third of our AI engagements start exactly there.

Recover the build →
Case studies Book a 30-minute discovery call

Engineering delivery bottlenecks and how to find them

Find a delivery bottleneck by following actual work through waits, changes, interruptions and release conditions. Choose a single suspected constraint and test a bounded change with quality and workload checks. Record whether to adopt, adjust or stop the practice, using evidence from the service you reviewed.

Kritika Saxena
By Kritika Saxena, Head of Growth & Strategy
Unspoken Rules of Tech Leadership · Episode 410 min readPublished October 26, 2026
Engineering leadership
A hand moving a blank task card through a crowded column on a planning wall.
Key takeaways

The short version

  • Trace actual work. Define commitment and usable completion before measuring elapsed time.
  • Inspect four flow problems. The workbook covers waits, specification churn, interruptions and release batch risk.
  • Change one practice. Define baseline, outcome and stop conditions before the experiment.
  • Keep three outcomes available. Adopt, Adjust or Stop should follow the evidence and its limits.

Watch Episode 4: The Roadmap Illusion

Unspoken Rules of Tech Leadership

Watch: The Roadmap Illusion

A missed deadline tells you where a plan ended up. It takes a closer look at the work to understand why. Watch the episode, then use the workbook to trace waiting, changing requirements, interruptions and release constraints before choosing one improvement to test.

Get the companion workbook ↓

Find engineering delivery bottlenecks in completed work

Find engineering delivery bottlenecks by tracing actual work from commitment to a usable result. Separate active work from waits, then inspect specification changes, interruptions and release constraints. Choose a single suspected bottleneck for a bounded experiment and keep quality and operating consequences visible alongside the delivery outcome.

Engineering delivery bottleneck workbook: Follow actual work; Find where it waits; Change one constraint; Adopt, adjust or stop

Start with one service and a recognizable class of work. A customer-facing application change and an emergency infrastructure repair may follow different paths. Mixing them without explanation can produce an average that describes neither. Name the decision owner and agree which start and end events the review will use.

Select work items that have enough history to reconstruct what happened, including items that stalled or were withdrawn. Collect board events, review timestamps, dependency requests and release records. Ask participants to explain gaps before turning timestamps into a conclusion. A ticket may remain in a column while work continues elsewhere, and a completed code change may still await customer availability.

DORA guidance on visual management supports making work and obstacles visible. Use the board to locate questions, then inspect underlying evidence. A colored column does not establish why something waited or whether that wait was avoidable.

When discussing the expected time to deliver an application, preserve this workflow boundary. A credible forecast needs to account for approvals, environment readiness and release conditions as well as coding effort. The review should reveal which of those conditions you can actually influence.

Separate queue time from necessary work

Record when an item becomes ready for a step, when work starts and when the step ends. Name the reason for each wait and the person able to change it. Compare similar items and check timestamp quality before deciding that the largest visible queue is the constraint to address.

For each transition, ask what the next participant needed and when it became available. A review queue may reflect missing context, limited reviewer availability or a policy requiring a particular specialist. Those causes need different interventions. Record the explanation beside the work item rather than assigning a general label such as process overhead.

Evidence for the flow review
ProblemEvidenceQuestion for the owner
Workflow waitsReady, started and completed eventsWhat prevented the next step?
Specification churnDecision changes and rework linksWhat information changed?
InterruptionsRequests, reasons and displaced workWho accepted the tradeoff?
Release batch riskIncluded changes and recovery pathWhat makes this batch difficult to release?

Distinguish intentional waiting from a neglected queue. A release window may be required by a customer's operating conditions. A test may run unattended while another task proceeds. Record hands-on effort separately from elapsed time so the intervention addresses the condition that affects completion.

Check whether a proposed local improvement would move the queue downstream. If review becomes faster but a shared environment remains unavailable, the outcome may be more work waiting for validation. Include the end-to-end result and any new queue in the experiment's observation plan.

Track specification changes and negotiated learning

Inspect specification churn by recording what changed, why it changed and which work was repeated or abandoned. Clarify goals and acceptance conditions before starting, while allowing justified learning and negotiated scope changes. The useful intervention addresses a recurring source of avoidable uncertainty without blocking necessary product decisions.

Trace a changed requirement back to the decision that caused it. Was a user need discovered, a dependency misunderstood or an acceptance condition missing? Record when the information became available and who could have obtained it earlier. Avoid treating every revision as a failure; learning can prevent the team from completing the wrong behavior.

The Scrum Guide permits scope clarification and renegotiation with the Product Owner as learning occurs while protecting the Sprint Goal. Teams using Scrum can apply that distinction when reviewing mid-sprint changes. Teams using another process can still make the decision, tradeoff and changed acceptance condition explicit.

Use an example work item to test whether the proposed clarification would have helped. Write the unanswered question, its decision owner and the evidence needed before implementation. An elaborate specification template will add little if the missing fact depends on a conversation that still never happens.

For an application development workflow, define who can accept a scope change and how the delivery expectation is renegotiated. Keep the original acceptance conditions and the changed version. That history helps the next review distinguish deliberate product learning from repeated rework caused by an unowned decision.

Log interruptions and the work they displace

Record interruptions by their source, urgency, owner and effect on the work already underway. Separate genuine incident response from requests that can wait. Review concurrent commitments at team level and test a specific finishing policy, while preserving an explicit route for urgent work and the person authorized to use it.

DORA guidance on work in process limits encourages focus on completing a small number of high-priority tasks. Use it as a reason to inspect your own concurrency. The number of projects alone cannot establish how much time a team loses, especially when different people or dependencies are involved.

Log the work item interrupted, what prompted the switch and who accepted the tradeoff. Include the time needed to recover context if it can be observed, but mark estimates honestly. Requests from leadership should appear in the same evidence as support escalations and unplanned dependency help. Otherwise the review will miss a source of demand.

A possible experiment is a named rotating contact for a defined class of incoming requests, with explicit escalation rules. Another is finishing a bounded item before accepting another commitment. Choose one change that matches the observed cause and ensure it does not transfer an unmanageable queue to a single person.

If you are considering additional dedicated engineering capacity, first identify whether the constraint is executable work, specialist review or decision availability. More contributors require review and integration capacity too. Record which part of the path the added capacity would change and how you would verify that effect.

Inspect release batch risk and recovery constraints

Review a release batch by examining its included changes, dependencies, verification work and recovery path. Test whether a smaller coherent slice would reduce the constraint in your service. Choose a release cadence that fits customer and operating conditions, and verify rollback limits before changing how often production is updated.

DORA guidance on small batches describes their use in testing improvement hypotheses and obtaining feedback. The relevant question is whether your team can deliver and validate a useful slice safely. A smaller ticket does not automatically produce a smaller deployment if it remains coupled to a shared migration or an approval bundle.

Google engineering guidance on small changes supports reviewable, coherent changes. Apply that to a release candidate by separating unrelated work and making dependencies explicit. Preserve the conditions required for the slice to work, including configuration, data compatibility and customer communication. Splitting an unsafe migration into arbitrary pieces can create more risk.

Google SRE describes reproducible, automated builds as part of repeatable releases. Check whether the team can identify the artifact, configuration and verification results for the proposed deployment. A manual step with unclear ownership may be a more immediate constraint than the release calendar.

For production readiness discussions, write down who can halt a rollout, what signals they inspect and which changes cannot be reversed automatically. Record customer windows or negotiated release conditions as actual constraints. Daily deployment is not a prerequisite for a useful experiment in release safety.

Choose measures that explain the experiment

Choose an outcome measure tied to the suspected constraint and pair it with quality and workload checks. Compare the same kind of work across a documented observation window. Treat delivery measures as evidence about a service and workflow, with clear limitations, rather than using activity counts to rank individuals.

The SPACE research on developer productivity explains why productivity cannot be represented by a single metric or dimension. A higher ticket count may reflect smaller tickets, and a quieter incident period may reflect a different workload. Keep the underlying work items available and ask participants whether the proposed measure reflects the problem they experience.

DORA advises applying delivery metrics in the context of an application or service. Select measures relevant to that context rather than importing a target from an unrelated team. If the intervention concerns review waiting, record that wait and end-to-end completion, together with rework or escaped issues that would make an apparent improvement unacceptable.

Write the calculation and exclusions before the experiment. State the unit, event definitions, missing data and unusual work. Include the distribution or individual examples when an average conceals a long wait. If the sample is too limited to support a conclusion, make further observation a possible review outcome.

Use a brief participant check alongside timestamps. An intervention can appear to shorten a queue while increasing hidden coordination work. Ask where effort moved, who now absorbs it and whether that arrangement can continue within the team's operating responsibilities.

Run one bottleneck experiment with a stop condition

Run one controlled workflow experiment at a time within the selected service and work class. Define the hypothesis, changed practice, observation window and outcome before starting. Preserve a stop condition for quality or workload harm, and record other changes that could explain the result.

A clearly fictional example: a product team observes review-ready changes waiting for a specialist because ownership is unclear. The experiment assigns a named reviewer and backup for that work class. It keeps the acceptance standard and records review waiting, rework and any additional burden on the reviewers. This scenario illustrates a method, not an expected improvement.

Specify what remains constant enough to make the comparison useful. Avoid changing the intake policy, release process and review ownership simultaneously if the review aims to understand one of them. Necessary operational changes can still happen; record them as limits on causal interpretation.

Name the owner who can start and stop the experiment, the person collecting evidence and the people affected by it. Agree how urgent work enters during the observation window. A finishing policy that cannot accommodate a genuine incident will be bypassed, leaving both the process and the data unclear.

Use the workbook's experiment page to record actual baseline values and team-chosen conditions. If the work sample changes substantially or the intervention creates an unsafe queue, stop and review the boundary. Extending the window or revising the hypothesis can be more appropriate than declaring success from incomplete evidence.

Decide whether to adopt, adjust or stop

Close the experiment with Adopt, Adjust or Stop, supported by the observed outcome and its limits. Explain whether the original constraint changed and whether quality or workload shifted elsewhere. Name the owner of the next practice and the condition that will trigger another review.

Adopt means the evidence supports continuing the practice within the tested boundary and an owner accepts its ongoing responsibilities. Adjust means the hypothesis or implementation needs a defined change and another observation. Stop means the result, burden or evidence does not justify continuing under the current conditions. None of these outcomes requires blaming a team member.

The workbook reviews four flow problems: workflow waits, specification churn, interruptions and release batch risk. It asks for one bottleneck experiment and offers three review outcomes. Those numbers describe the worksheet structure. They are not an industry friction estimate, a productivity rating or a universal delivery-time multiplier.

When using software delivery support, share the same workflow record with the people joining the work. Assign who owns decisions and verification across the boundary. An external team should not have to infer which queue the engagement is intended to change or which customer constraints govern releases.

Keep the final record with the work items and experiment evidence. Include the new operating owner, unresolved questions and a revisit trigger tied to the workflow. The next review can then begin with the observed constraint and the previous decision, instead of starting another general discussion about developer speed.

4
flow problems examined in the workbook
Workbook structure
1
bottleneck experiment at a time
Workbook structure
3
review outcomes
Workbook structure
Episode 4 companion workbook

Engineering delivery bottleneck workbook

Trace four flow problems, test one bottleneck hypothesis and record a decision based on actual work-item evidence.

Preview of the engineering delivery bottleneck workbook

Fillable PDF · 9 pages · Save a copy for each review

Download the workbook

Enter your details for immediate access.

We use these details to provide this resource and record your request. See our Privacy Policy.

FAQ

Engineering delivery bottleneck questions

How do we find engineering delivery bottlenecks?
Trace comparable work items from commitment to a usable result. Separate active work from waiting and ask participants what prevented the next step. Inspect specification changes, interruptions and release constraints alongside the visible queue. Choose one suspected cause for a bounded experiment, define outcome and quality checks beforehand, and preserve the work-item evidence so the decision can be reviewed.
Should specifications be locked before a sprint?
Clarify the goal and acceptance conditions before starting, and make the decision owner available for unresolved questions. Allow justified learning and negotiated scope changes. For teams using Scrum, the Scrum Guide permits clarification and renegotiation with the Product Owner as more is learned while protecting the Sprint Goal. Record why scope changed and which work was repeated so the review can address avoidable uncertainty.
Does more concurrent work always multiply delivery time?
A universal multiplier cannot describe every team or workload. Inspect which commitments share people, reviewers, environments or decisions, then record the work they displace. DORA guidance supports focusing on a small number of high-priority tasks, but your experiment should test a specific finishing or intake policy. Include urgent work and any queue transferred to another person in the observation.
Do teams need to deploy every day?
Choose release conditions that fit the service, customer constraints and recovery capability. Smaller coherent batches can support feedback, but the team still needs verification, reproducible artifacts and a known rollback path. A daily production cadence is not a universal requirement. Inspect the specific migration, approval or batch dependency that makes a release difficult before changing how often updates are deployed.
How should we evaluate a bottleneck experiment?
Define the work class, baseline calculation and outcome conditions before changing a practice. Compare the observed constraint and end-to-end completion while checking quality and participant workload. Record missing history, unusual events and other changes that could explain the result. Choose Adopt, Adjust or Stop with a named owner, and keep the next review trigger tied to an observable workflow condition.
How do I download the delivery workbook?
Your name, work email and company are required on the form. Job title and updates are optional. A valid submission makes the PDF available immediately in the same browser. The workbook includes fields for work-item evidence, four flow problems, one experiment and its decision, plus a fictional example. Enter your actual values and keep the completed review with the underlying work records.

Unspoken Rules of Tech Leadership

A Resourcifi series

Episode 4 explores Engineering delivery bottlenecks.

Sources

  1. DORA, Working in small batches. Small batches help teams test improvement hypotheses and shorten feedback loops.
  2. DORA, Work in process limits. Limit concurrent work and focus on finishing high-priority tasks.
  3. Scrum Guides, The Scrum Guide. Protect the Sprint Goal while clarifying and renegotiating scope as the team learns.
  4. Microsoft Research, The SPACE of Developer Productivity: There's more to it than you think. Developer productivity cannot be represented by a single activity metric.
  5. DORA, DORA's software delivery performance metrics. Interpret software delivery metrics within the application or service context.
  6. Google SRE, Release Engineering. Reproducible automated builds support repeatable software releases.
  7. DORA, Visual management. Make work visible so teams can identify obstacles and discuss improvements.
  8. Google Engineering Practices, Small CLs. Small coherent changes improve review and simplify reasoning about change risk.
Keep reading
Related guides worth your time
Episode 4 companion resource

Examine the constraint in your delivery workflow