<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Blameless Postmortem · Jared Lynskey</title>
    <link>https://jared.lynskey.co.nz/en/tags/blameless-postmortem/</link>
    <description>Short stories of value on software engineering and engineering leadership — performance reviews, hiring and scaling teams, CI/CD, DevOps monitoring and agentic AI. Written from Seoul.</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2026 Jared Lynskey</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/en/tags/blameless-postmortem/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Blameless Postmortems and Disaster Planning: Handling Human Error in IT</title>
      <link>https://jared.lynskey.co.nz/en/posts/2023/2023-10-07-handling-human-errors/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/en/posts/2023/2023-10-07-handling-human-errors/</guid>
      <pubDate>Sat, 07 Oct 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Blameless Postmortem</category>
      <category>Incident Management</category>
      <category>Disaster Recovery</category>
      <category>Human Error</category>
      <category>Risk Management</category>
      <category>SRE</category>
      <description>What a blameless postmortem is, a simple postmortem template, and the boring habits that keep human error survivable: written procedures, automation, and a disaster recovery plan you&#39;ve tested.</description>
      <content:encoded><![CDATA[<p>A blameless postmortem is a written review of an incident that asks how the system let a mistake happen, not who made it. It&rsquo;s the most useful habit I know for handling human error in IT, because people only own up to mistakes quickly when they know they won&rsquo;t be punished for them. The rest is unglamorous: fewer chances to make the mistake in the first place, and a tested plan for when something big goes wrong anyway.</p>
<p>I did a year in network operations at Spark back in New Zealand, and the lesson that stuck was simple: people make mistakes and systems fail, on their own schedule, without asking whether you&rsquo;re ready. The only variable you control is how prepared you are when it happens.</p>

<h3 class="relative group">Make mistakes safe to admit: the blameless postmortem
    <div id="make-mistakes-safe-to-admit-the-blameless-postmortem" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#make-mistakes-safe-to-admit-the-blameless-postmortem" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>The biggest single improvement isn&rsquo;t technical. If people get punished for mistakes, they hide them, and a hidden mistake gets fixed hours or days later than it should. A team where someone can say &ldquo;I broke it, here&rsquo;s exactly what I did&rdquo; within minutes will always recover faster. The follow-up matters just as much: don&rsquo;t stop at patching the symptom. Dig for the root cause, or the same mistake comes back wearing a different hat.</p>
<p>That follow-up is what a blameless postmortem is for. After any incident worth learning from, someone writes it up: what happened, what it cost, how it was fixed. The write-up assumes everyone acted in good faith with what they knew at the time, so instead of asking who to blame, it asks what made the mistake easy: a missing confirmation step, a misleading dashboard, a runbook that didn&rsquo;t exist. &ldquo;An engineer ran a migration against production by mistake&rdquo; becomes &ldquo;the deploy script let a migration run against production without a check&rdquo;. Then the write-up is shared, so other teams learn from it too, and it ends with action items, each with an owner and a date, so it doesn&rsquo;t become a document nobody acts on. The postmortem chapter of Google&rsquo;s SRE book, <a href="https://sre.google/sre-book/postmortem-culture/"  target="_blank" rel="noreferrer">Postmortem Culture: Learning from Failure</a>, is the long version, and it comes with a <a href="https://sre.google/sre-book/example-postmortem/"  target="_blank" rel="noreferrer">worked example</a>.</p>

<h3 class="relative group">A blameless postmortem template
    <div id="a-blameless-postmortem-template" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#a-blameless-postmortem-template" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Something like this is enough to start with. Keep it short enough that people actually fill it in.</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="gh"># Postmortem: &lt;short title&gt;
</span></span></span><span class="line"><span class="cl">Date: YYYY-MM-DD · Authors: &lt;names&gt; · Status: draft / reviewed
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Summary
</span></span></span><span class="line"><span class="cl">Two or three sentences: what broke, for how long, how it was fixed.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Impact
</span></span></span><span class="line"><span class="cl">Who was affected, how many, for how long. Any lost data or revenue.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Timeline
</span></span></span><span class="line"><span class="cl">One time zone throughout.
</span></span><span class="line"><span class="cl"><span class="k">-</span> 14:02 deploy starts
</span></span><span class="line"><span class="cl"><span class="k">-</span> 14:09 first alert fires
</span></span><span class="line"><span class="cl"><span class="k">-</span> 14:15 rollback starts
</span></span><span class="line"><span class="cl"><span class="k">-</span> 14:21 error rate back to normal
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Contributing factors
</span></span></span><span class="line"><span class="cl">What in the system, process or tooling let this happen. No names.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## What went well
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## What didn&#39;t go well
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">## Action items
</span></span></span><span class="line"><span class="cl">| Action                                      | Owner  | Due        |
</span></span><span class="line"><span class="cl">|---------------------------------------------|--------|------------|
</span></span><span class="line"><span class="cl">| Add a confirmation step to migration script | &lt;name&gt; | YYYY-MM-DD |</span></span></code></pre></div></div>

<h3 class="relative group">Reduce the odds of the mistake in the first place
    <div id="reduce-the-odds-of-the-mistake-in-the-first-place" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#reduce-the-odds-of-the-mistake-in-the-first-place" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Three boring things do most of the work here. Keep skills current — errors love outdated knowledge, so regular training is maintenance, not a perk. Write procedures down — a lot of &ldquo;human error&rdquo; is really ambiguity error, someone guessing because the doc didn&rsquo;t exist. And automate the repetitive stuff: humans are terrible at doing the same task correctly five hundred times, and computers are built for exactly that. On top of those, put a second pair of eyes on anything risky. Peer review, or even a structured self-check, catches an embarrassing share of problems before they ship.</p>

<h3 class="relative group">Plan for the big one before it arrives
    <div id="plan-for-the-big-one-before-it-arrives" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#plan-for-the-big-one-before-it-arrives" aria-label="Anchor">#</a>
    </span>
    
</h3>
<p>Start with an honest risk assessment: internal weak points like your IT infrastructure, external ones like natural disasters. Put real-time <a href="https://jared.lynskey.co.nz/en/posts/2025/2025-10-13-devops-monitoring/" >monitoring</a> in place as your early-warning system. Then write the plans: a business continuity plan for disruptions in general, and a disaster recovery plan for the IT side, which says how long each system can be down and how much data you can afford to lose (the recovery time and recovery point objectives, RTO and RPO).</p>
<p>An untested plan is a guess, so run drills. Decide in advance who tells stakeholders what, because improvised crisis communication is how panic spreads. And don&rsquo;t skip the unglamorous rest: stay in touch with local authorities, keep up maintenance, carry the right insurance.</p>
<p>None of this is exciting, which is probably why it works. The companies that handle failures well aren&rsquo;t lucky — they planned for them while everything was still fine.</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-10-07-handling-human-errors/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
