devShakib

Blameless Postmortems Die the Moment Someone Gets Punished

Blameless postmortems aren't a template or a meeting — they're a fragile trust contract. Why one punished engineer resets your whole incident culture, and how to fix it.

A junior engineer on my team took our checkout flow down for nineteen minutes on a Thursday afternoon with a one-line config change. She caught it, rolled it back, and then sat dead still at her desk waiting for the sky to fall. It didn't. We wrote it up, shipped two guardrails that week, and moved on. Six months later she was the person other engineers went to before touching anything scary in production. That outcome had almost nothing to do with our postmortem template and almost everything to do with what happened in the ninety seconds after she said "I think that was me."

Most teams believe they run blameless postmortems. Most teams are wrong. They have a doc with a "blameless" heading, a meeting on the calendar, and a shared belief that they're grown-ups about failure — right up until the day someone senior gets visibly annoyed at the person who broke prod. That one reaction is louder than every process doc anyone has ever written. Blameless isn't a format. It's a promise, and promises are cheap to make and expensive to keep.

This post is about the mechanics underneath the ritual: what a blameless incident review actually is, why it's more fragile than almost anyone treats it, and the concrete moves — in timelines, root cause analysis, action items, and above all in leadership behavior — that make it real instead of theater. If you run incidents, do on-call, or lead an engineering team that cares about reliability, this is the part of the SRE playbook the template can't teach you.

The postmortem theater most teams are actually running

Here's the version of "blameless" I see most often, especially at startups that read the Google SRE book once and adopted the vocabulary without the substance. I've been that startup. Early at Shpper we had the template before we had the culture, and it took a couple of ugly incidents to notice the gap.

There's a template. It has sections: Summary, Timeline, Root Cause, Impact, Action Items. Someone fills it in after an incident, usually the person who was closest to the fire. There's a meeting. People nod. The doc gets a link in a Slack channel nobody reads. Two of the five action items get done; the other three rot in a backlog. Everyone agrees it was "a good learning experience" and goes back to work.

That is theater. It has all the props of a blameless culture and none of the mechanics. And you can spot it because the writing gives it away. Read the root cause of a theater postmortem and it almost always contains a person doing something wrong:

Every one of those sentences ends the investigation exactly where it should begin. "Forgot" isn't a cause. It's the moment you stopped asking questions because you found a human to hang it on. The theater version of blameless is one where nobody says the word "blame" out loud but every artifact quietly points a finger.

The tell isn't in the meeting. It's in the prose. And once you learn to read for it, you see it everywhere — in status pages, in exec summaries, in the "learnings" channel. A postmortem that names a culprit has stopped being an investigation and become a verdict.

Blameless is a trust contract, not a document format

Strip away the templates and here is what "blameless" actually means: the person closest to an incident will tell you the complete, unflattering truth about what happened, because they have concrete evidence that doing so will not be used against them.

That's a contract. One side gives up self-protection — they narrate their own mistakes in detail, including the parts that make them look careless or slow. The other side, management, gives up the satisfaction of punishing someone and the comforting fiction that punishment prevents recurrence. Both sides are trading away something they instinctively want to keep.

The reason this is fragile is that it's asymmetric in time. The engineer pays their side of the contract immediately and in public — they stand up in a room and say "I didn't read the runbook, I assumed it was fine." Management pays its side later, invisibly, and over and over, every time it chooses not to retaliate. And because management's payment is invisible, it's tempting to skip it just once. Just this one time, because this incident was really bad, or this person has a pattern, or the client in Dubai was on the phone at 9pm furious.

You cannot skip it once. The contract isn't renewed per incident; it's priced on the worst thing people have seen you do. One punishment, witnessed by the team, reprices every future postmortem. People don't stop talking — they start talking carefully. And careful is the enemy of true.

This is why psychological safety keeps showing up in the reliability literature: it isn't a soft, HR-adjacent nicety bolted onto engineering. It's the load-bearing precondition for accurate incident data. A team that doesn't feel safe reporting will still report — it just reports a fiction, and you make your reliability decisions on fiction. The quality of your root cause analysis is capped by the quality of the truth people are willing to hand you, and that willingness is a direct function of what they've watched happen to the last honest person.

