Expert · SRE: reliability and incidents · topic 44 of 53 · 30 min
Blameless postmortems and toil
Explanation
What a postmortem is
A postmortem (also called an incident review or retrospective) is a document written after an incident. It records what happened, how users were affected, what the team did, why it happened, and what will change so it does not happen again. The goal is learning, not paperwork.
Write one for every serious incident. The Google SRE book lists triggers such as: user-visible downtime or degradation beyond a set limit, any data loss, an on-call engineer having to step in (a rollback or rerouting traffic), a resolution time above a limit, and a monitoring failure, meaning a human found the problem before the alerts did.
Why blameless
Blameless means the review focuses on systems and processes, not on punishing a person. It assumes that everyone acted with good intentions, based on the information they had at the time.
If engineers fear punishment, they stay quiet about what they really did and saw, and the team learns nothing. "Human error" is never the end of the analysis; it is the start. If one mistyped command could delete a production database, the real questions are: why was that possible, why did no check stop it, and why did recovery take two hours?
A postmortem template
- Title, date, authors, status (draft, reviewed, done).
- Summary: three or four sentences anyone in the company can understand.
- Impact: who was affected, for how long, how many requests, orders or rupees, and how much error budget was used.
- Timeline: key events with times and time zone, from the first sign to full recovery.
- Root causes and contributing factors: usually several, not one.
- Detection: how we found out and how long it took.
- What went well, what went badly, and where we got lucky.
- Action items: each with an owner, a due date, a priority and a ticket link.
The five whys, and its limits
The five whys is a simple method: ask "why?" again and again until you reach something you can fix in the system.
Checkout failed for 40 minutes.
Why? The database ran out of connections.
Why? The new cart code opened a connection per item and did not close it.
Why? The code review did not catch the leak.
Why? There is no load test in the pipeline that would show rising connections.
Why? Load tests were seen as optional for small changes.
Fix: add a load test stage and a connection-pool alert; add a lint rule for unclosed connections.Its limits: it follows one chain, but real incidents usually have several contributing factors (the leak, the missing alert, the slow rollback). It can stop at "someone made a mistake". And the answers depend on who is asking. Use it as a starting tool, then also ask "what else made this worse?" and "what made recovery slow?".
Action items that actually happen
- Make each one specific and checkable: "Add an alert when the DB pool is above 80% for 5 minutes", not "improve monitoring".
- Give each an owner and a due date, and put it in the team's normal backlog, not only in the document.
- Mix types: prevent (stop it happening), detect (find it faster), mitigate (recover faster).
- Avoid "be more careful". People cannot be careful at 2 am every time; systems can.
- Review open action items every week or two until they are done.
Sharing what you learn
Publish postmortems where the whole engineering team can read them. Some teams hold a monthly postmortem reading session, or role-play old incidents with new on-call engineers (Google calls this the "Wheel of Misfortune"). Learning from other teams' incidents is much cheaper than having your own.
Toil
The SRE book defines toil as work that is manual, repetitive, automatable, tactical (reacting rather than planning), without lasting value, and that grows as the service grows. Examples: restarting a service by hand every morning, copying certificates to servers, creating user accounts from emails, resizing disks when an alert fires.
Some toil is unavoidable, but too much leaves no time for engineering, and people burn out. Google's SRE teams aim to keep toil below 50% of each SRE's time and spend the rest on engineering work that reduces future toil. Measure it (for example, log hours spent on manual tasks for two weeks), then automate the biggest items first: scripts, self-service forms, auto-remediation and better defaults.
Need help?
Stuck on a word or an idea? Search this course, or every course, and jump straight to the explanation or a worked question.
Try:
Watch the lesson
Blameless postmortems and toil · 1/7
In this lesson you will learn how teams learn from incidents, and how they cut down manual work.
Prefer a video by a teacher? Find free videos on “blameless postmortem template five whys toil sre” on YouTube ↗
In real life: A BPO's payroll export
At a BPO in Gurugram, a payroll file for 3,000 staff was sent to the bank with last month's figures, delaying salaries by a day. The postmortem did not blame the engineer who ran the export. It found that the export was a manual 14-step checklist run every month, that the script silently fell back to old data when a source table was empty, and that nobody checked totals before sending. Action items: make the script fail loudly on empty input (owner Rohan, 1 week), add an automatic total check against HR records (owner Divya, 2 weeks), and automate the whole export as a scheduled job (owner Rohan, 1 month). The monthly toil of about 6 hours disappeared.
Practice (0/3 done)
Which sentence fits a blameless postmortem?
Write a short postmortem from this story. On 2026-10-12 a startup's UPI collect API returned errors from 19:10 to 19:55 IST. A config change at 19:05 lowered the payment gateway timeout from 10 s to 1 s by mistake (a typo: 1000 ms instead of 10000 ms). About 18,000 payments failed. The on-call engineer noticed only at 19:30 after customer complaints, because the alert was on CPU, not errors. She rolled the config back at 19:50; errors stopped by 19:55.
Write mttd_mttr(incidents). Each incident is a dict of ISO 8601 time strings: "start" (impact began), "detected" and "resolved". MTTD (mean time to detect) is the average of detected minus start; MTTR here means mean time to resolve, the average of resolved minus start. Return a tuple (mttd, mttr) in minutes, each rounded to 1 decimal place. Return (0.0, 0.0) for an empty list. Use datetime.fromisoformat.
Quick quiz
Read more (free)
Related help
Before this, learn
This topic builds on these. If something here feels new, open them first.
Related topics
- Resilience patterns, capacity and chaos engineeringSRE: reliability and incidents · same module
- Monitoring, logs and alertsFull-Stack Development · Deploying and running the app
- DevOps careers and interviews in IndiaGitOps, platform engineering and DevOps careers
- IaC in a team: reviews, pipelines and policyCloud Computing (AWS, Azure, Google Cloud) · Infrastructure as code
Questions people ask about this
Open a question to see the answer and why. The first ones are this topic's own quiz, so try the quiz above before you peek.
Why are postmortems blameless?
Answer: So people share the full truth and the team fixes the system
Fear of blame hides facts; blameless reviews surface them.
Which is a good action item?
Answer: Add range validation for timeout settings; owner Kiran; due 2026-10-19
It is specific, has an owner and a date, and changes the system.
What is a main limit of the five whys method?
Answer: It follows a single chain, while incidents usually have several contributing factors
Use it as a start, then look for other contributing factors.
Which task is toil?
Answer: Manually copying renewed TLS certificates to 20 servers every quarter
It is manual, repetitive, automatable and grows with the number of servers.
What share of time do Google's SRE teams aim to keep toil below?
Answer: 50%
The SRE book states a goal of keeping toil below 50% of each SRE's time.
An SLO is 99.9% over 30 days. Roughly how much full downtime does the error budget allow?Related
In an incident, what comes before finding the root cause?Related
Answer: Stopping the harm, for example by rolling back
First get users working again (rollback, restart, switch a feature off). Then find and fix the cause calmly.
Before restarting a stuck process during an incident, what should you try to do?Related
Answer: Save logs or a memory dump, because the restart wipes evidence
Capture evidence first, so the root cause can still be found later.
From Incident management
Which role is most focused on SLOs, on-call and reducing toil?Related
Answer: Site reliability engineer (SRE)
SREs own reliability: SLOs, incident response and automating repetitive operational work.
Pass the quiz (60% or more) or mark this topic as done when you are ready.
Your progress is saved on this device only.
Next steps
- 1 more topic in “SRE: reliability and incidents” before its exam: Resilience patterns, capacity and chaos engineering.
- Module 10 exam: SRE, reliability and incidents · 13 questions · 20 min, without help. 4 topics of this module still to finish first.
- Then the next module, DevSecOps. 53 topics left in the course before the final exam.