Blameless Post-Mortems

A post-mortem is the discipline that turns "we had an incident" into "the system is now better." Blameless means: the question is "what about the system allowed this to happen," not "who screwed up." The framing matters because if engineers are afraid of being named, they hide what actually happened, and you learn nothing.

Most teams claim to do blameless post-mortems and don't. The signals that tell you which kind your team actually runs are below.

What a post-mortem document looks like

Useful structure:

# Incident: User logins failing in EU - 2026-04-12

## Summary
2-3 sentences. What broke, who was affected, when, how was it fixed.

## Impact
- Users affected: 38,000 EU customers, ~6% of total active
- Duration: 14:32-15:18 UTC = 46 minutes
- SLO impact: error budget for the month dropped 22%
- Revenue impact: estimated $X (or "negligible")
- Trust impact: 47 support tickets, mostly Twitter chatter

## Timeline
14:30 - Deploy of v2.4.7 begins
14:32 - First 5xx spikes in eu-west-1 (alert: "p95 latency > 2s")
14:35 - On-call (X) acknowledges, opens incident channel
14:38 - First hypothesis: cache regression. Investigation begins.
14:51 - Hypothesis revised: auth service circuit breaker tripped
14:55 - Mitigation: roll back v2.4.7
15:08 - Rollback complete; latency normalising
15:18 - Verified clean; incident closed

## Root cause(s)
Detailed technical narrative of what actually happened.
Multiple causes if relevant; "contributing factors" is fine.

## What went well
- Alerting fired within 2 minutes of customer impact
- Rollback was one button press; took 13 minutes end-to-end
- Communication in #incidents was clear and pace was good

## What went badly  
- Hypothesis hunting took 13 minutes; the right tool to diagnose
  was a runbook we didn't follow
- The pre-deploy load test missed this because it only ran in us-east

## Action items (concrete, owned, dated)
- [ ] AI-1: Add EU-specific load test stage to deploy pipeline (X, 2026-04-26)
- [ ] AI-2: Update auth-service runbook to include circuit-breaker check (Y, 2026-04-19)
- [ ] AI-3: Reduce auth-service circuit breaker timeout from 60s to 15s (Z, 2026-04-23)
- [ ] AI-4: Add unit test for the specific code path that regressed (X, 2026-04-19)

That's the form. The discipline is in the content.

What "blameless" actually means in practice

The bad version: the post-mortem says "X deployed bad code" and that's framed as "blameless because we didn't blame X." It's blame in a fig leaf.

The good version: the post-mortem says "the deploy pipeline accepted code that was unit-tested but not integration-tested in EU; the pre-deploy review was a rubber stamp because the reviewer didn't know what to look for; the test framework didn't have an EU stage." X is mentioned as "the engineer on duty" if at all; the system (pipeline + review + test infrastructure) is what's analysed.

The test for whether your team is actually blameless: would the engineer who made the mistake be willing to write the post-mortem themselves? If yes, you're there. If no, the culture is performative.

Why blameless is the right framing

Blame creates fear. Fear creates lying. Lying creates worse incidents.

Concrete: if engineers fear being named, they:

Each of these directly degrades reliability. A blameless culture is faster to recover, faster to learn, and produces engineers who own systems instead of avoiding them.

This isn't ideology; it's reproducible empirical observation across SRE-mature organisations.

What to write down

The narrative is the most important thing. Good post-mortems read like a story:

The reader should be able to follow how the team came to understand what was happening. That narrative is where the learning lives — for everyone who reads it later.

Avoid:

The five whys, used carefully

Toyota's "five whys" — keep asking why until you get to a root cause. Useful technique but can mislead.

Trap 1: there's rarely one root cause. Most incidents are several contributing factors that aligned. "Five whys" can artificially focus on one branch and miss the others.

Trap 2: you can ask "why" until the answer is "because the universe exists." Stop at actionable.

Better framing: ask "what conditions had to exist for this to happen" and list them all. Each is a leverage point for prevention.

Action items: where post-mortems die

Most post-mortems produce action items. Most action items don't ship. The pattern:

Defences:

If your action items don't close, your post-mortems aren't producing improvement; they're producing paperwork.

Severity calibration

Not every incident needs a full post-mortem. A reasonable scale:

The risk is post-mortem fatigue — every minor blip gets a 5-page document, nobody reads them, nobody acts. Calibrate.

Reading post-mortems is also the job

A post-mortem you wrote helps your team learn. A post-mortem you read helps you learn from someone else's incident.

Practices that work:

Failure modes of the post-mortem culture

A post-mortem template

For a team that doesn't have one, the structure at the top of this page works. Adapt the headers; keep the discipline of timeline + narrative + named action items.

Further reading