An incident review with actionable follow-up and a visible account of operational load.
Restoring service is urgent; understanding the contributing conditions takes a different kind of attention. Reliability improves when incident learning changes how the system is built and operated, and when the team has the capacity to make those changes.
Define impact in the customer’s terms
Start with the user journey that failed. Record which users were affected, what they could not do, how long the impact lasted, and how you know. Internal infrastructure alerts are evidence, but a recovered server does not necessarily mean the customer’s work is complete. A backlog, lost event, or inconsistent state may still need attention.
During response, separate incident coordination, technical investigation, and communication where the size of the incident warrants it. Keep a shared factual timeline. State uncertainty clearly and avoid inventing an expected recovery time simply to fill a status update. Communication needs an owner even when the cause is not yet understood.
Investigate conditions, not just the last mistake
After recovery, reconstruct what participants knew at each point. Examine the deployment, assumptions, detection, access, runbooks, and escalation path. Avoid reasoning backward from the outcome as if it was obvious in advance. A person making a change is one event in the story, not a sufficient explanation for why the system allowed the harm.
Use questions to explore several contributing paths. A single chain of “why” questions can hide parallel causes. Ask what made the incident possible, what made it hard to detect, what prolonged recovery, and what limited the impact. Preserve unresolved questions instead of forcing a confident answer into the report.
Choose follow-up that changes the outcome
An action should explain which failure path it interrupts. Prefer a concrete safeguard, earlier detection, smaller blast radius, or faster recovery over a vague instruction to be more careful. Training can be useful, but it should not be the only response to a system that makes the same mistake easy.
Assign an owner, priority, and a way to verify the improvement. Track follow-up in normal planning so reliability work competes openly with other work. Review overdue actions and decide whether they remain important. Closing a ticket proves an activity occurred; a recovery exercise or a tested guard may provide stronger evidence that the risk changed.
Manage operational load as real work
Record pages, interruptions, repeated alerts, and time spent recovering from overnight work. Give the rotation an owner who can change priorities and arrange support. Share system knowledge through shadowing and practice before making a new person solely responsible. Escalation and access must work when the primary expert is unavailable.
Safer releases also reduce response load. Small changes, useful automated checks, clear release identity, progressive exposure where appropriate, and practiced rollback shorten the distance between a bad change and a safe state. A rollback plan needs to account for data changes and external side effects; reverting application code alone may not undo them.
Change the conditions that made failure possible
A stable operation key
A repeated-delivery test
A reconciliation report
A reminder to be careful supports the safeguards; it does not replace them.
Put it to work
0 of 7Use these prompts to check your next step. Your marks stay on this device.
Watch for these failure modes
- Stopping the investigation at “human error.”
- Producing many actions with no prioritization.
- Calling service restored before downstream data is reconciled.

Incident learning review
Fill it in with the people involved, within a week of the incident.
10 prompts: Impact and evidence, Timeline with timestamps, What participants knew, and 7 more.
Reliability resources
Open the original work directly. Our notes explain what each resource contributes and where its advice needs context.
Startup Lessons Learned - Five Whys
A concrete account of linking failures to improvements in onboarding, tests, deployment, and operational feedback.
On Call Rotations: How Best to Wake Devs Up in the Middle of the Night
A discussion of on-call as shared ownership, including the managerial work required to make it sustainable.
Trunk Based Development
A practical introduction to integrating small changes frequently and reducing long-lived branch divergence.
Site Reliability Engineering
Google’s free book on error budgets, toil, monitoring, on-call, and operating services. Start with the principles before the large-scale machinery.
The Site Reliability Workbook
The practical companion to the SRE book, with implementation examples for SLOs, alerting, toil, and organizational change.
Postmortem Culture: Learning from Failure
A concrete account of blameless postmortems, when to write them, and how an organization turns incident reviews into learning.
Implementing SLOs
A hands-on chapter for selecting service-level indicators, defining objectives, and using an error-budget policy to guide reliability work.
Continuous Delivery
A capability guide to keeping software deployable and making releases low risk, with a clear distinction between delivery and automatic deployment.
The Practical Test Pyramid
A detailed testing tutorial connecting fast unit tests, integration boundaries, contract tests, and end-to-end coverage to practical code examples.
Timeouts, Retries, and Backoff with Jitter
Why retries can amplify an outage, how timeout boundaries matter, and how backoff and jitter help keep transient failures from becoming overload.
An Introduction to Distributed Systems
Public teaching notes on time, networks, faults, safety, liveness, algorithms, and practical production concerns, with links to optional lab work.
Awesome Scalability
A large reading index of performance, scalability, reliability, and real-world architecture case studies, useful for researching a specific bottleneck.
A List of Post-mortems
Public incident reports grouped by failure themes such as configuration, time, hardware, and databases. Useful for testing assumptions before an outage.
Continuous Delivery
The book-length treatment of deployment pipelines, build and test automation, configuration, data changes, and collaboration across delivery roles.
Building Secure & Reliable Systems
Google practitioners connect security and reliability across system design, implementation, operation, incident response, and organizational culture.
Generous, High Fidelity Communication
A recorded talk connecting generous communication, disagreement, and just culture to the conditions that help a team raise concerns and work safely.