I've watched this run in reverse too. I once inherited a team that had been through a rough manager, and their first few postmortems with me were suspiciously clean — tidy timelines, nobody at fault, everything filed under "a process gap." It took months of me visibly eating my own mistakes in front of them, out loud, before the postmortems got messy. And messy is exactly when they finally got useful.

The tell: what happened to the person who caused it

If you want to know whether a team is actually blameless, ignore the documents. Ignore what leaders say in all-hands. Look at exactly one thing: what happened to the last person who caused a serious incident.

Not what was said to them. What happened to them.

The team is watching this with far more attention than they will ever give your process docs. Engineers are pattern-matching animals. They run one experiment — usually not on purpose, usually on the person who caused the last big incident — and they read the result precisely. If the result is "the person who broke prod got subtly frozen out," then the lesson the whole team learns is: being close to failure is dangerous, so keep your distance from it.

That lesson is poison, because the people closest to failure are exactly the ones who deploy, who touch the risky systems, who take the hard migrations nobody else wants. The moment those people learn that proximity to incidents is career-limiting, they optimize for distance. They deploy less. They hand off the scary work. They stop reporting the near-misses that never became incidents but told you precisely where the next one was coming from. You don't get a safer system. You get a quieter one, which is much worse, because now you're flying blind and calling it calm.

Near-misses are the highest-value, lowest-cost signal you will ever get in incident management, and they only show up in a culture where reporting one costs nothing. In aviation they built entire anonymous reporting systems around exactly this insight: the free lesson is the one where nobody got hurt. Punish the person who caused the outage and you don't just lose their honesty — you lose every near-miss report from everyone who watched, which is the data that would have prevented the next outage before it happened.

Second stories — why "human error" is never the root cause

There's a concept from safety research — from people who study aviation and medicine, where getting this wrong kills people — called the "second story." The first story of an incident is the shallow one: someone did the wrong thing. The second story is everything that made the wrong thing the reasonable-looking choice in the moment.

"Human error" is always a first story. It's a full stop where you needed a "because."

Take the classic: an engineer runs a destructive command against production instead of staging. First story — they were careless, they should have checked. Case closed, and you've learned nothing. Now ask the second-story questions:

Every one of those is a system property, not a character flaw. And every one is fixable in a way that "be more careful" never is. Care doesn't scale, doesn't survive a tired Friday, and can't be code-reviewed. Guardrails can.

The discipline is specific: whenever your investigation lands on a human decision, treat that as the start of a question, not the end of one. The question is always the same shape — "what made that decision look correct at the time?" People don't make choices they believe are wrong; they make choices that are locally reasonable given what they can see. If you catch yourself thinking "how could they possibly have done that," you have not found the second story. You've found the edge of your own understanding.

This is also why I'm wary of frameworks that promise the root cause. The classic "5 Whys" is a decent conversation-starter, but taken literally it implies incidents have a single linear chain ending at one fault. Real production failures are almost never like that. They're a stack of latent conditions — a missing guardrail, a misleading dashboard, an on-call engineer three hours into an incident, a deploy tool with no dry-run mode — that lined up at once. Serious incident analysis looks less like finding a culprit and more like mapping the several things that all had to be true simultaneously. If your root cause analysis keeps terminating at exactly one person, the method isn't the problem; the direction of the questioning is.

Counterfactuals are a trap here too. "If only they had checked the config" feels like analysis. It isn't — it's blame wearing a lab coat. Infinitely many things, had they been different, would have prevented the incident. Picking the one a specific human did is just choosing who to be quietly disappointed in.

Writing the incident timeline so people volunteer the ugly parts

The timeline is where a postmortem is secretly won or lost, because the timeline is where people decide how honest to be. If narrating the truth feels safe, you get the good stuff — the assumptions, the "I thought it was fine" moments, the Slack message where someone asked "should we test this?" and got ignored. If it feels dangerous, you get a sanitized sequence of events with all the human texture scrubbed out.

A few things I insist on when writing timelines.

Write in facts and observations, not judgments. There's a real difference between these two lines:

14:32 — Engineer carelessly deployed without running the test suite.14:32 — Deploy triggered from local machine. Test suite was not run;        the deploy script does not run tests and nothing prompts for them.

