Writing
Sprint Risk: When to Raise It and What to Do Next
Most sprint surprises were visible to someone days earlier. How to tell a risk from a blocker, when uncertainty is enough to speak up, a five-part template for saying it, and how to turn it into an owner, a checkpoint and a trigger.
By Ka Lun Chan · Engineering leadership · Delivery / Leadership
A lot of sprint surprises were visible to someone days before they landed. An engineer gets a bad feeling about an integration on Tuesday and keeps it quiet because nothing is certain yet. By Thursday it’s a blocker, and the good options are gone.
What is sprint risk?
Sprint risk is uncertainty that could stop a team from meeting its sprint goal. It hasn’t happened yet. Once it does, it becomes an issue, and if that issue stops work right now, it’s a blocker. Raising a risk early gives the team time to act while it still has choices.
Each of those calls for a different conversation. A risk asks what the team will do if it happens. An issue asks what to do now. A blocker asks who can clear it today. Teams that only talk about blockers have skipped the cheapest of the three conversations.
The sprint goal is the reference point. The Scrum Guide treats the sprint goal as the developers’ commitment and leaves the exact work flexible, so one slipped ticket doesn’t make a failed sprint. A risk worth raising threatens the outcome the team agreed to deliver. A ticket running a day late while the goal is still safe is a status update. When the same kind of work keeps slipping, what sprint carryover is telling you covers how to read the pattern afterward. This article is about catching it while the sprint is still running.
When should you raise a sprint risk?
Raise a sprint risk as soon as you have a credible reason to think the sprint goal could be affected. You don’t need proof or a solution first. Unclear acceptance criteria, work running longer than expected, unconfirmed dependencies, lost capacity, new technical complexity and shrinking test time are all reasons to start the conversation.
These are the signals I’d want someone to mention, even when they aren’t sure yet:
- Unclear acceptance criteria
- Two people describe “done” differently, or an edge case turns into a product question nobody has answered. Each one is a decision someone still has to make. Why good user stories are hard covers where that usually starts.
- Work taking longer than expected
- A two-day story is on day four and still “almost done.” The overrun matters less than what’s left, and whether anyone can say how much that is.
- Unconfirmed dependencies
- The work needs an API, an environment, a review or a decision from another team, and nobody on that team has confirmed a date.
- Reduced capacity
- Someone is out sick, an incident pulled two engineers away, or a person was lent to another project. The plan assumed people who aren’t available.
- Unexpected technical complexity
- The code has no tests, the data doesn’t match the spec, or a change touches more of the system than anyone expected.
- Shrinking test time
- Development is eating into the days set aside for testing and review. That squeeze tends to land at the end of the sprint, where it’s hardest to recover.
Credible uncertainty is the bar. “I think this might not make it, and here’s why” is a useful sentence. Waiting until you’re certain usually means waiting until it has happened.
Why early beats certain
Surprises are cheapest in week one, which is why I try to pull delivery risk to the front. On the second day of a sprint, a team can bring in someone who knows the system, try a different approach, chase the dependency, or agree a smaller scope with the product owner while there’s still time to deliver it. On the last day, the only option left is explaining what didn’t ship.
The Scrum Guide describes the scope part directly: when the work turns out to be different than expected, the developers work with the product owner to renegotiate the sprint backlog without changing the sprint goal. That negotiation needs time to be worth anything.
All of this depends on how the team reacts. If raising a risk gets the response “why didn’t you estimate better?”, people learn to stay quiet until the risk is undeniable. The person who raises it is doing the team a favor, and the follow-up should be about what happens next. The risk belongs to the team. Usually nobody caused it, and even when someone did, the next step matters more than the cause.
How do you communicate a sprint risk?
Say what might go wrong and why, what it would affect, who is doing what about it by when, and what the team will do if it gets worse. One sentence for each part is enough.
This template covers it:
There is a risk that [outcome] because [reason]. This could affect [sprint goal or deliverable]. [Owner] will [next action] by [time]. If [trigger], we will [fallback or decision].
The last two sentences turn a concern into a plan. Without them, everyone knows about the risk and nobody is doing anything about it.
Where you say it depends on how urgent it is:
- Standup is for routine visibility. Mention the risk in a sentence so the team knows, and move the detail to a follow-up with the people involved.
- The team’s shared channel or tracker is for follow-through. Write the template there so the owner, checkpoint and trigger don’t depend on anyone remembering standup.
- Escalate right away when waiting would remove options: a production dependency changed, a key person is out for the rest of the sprint, or a date outside the team just moved.
What happens after a risk is raised?
Give the risk an owner, choose a mitigation, set a checkpoint and agree an escalation trigger. The owner coordinates the response and keeps the team informed. They don’t have to solve the problem alone.
- Assign an owner. Often that’s the person closest to the work. Their job is to make sure the next action happens and to report back, which may mean asking someone else to do most of it.
- Choose a mitigation. You can make the risk less likely (confirm the dependency now), make it hurt less (build against a stub, split the story) or prepare a fallback (agree in advance what scope comes out).
- Set a checkpoint: a specific time to look again, like Wednesday’s standup or 2 p.m. tomorrow. “We’ll keep an eye on it” has no time attached, so it never comes due.
- Define an escalation trigger. Agree the condition that turns the fallback into a decision, so nobody has to argue about it when the moment comes.
Small risks may only need an owner and a checkpoint. The trigger matters most when the sprint goal itself is at stake.
Example: a delayed API dependency
Here’s an invented example. A checkout team starts a two-week sprint with this goal: customers can save a verified shipping address at checkout. Verification depends on a new address API from the platform team, promised for “early in the sprint.”
On day two, Priya, the engineer building the checkout side, notices the platform team hasn’t published the API contract and there’s no staging endpoint yet. At standup she says:
“Still waiting on the address API. Should be fine.”
That update tells the team almost nothing. It doesn’t say what “fine” depends on, when anyone will know more, or what happens if it isn’t fine. The same update, using the template:
“There is a risk that address verification won’t make the sprint because the platform team hasn’t confirmed the API contract or a staging date. This could affect the sprint goal. I’ll agree the contract with their lead and build against a stub by Wednesday. If the staging endpoint isn’t live by Monday of week two, we’ll ask the product owner whether to ship saved addresses with format checks only and add verification next sprint.”
By Wednesday, Priya has a confirmed contract and a working stub, so the checkout side keeps moving. The platform team’s date slips anyway: an incident pulled their engineers away, and staging is now expected late in week two. Monday arrives with no endpoint, and the trigger fires.
The team brings the product owner a decision instead of a surprise. Saved addresses with format checks give customers most of the value now, and verification can follow once the API is live. The product owner agrees, the sprint goal is updated to match, and the verification story moves to the next sprint with the contract already settled. Nobody spends the last two days of the sprint hoping the endpoint shows up.
A lightweight team habit
None of this needs a risk register or a new meeting. It needs a few questions asked at moments the team already has.
At sprint planning, ask what could stop the team from meeting the goal. Name the dependencies, the unclear stories and the people who will be out. Some of those are reasons to slice the work smaller before the sprint starts.
During daily coordination, check whether any open risk has reached its checkpoint and whether anything new is worth raising. When nothing has changed, that takes a minute.
In the tracker, keep only what helps someone act: the template sentence, the owner, the checkpoint and what happened. If nobody reads a field, stop filling it in.
In retrospectives, look for the same cause coming back. If dependency risk shows up every sprint, the fix is probably in how work is planned across teams. If shifting priorities keep creating risk mid-sprint, that’s a decision-making problem, which When Everything Is a Priority, Nothing Is takes on directly.
Short answers
What is sprint risk?
Sprint risk is uncertainty that could stop a team from meeting its sprint goal. It hasn’t happened yet. Once it does, it becomes an issue, and if that issue stops work right now, it’s a blocker.
When should you raise a sprint risk?
As soon as you have a credible reason to think the sprint goal could be affected. Unclear acceptance criteria, work running long, unconfirmed dependencies, lost capacity, new technical complexity and shrinking test time are all reasons to raise it, before you have proof or a solution.
How do you communicate a sprint risk?
Use five parts: there is a risk that [outcome] because [reason]; this could affect [sprint goal or deliverable]; [owner] will [next action] by [time]; if [trigger], we will [fallback or decision].
Who owns a sprint risk?
One named person coordinates the response, makes sure the next action happens and reports back. The owner doesn’t have to solve the problem alone; the risk belongs to the team.
Does Scrum require a risk management process?
No. The Scrum Guide describes Scrum’s iterative approach as a way to control risk and uses the Daily Scrum to inspect progress toward the sprint goal, but it doesn’t prescribe a risk register or a specific risk process.
A checklist for your next sprint
- Write the sprint goal down and judge risk against it, not against individual tickets.
- At planning, name the dependencies, unclear stories and capacity gaps.
- Raise a risk when you have a credible reason. Don’t wait for proof.
- Use the template: what might happen and why, the impact, the owner’s next action, and the fallback with its trigger.
- Give every risk an owner and a checkpoint with a real time on it.
- Escalate right away when waiting would remove options.
- Thank whoever raised it, then talk about what happens next.
- Take recurring causes to the retrospective.