Pattern — Blameless Postmortem
The problem it solves
A painful outage ends with a document that names the engineer who skipped a step, leadership asks pointed questions in the review, and the action item is "be more careful" (Drill 31). It feels like accountability was served. The trap: twenty people watched one person get interrogated for being visible, and all twenty quietly updated the same rule — don't be the one whose mistake is seen. Reporting is voluntary, and near-misses are known only to the person who almost caused them, so blame doesn't reduce errors — it reduces error visibility. Two quarters later a major incident arrives carrying precursor events people noticed and never filed. The postmortem was the org's error-detection sensor, and blame turned it off.
The pattern
Run every postmortem blamelessly: the analysis targets the system and the conditions, never a person's character. The load-bearing move is to replace "who screwed up?" with "what made this action seem reasonable at the time?" — because the honest answer (time pressure, a flaky check everyone skips, ambiguous ownership) is where a durable fix actually lives. Every action item is a systemic control — a guard, a check, or a default with a named owner and a due date — not a memory task. And you protect the sensor directly with a near-miss reporting channel that is firewalled from performance review, so problems surface while they're still cheap. Blameless isn't softness; it's instrumentation.
How to apply it
- Trigger and SLA. Every SEV1 and SEV2 gets a written postmortem; publish the doc within 5 business days while memory is fresh. Make it the default artifact of an incident, not a punishment reserved for bad ones.
- The template has no name field in the causal chain. Roles are allowed ("the deploying engineer," "on-call"); identities are not. The central, mandatory prompt is "what made this action seem reasonable at the time?" Add a standing precursor-hunting section: "what smaller events pointed here, and were any reported?"
- Every action item is a control, with an owner and a due date ≤ 30 days. A control is a guard, a check, or a default — the skipped verification step becomes a pipeline gate, a required field, or an automatic default, so it can't be skipped again. Reject at review, as non-controls: "be more careful," "remember to," "double-check," and "training." The test: does the fix still work when this specific engineer is on vacation?
- Stand up a protected near-miss channel. Filing must cost ≤ 2 minutes (a form or a Slack shortcut), be triaged weekly, and be explicitly firewalled from performance review. Track near-miss volume as a health metric reviewed quarterly — the target direction is up. A quarter that reports zero triggers an investigation of the channel, not a celebration.
- Design leadership behavior in. No pointed questions at named individuals in the review meeting. Leaders open the reporting culture the fastest known way: by postmorteming their own mistakes first.
flowchart TD
A["SEV1 / SEV2 outage"] --> B["Blameless postmortem within 5 days:<br/>what made this seem reasonable?"]
B --> C["Systemic action items:<br/>guard / check / default<br/>owner + due date (30 days)"]
B --> D["Precursor hunt:<br/>what smaller events pointed here?"]
C --> E["Skipped step becomes automatic,<br/>not a memory task"]
F["Protected near-miss channel<br/>(2 min to file, weekly triage)"] -.-> G["Near-miss volume tracked<br/>quarterly — target UP"]
G -.-> D
E --> H["Fixes land before the<br/>next major incident forms"]
G --> H
When to use it — and when not
Use it for every incident review — it is the default operating mode, not a special case. The one hard boundary: blameless is not consequence-free. It is fully compatible with performance management; it is incompatible with using the postmortem itself as performance management. Genuine gross negligence or malice is a separate HR track — you just don't run it through the learning artifact, or you poison the sensor for everyone. And blameless does not mean ownerless: "no name in the causal chain" is not "no name on the fix." Each action item still needs an accountable owner. Skip the heavyweight full template for the smallest incidents — a SEV3 may warrant only a lightweight note — but never skip it to protect someone from scrutiny; that's the failure mode this pattern exists to prevent.
Signals it's working
- Near-miss reports are non-zero and trending up quarter over quarter — the single most important gauge. Zero is the worst possible number: it means the channel is dead, not that nothing almost happened.
- Action-item review rejects non-controls: the count of "be more careful"/"training" items shipped is 0; every accepted item is a guard/check/default with an owner and a due date.
- Unreported precursors trend toward zero — each one found in a postmortem is a measurement of reporting-culture damage, not of individual failure.
- Leaders appear as authors of their own postmortems. Repeat incidents with the same root condition fall, because fixes are systemic rather than "we'll remember next time."
Seen in the wild
- NASA's Aviation Safety Reporting System (ASRS) — run deliberately independent of the regulator (the FAA), it grants reporting pilots limited immunity and takes in on the order of ~100,000 reports a year; the industry decided knowing about near-misses is worth more than punishing them, and that flow is a large part of why commercial aviation is so safe.
- Google SRE codified the blameless postmortem as standard practice in the SRE Book and Workbook — postmortems focus on process and technology, not people.
- Etsy / John Allspaw's "Just Culture" popularized blameless postmortems in software engineering.
- GitLab, January 2017 — after an engineer deleted a production database directory, GitLab ran the postmortem blamelessly and in public (recovery livestreamed); the engineer was not shamed, the fixes were systemic, and the company gained credibility.
See it
CardsScene carries the load-bearing config (5-day SLA, owner + 30-day due date, 2-minute near-miss channel, quarterly review); CompareScene/ChainScene shows the tradeoff — blame drops near-miss reports to 0 and hides precursors, while the blameless prompt turns skipped steps into automatic guards.
Named concepts: blameless postmortems, psychological safety as a reliability control, near-miss reporting, systemic vs. personal action items.