The first assigns a defect to a person. The second describes a system that made skipping tests the default path. Same event, completely different lesson — and completely different signal to the next person deciding whether to be honest in a timeline.

Include what people believed at each step, not just what they did. "At 14:35 the engineer believed the rollback had completed, because the deploy dashboard showed green" tells you the dashboard lies. "At 14:35 the engineer did not roll back" tells you nothing except who to be annoyed at. The gap between what someone believed and what was actually true is where nearly every good action item comes from — it points straight at a signal your system was giving that was wrong or missing.

Let the person who was there write their own section, in first person. When someone can write "I assumed the migration was idempotent because the last three were, and I didn't check" without a manager reframing it into an accusation, you learn the actual gap. The moment you edit that into "insufficient verification of migration idempotency," you've traded a true story for a tidy one.

Praise the ugly detail. When someone volunteers the embarrassing bit — "honestly I was rushing because I wanted to leave" — that is the most valuable sentence in the document, and the room should treat it that way. If the reaction to candor is a wince, you just taught everyone to stop being candid. If the reaction is "thank you, that's exactly the kind of pressure we need to design around," you bought yourself a hundred future honest timelines. Note that "I was rushing to leave" is itself a second story: the fix isn't "don't rush," it's a deploy path safe enough that a rushed human can't take the system down.

Action items that fix systems instead of blaming judgment

The action items are where blameless either becomes real or reveals itself as fake. Bad action items are blame with a checkbox. Good ones change what's possible.

Here's the test I use. If an action item could be honestly rewritten as "try harder" or "be more careful" or "remember to," it's not a fix — it's a reprimand in disguise. Compare:

| Blame disguised as an action item | Actual systemic fix |

| --- | --- |

| "Engineers should double-check the target environment before running migrations." | "Prod shell shows a red banner; destructive commands require typing the environment name to confirm." |

| "Be more careful with config changes." | "Config changes go through the same PR + review + CI path as code; no manual prod edits." |

| "Add more testing before deploys." | "Deploy pipeline runs the test suite and blocks on failure; there is no bypass." |

| "Communicate better during incidents." | "Incident channel auto-created with a template that pins roles: commander, comms, scribe." |

The left column asks humans to be different. The right column makes the safe path the default path, so that being human — tired, rushed, distracted, wrong about which terminal you're in — no longer causes an outage. You can't out-discipline a bad system. You can only redesign it.

A few rules I hold action items to:

One more thing I've learned to track: completion rate is a leading indicator of whether the practice is alive. If action items reliably ship, the team believes postmortems change reality and keeps writing honest ones. If they reliably rot, people quietly conclude the whole exercise is paperwork and start phoning in the analysis. The action-item follow-through is, in a real sense, management continuing to pay its side of the contract in public.

How one bad reaction from a leader resets the whole culture

I want to be precise about the mechanism, because I think it's badly underappreciated how cheap it is to destroy this.

You can run flawless blameless postmortems for two years. Perfect templates, second stories, systemic action items, first-person timelines, the whole practice. Then one incident is bad enough — a client threatens to walk, revenue takes a visible hit, someone senior gets embarrassed in front of their own boss — and a leader, in a moment of stress, says the wrong thing in front of the team. Something like "How did nobody catch this? Who approved this?" With a certain tone. In a certain meeting.

That sentence does more damage than the outage did.

Because the team has been running an experiment for two years, and the experiment was "is the contract real, or does it only hold when the stakes are low?" You just answered it. The contract holds until it matters, which means it doesn't hold. Every honest timeline from here on is now a calculated risk. People will still write postmortems — they're mandatory — but they'll write the theater kind. Sanitized. Defensive. Tuned to make sure that if a leader is stressed and hunting for someone, it isn't them.

The asymmetry is brutal. Trust here is built in hundreds of small, invisible acts — every incident where a leader stayed flat, asked "what did the system let happen," and thanked the person who broke it. None of those moments are memorable. The destruction is a single loud one. You spend two years making deposits nobody notices and one afternoon making a withdrawal everybody does.

If you lead a team, this puts the real work on you, and it is not in the postmortem meeting. It's your face and your tone in the first sixty seconds after bad news, when you're stressed and it would feel so good to find someone to be angry at. What you do in that window is the entire culture; everything written down is an echo of it. A few things I try to hold to:

Key takeaways