LeadershipIntermediate8 min read

Delivery Diagnostics

How to figure out why your team is slow before deciding what to change

When delivery stalls, the instinct is to work harder. Add more people. Stay later. Push the sprint. The discipline is to diagnose first.

Most teams I work with aren't slow because they lack effort. They're slow because multiple small friction points are compounding -- and nobody has stopped to identify which ones actually matter. This framework gives you a structured way to find the root cause before you prescribe a fix.

When to run a diagnostic

Don't wait for a crisis. If you see two or more of these signals in the same iteration, it's time:

SignalWhat it might mean
Velocity declining over 2+ iterationsFatigue, scope creep, technical debt, or unclear stories
Stories carrying over consistentlyOver-commitment, underestimation, or blocked dependencies
Bugs and rework increasingQuality practices are being skipped under pressure
Team morale droppingChronic overwork, lack of autonomy, or persistent blockers
Stakeholders surprised by progressCommunication gaps or misaligned expectations
"It feels slow but I can't explain why"Multiple small friction points compounding

The diagnostic process

Step 1: Gather the data (30-60 minutes)

Collect these metrics for the last 3-5 iterations:

  • Stories committed vs. completed -- are you over-committing or under-delivering?
  • Carry-over stories -- which stories keep not finishing? Why those specifically?
  • Cycle time (story start to done) -- are stories taking longer? Which ones?
  • Bug count and rework rate -- is quality slipping?
  • Blocker frequency -- what's stopping the team from making progress?
  • Pairing rate -- has it dropped off? (Often a leading indicator of fatigue.)
  • Retro action item completion -- are you identifying problems but not fixing them?

If you don't have clean data, that's itself a finding. Teams without visibility into their own performance can't self-correct.

Step 2: Identify the pattern (30 minutes)

Look at the data and ask: what story does it tell?

PatternData signatureLikely root cause
OvercommitmentCommitted >> Completed, every iterationPlanning without velocity data; pressure to promise more
Scope creepStories grow mid-iteration; "done" keeps movingVague acceptance criteria (tighter story writing helps); requirements aren't agreed upon
Technical debt dragCycle time increasing on similar-sized storiesAccumulated shortcuts are slowing new work
Dependency blockingSpecific stories blocked repeatedlyExternal teams or approvals creating bottlenecks
Quality erosionBug count rising; velocity looks okay but outcomes sufferTDD or reviews being skipped under time pressure
Team fatigueVelocity declining gradually; pairing drops; retros feel flatUnsustainable pace; too many priorities
Communication gapsStakeholders surprised; stories rejected in demosPM not connecting team work to business context

Step 3: Form a hypothesis

Write it down in this format:

We believe the primary delivery issue is [pattern], caused by [root cause]. Evidence: [cite specific data points]. If we're right, we'd expect to see [what would happen without intervention].

Writing the hypothesis forces precision. "We're slow" becomes "We're over-committing by 30% every iteration because we plan from aspiration instead of last iteration's actual velocity."

Step 4: Design a targeted intervention

Pick the one thing most likely to address the root cause. Not three things. Not a process overhaul. One focused change.

Root causeTargeted intervention
OvercommitmentCap next iteration's commitment at last iteration's actual completion
Scope creepRequire written acceptance criteria before stories enter planning
Technical debtAllocate 20% of each iteration to debt reduction; track it visibly
Dependency blockingEscalate with a specific ask and deadline; protect the team's other work
Quality erosionReintroduce pairing for complex stories; make test coverage visible
Team fatigueReduce scope by 25% for one iteration; protect time for recovery

Step 5: Measure the result

Give the intervention two iterations. Then check the data again. Did the pattern change? If yes, keep going. If not, your hypothesis was wrong -- go back to Step 2 with new information.

The meta-diagnostic

If you run diagnostics and the team keeps cycling through the same problems, the issue isn't at the team level -- a product audit and reset can help you see structural patterns. Look one level up:

  • Is leadership changing priorities faster than the team can deliver?
  • Are organizational processes (approvals, compliance, vendor reviews) creating structural delays?
  • Is the team staffed for what they're being asked to deliver?

These organizational patterns require different interventions -- usually conversations, not process changes.

Try this today

Pull up your last three iterations' data. Compare committed vs. completed stories. If there's a consistent gap, you've found your first diagnostic signal. Start there.

Want help with delivery diagnostics?

I coach teams on this practice. Let's talk about your situation.

Get in touch