Skip to content

The Retro Format

The RACI matrix sorted out who owns what while the work is running. This page is about what you do after a chunk of work is done: you pause, look back honestly, and decide what to change. That pause is a retrospective — a “retro” — and without it a team quietly repeats the same mistakes forever, because nobody ever stops long enough to name them.

A retro is not a status meeting and not a blame session. It’s a short, structured hour where a team turns lived experience into a small list of concrete improvements it will actually make. This page gives you the format, tells you how to run it, shows a filled-in example, and — most importantly — explains the two ways retros fail: they turn into venting with no change, or into finger-pointing that teaches people to hide problems. Both are avoidable.

Teams generate experience constantly — a project ships late, a handover goes smoothly, a customer complaint reveals a gap. But experience isn’t the same as learning. Learning only happens when someone stops the treadmill, asks “what actually happened and why,” and changes something as a result. Most teams never stop the treadmill. They finish one thing and sprint straight into the next, carrying every unexamined mistake with them.

The retro is the deliberate stop. Its job is narrow and worth stating plainly: turn what the team just lived through into a few owned changes for next time. Not a report. Not a feelings-dump. A short list of things that will be different, each with a name attached.

Run it at a natural boundary — the end of a sprint, a project, a quarter, a big launch, or after any incident worth learning from. Cadence matters more than length: a 45-minute retro every two weeks beats a three-hour post-mortem once a year, because small, frequent corrections compound.

The retro follows five steps, in order. The order is not decoration — each step sets up the next.

