DEV Community

Michael Lip
Michael Lip

Posted on • Originally published at belikenative.com

How To Write A Post Mortem Report Without Blame Language

I'll never forget my first post-mortem meeting. I was a junior engineer, and the server had crashed at 3 AM during a holiday sale. The report started with "John deployed faulty code without proper review." John was sitting right next to me. The tension in the room was thick enough to cut with a knife.

That report didn't fix anything. It just made everyone defensive.

Here's the thing: post-mortems aren't about pointing fingers. They're about building better systems. When you use blame language, you kill curiosity. People stop asking "why did this happen?" and start asking "how do I avoid getting blamed?" That's the opposite of what you want.

Let me show you how to write post-mortems that actually work.

Why Blame Language Fails

Blame language sounds reasonable at first. "Bob forgot to run the migration script." "Sarah didn't check the logs." "The QA team missed the bug."

But here's the problem: when you blame people, they get defensive. They hide mistakes. They stop speaking up in meetings. And the same incident happens again six months later — just with different people involved.

I've seen this play out at three different companies. The ones that used blame language had the same outages on repeat. The ones that focused on systems? They actually got better.

The goal isn't to assign fault. It's to understand the chain of events so you can break it next time.

How To Write A Post Mortem Report Without Blame Language

Let me walk through the actual process I use. It's based on a framework I picked up from BeLikeNative — a resource that focuses on clear, neutral communication in technical writing.

1. Start With Objective Facts

Before you write anything, gather the timeline. Not opinions — just what happened, when, and in what order.

Bad: "The deploy went wrong because the team rushed."
Good: "At 14:32, a deploy was triggered. At 14:35, error rates spiked to 45%."

Notice the difference? The first version assigns blame. The second version describes events.

Write down every timestamp. Every change. Every alert. Stick to observable facts. You can interpret them later.

2. Use Neutral Language Throughout

This is the hardest part. We naturally want to say "who did what wrong." Instead, focus on "what happened."

Replace "failed to" with "did not." Replace "ignored" with "did not respond to." Replace "caused" with "contributed to."

Here's an example from an actual post-mortem I wrote:

Before: "The on-call engineer failed to escalate the alert within 15 minutes."
After: "The alert was not escalated within 15 minutes. The on-call engineer was handling another incident at the time."

The second version tells the same story without making anyone look bad. And it reveals the real issue: the engineer was overloaded.

3. Use the Five Whys to Find Root Causes

The Five Whys technique is simple. Start with the incident and ask "why" five times. But here's the trick: don't stop at human error.

Let me show you an example:

  • Incident: Database went down.
  • Why? A query locked the table.
  • Why? The query was running during peak hours.
  • Why? There was no check for query timing.
  • Why? The deployment pipeline didn't include a timing review step.
  • Why? No one had documented the requirement.

See what happened? The root cause wasn't "Bob wrote a bad query." It was "the deployment pipeline lacked a timing review." That's a system problem, not a person problem.

4. Write Action Items That Fix Systems

Every action item should address a system gap, not a person's behavior. If your action item is "remind the team to be more careful," you haven't fixed anything.

Good action items look like:

  • Add a pre-deploy check for query timing.
  • Create an alert for table locks.
  • Document the deployment timing policy.
  • Add a review step in the CI pipeline.

Bad action items look like:

  • Tell engineers to be more careful.
  • Remind everyone to check their queries.
  • Have a meeting about best practices.

Action items should be specific, measurable, and system-focused. If you can't write them as a checklist, they're not action items.

5. Review the Report as a Team

Before you publish the post-mortem, review it with everyone involved. Ask them: "Does this accurately describe what happened? Do you feel blamed?"

I've had engineers tell me, "This part makes me look bad." And I've rewritten it. Every time, the new version was better.

The review isn't about making everyone happy. It's about making sure the report is accurate and useful. If someone feels blamed, the language is wrong.

Common Mistakes to Avoid

I've seen a few patterns that trip people up. Watch for these:

Mistake 1: Passive voice as a crutch. Passive voice can help remove blame, but it can also make the report confusing. "The deploy was triggered" is fine. "Mistakes were made" is not. Be specific about what happened.

Mistake 2: Skipping context. If you don't explain why someone made a decision, the report feels incomplete. Include things like "the engineer was handling three other incidents" or "the alert had fired 15 times that week and was being investigated."

Mistake 3: Forgetting to celebrate what went right. Post-mortems aren't just about failures. If someone caught the issue quickly, mention that. If the rollback worked perfectly, say so. This balances the report and reinforces good behaviors.

A Template You Can Use

Here's the template I use for every post-mortem. Feel free to copy it:

Incident Summary: One paragraph describing what happened and the impact.

Timeline: Bullet points with timestamps. Stick to facts.

Root Cause: One sentence describing the system gap.

Five Whys Analysis: Show the chain of reasoning.

What Went Well: Things that helped mitigate the incident.

What Went Wrong: System gaps that contributed.

Action Items: Specific, measurable changes.

Tools That Help

Writing neutral language takes practice. I use a few tools to check my work.

One tool I rely on is the grammar checker from BeLikeNative. It catches blame language and suggests neutral alternatives. It's saved me from sending out reports that would have made people defensive.

I also run my drafts through a text simplifier to make sure the language is clear. Complex sentences can hide bias, so simpler is better.

Final Thoughts

Writing a post-mortem without blame language isn't about being nice. It's about being effective. When you fix systems instead of people, incidents stop happening. When you use neutral language, people share more information. When you ask "why" until you find the system gap, you build something that lasts.

The next time you write a post-mortem, try this approach. Start with facts. Use neutral language. Ask the Five Whys. Write action items that fix systems. And review the report with the team.

You'll get better results. And your team will thank you.

FAQ

Q: What if someone really did make a mistake? Should I still avoid calling them out?

A: Yes. Even if someone made a clear error, blaming them doesn't prevent it from happening again. Instead, ask: "What system allowed this mistake to cause an incident?" Maybe they needed a second review. Maybe the process was unclear. Fix the system, and the person's mistake becomes irrelevant.

Q: How do I handle a post-mortem where the same person keeps causing incidents?

A: That's a pattern, not an incident. Address it separately — in a one-on-one or performance review. The post-mortem should focus on the specific incident and the system gaps. If the same person keeps making errors, the system isn't catching them. That's a system problem too.

Q: Can I use passive voice in post-mortems?

A: Sparingly. Passive voice can help remove blame, but it can also make the report vague. Use it when the actor isn't important ("the alert was triggered at 14:32") but avoid it when you need to be specific ("the deploy was done by the CI pipeline" is fine; "the report was written" is not — who wrote it?).

Top comments (0)