THE RETRO — five steps, ~60 minutes for a team of 5–8
0. THE PRIME DIRECTIVE (read aloud, ~1 min)
"Regardless of what we discover, we understand and truly believe
that everyone did the best job they could, given what they knew
at the time, their skills, and the situation."
→ This is blameless reflection. We examine the system, not the person.
1. SET SAFETY & REVIEW LAST TIME (~5 min)
- Restate the prime directive above.
- Read out last retro's action items. For each: done / not done / dropped?
- This is the single most important habit. (See "Closing the loop" below.)
2. GATHER DATA — what actually happened? (~15 min)
- Everyone writes items in three buckets (sticky notes or a shared doc):
• What went well (keep doing this)
• What didn't go well (this hurt us)
• Puzzles / questions (we're not sure why this happened)
- Facts and observations, not solutions yet. Silent writing first,
then read them out. Group similar items together.
3. GENERATE INSIGHTS — why did it happen? (~15 min)
- Pick the 2–3 biggest themes from the "didn't go well" bucket.
- For each, ask "why?" until you reach a cause you can actually change.
- Look for the SYSTEM cause (a missing check, an unclear owner, a
bad handoff), not a person to blame.
4. DECIDE ACTIONS — what will we change? (~15 min)
- Choose AT MOST 2–3 concrete actions. Fewer is better.
- Each action needs: a clear owner (one name) and a due date.
- If nobody will own it, it is not an action — drop it or reshape it.
5. CLOSE (~5 min)
- Read the final action list back. Confirm each owner agrees.
- Quick round: one word on how the retro itself felt.
- Record the actions where the team will see them next time.

Read the prime directive out loud, every time. It feels corny the first time and it is the most important line in the room. Say it anyway. It gives everyone explicit permission to surface an ugly truth without it becoming an accusation. Skip it and people quietly self-censor — the real problems stay hidden because naming them feels like snitching.

Separate observing from fixing. Steps 2 and 3 are the discipline. The instinct in any group is to leap from a symptom straight to a solution (“we shipped late” → “let’s add more people”). Force the pause: first collect what happened, then dig into why, and only then decide what to do. A fix aimed at the wrong cause wastes the whole hour.

Cap the actions — hard. This is the rule most teams break. You will generate a dozen good ideas. If you leave with a dozen actions, you will do roughly zero of them, because a long list has no priority and no room in a busy week. Pick two or three. A retro that produces one change the team actually makes beats one that produces ten it won’t.

Every action needs one owner and a date. “The team should improve testing” is a wish, not an action — no single person is responsible, so no one is. “Priya adds a pre-release checklist by Friday” is an action. If a proposed change has no willing owner, that’s real information: either it doesn’t matter enough, or it belongs to someone not in the room. Either way, don’t pretend it’s a commitment.

A five-person software team at a mid-sized company has just finished a two-week sprint that ended with a rushed, buggy release. Here’s their retro artifact.

RETRO — Payments Team — Sprint 24 — 8 July 2026
Present: Priya, Marco, Dana, Sam, Lee Facilitator: Dana
── LAST RETRO'S ACTIONS (from Sprint 23) ──
✓ DONE Marco set up the shared on-call calendar
✗ NOT DONE "Write onboarding doc" — no owner had time. DROPPING it;
it never had a real owner. (Lesson: don't accept ownerless actions.)
── WHAT WENT WELL ──
• Pair-debugging the refund bug on Tuesday — fixed in an hour, not a day
• New customer-facing status page landed and got good feedback
• Standups stayed to 10 minutes all sprint
── WHAT DIDN'T GO WELL ──
• Release on the last day was rushed; two bugs reached customers
• Nobody knew who was supposed to test the payment flow before release
• Requirements for the discount feature changed mid-sprint, twice
── PUZZLES / QUESTIONS ──
• Why do our releases always cluster on the final day?
── INSIGHTS (the "why") ──
Theme 1: Rushed, buggy release
→ Why? Testing happened at the very end, under time pressure.
→ Why at the end? No one owned "is this ready to release?" —
it was nobody's job, so it happened last and fast.
→ SYSTEM cause: missing release ownership + no pre-release check.
Theme 2: Requirements changed twice mid-sprint
→ Why? The discount feature entered the sprint only half-defined.
→ SYSTEM cause: we start work before "done" is written down.
── ACTIONS (max 3, each owned + dated) ──
1. Priya — Create a short pre-release checklist (what must pass
before we ship). Draft by Fri 11 Jul.
2. Dana — Assign a named "release owner" for each sprint, starting
Sprint 25. Added to sprint kickoff. By Mon 14 Jul.
3. Marco — No feature enters a sprint without a one-line "done"
definition. Enforce at planning. Starting Sprint 25.
(We generated 7 ideas. We chose 3. The other 4 are parked in the doc.)

Notice what this artifact does. It reviews last time’s actions honestly (one was done, one is being dropped with a lesson attached). It gathers plain observations before jumping to fixes. It digs from symptom (“rushed release”) to a changeable system cause (“nobody owned release-readiness”). And it ends with exactly three actions, each with one name and one date — and an explicit note that four other ideas were parked, not committed.

Closing the loop: how improvement compounds

Section titled “Closing the loop: how improvement compounds”

The single habit that separates teams that get better from teams that just meet is Step 1: reading last retro’s actions out loud before doing anything else.

This closes the loop. When the first thing that happens in every retro is “here’s what we said we’d change last time — did we?”, two things follow. People start treating actions as real commitments, because they know they’ll be asked about them in front of the team. And improvements compound — each retro builds on a base of changes that actually stuck, instead of generating a fresh wish-list that evaporates.

Without loop-closing: With loop-closing:
Retro → 8 actions → 0 done Retro → 3 actions → 2 done, 1 dropped
Retro → 9 actions → 0 done ↑ checked at start of next retro
Retro → cancelled Retro → 2 new actions on top of the 2 that stuck
(no learning) (learning accumulates)

If you adopt only one thing from this page, adopt this: cap the actions, give each an owner and a date, and open the next retro by checking them. That loop is the entire engine.

At the end of your team’s next natural boundary — a sprint, a project, a busy month — run a 45-minute retro using the five-step format above. Read the prime directive out loud even though it feels awkward. Do silent writing into the three buckets before anyone speaks. Then cap the meeting at two owned, dated actions — resist the urge for more. Write them where the team will see them, and put “review last retro’s actions” as the literal first line of your next retro’s agenda. Run it twice and see whether the second one already feels different.