Postmortems, Root Cause Analysis, and Blameless Culture Questions
Investigating what caused an incident and turning the lessons into lasting improvement. Covers root-cause techniques (five whys, causal chains, contributing-factor analysis), writing postmortem documents, and tracking follow-up action items to prevent recurrence, as well as facilitating those reviews blamelessly: building psychological safety, treating failures as learning opportunities rather than occasions for blame, and driving continuous-improvement loops across teams. The structured after-the-fact analysis discipline together with the organizational culture that makes it effective.
Define clear thresholds or criteria for when a team should run a formal postmortem versus a lighter review, for example severity, customer impact, SLO breach, or a repeated near-miss pattern. Explain why your thresholds balance real learning value against reviewing everything, which would drown out the incidents that matter most.
Sample Answer
Direct answer
A team should require a formal postmortem based on explicit, pre-agreed thresholds, typically severity, measurable customer impact, an SLO or error-budget breach, or a repeated near-miss pattern, so the decision doesn't depend on ad hoc judgment calls in the moment that tend to under-count how important an incident actually was.
Structured elaboration
- Severity and customer impact are the most common triggers: any incident above a defined severity level, or any incident with measurable customer-facing impact beyond a small threshold, warrants a postmortem.
- SLO or error-budget breach is a useful objective trigger for teams that track reliability targets formally: an incident that meaningfully consumes error budget deserves review regardless of how it 'felt' in the moment.
- Repeated near-misses deserve a postmortem even without a single qualifying incident: three near-identical near-misses in a month is itself a pattern worth the same rigor as one real incident, since it's often only luck separating a near-miss from an actual outage.
- A chronically alerting or fragile component deserves a different kind of review entirely: rather than repeating a fresh, per-incident postmortem every time the same flaky component causes a small blip, a pattern-level review (is it worth rewriting, encapsulating behind a more defensive interface, or decommissioning) addresses the recurring risk directly instead of documenting the same root cause repeatedly.
- The threshold has to balance two failure modes: too low a bar drowns the team in reviews and produces fatigue and perfunctory analysis; too high a bar means real learning opportunities, especially near-misses that didn't quite become incidents, get silently skipped.
Worked example
A team defines: any Sev1 or Sev2 incident requires a full postmortem; any incident consuming more than 10% of the monthly error budget in a single event requires one regardless of severity label; three or more near-misses in the same failure category within 30 days trigger a postmortem even with no qualifying single incident; and a component causing more than five minor incidents in a quarter triggers a dedicated architectural review (rewrite, encapsulate, or decommission) rather than five separate postmortems repeating the same finding. This keeps the team from either drowning in reviews for every minor blip or missing the signal from a chronically fragile piece of infrastructure that never individually crosses the single-incident threshold.
Trade-offs and pitfalls
The most common mistake is defining thresholds purely around severity and missing the near-miss and pattern-level triggers entirely, which means a component that causes constant low-grade pain never gets the deeper, pattern-level attention it actually needs, since no single instance ever looks bad enough on its own to trigger review.
When investigating an incident, how do you weigh quantitative evidence (metrics, logs, traces) against qualitative evidence (engineer interviews, notes) and correlate them into a single timeline? Describe how you would resolve conflicts between the two kinds of evidence when they point to different causes.
Sample Answer
Direct answer
Quantitative evidence (metrics, logs, traces) tells you what happened and when with precision but can miss context and intent; qualitative evidence (engineer interviews, notes, chat logs) fills in the why and the human decision-making, but is subject to memory bias and self-justification. Weigh them together, and when they conflict, treat the disagreement itself as a finding worth investigating rather than picking whichever is more convenient.
Structured elaboration
- Quantitative evidence is precise and timestamped, which makes it the backbone of any timeline, but it can be silent on intent and context: a metric shows latency spiked at 14:03, but not why an engineer chose to deploy at that specific moment or what they believed was true when they did.
- Qualitative evidence captures reasoning and context that logs can't ("I deployed because the dashboard looked fine and I didn't know about the downstream dependency"), but human memory reconstructs events after the fact, often unconsciously smoothing over uncertainty or minimizing one's own role, so it should never override hard timestamped data when the two genuinely conflict.
- Correlating them into one timeline: anchor the timeline on quantitative events (deploys, alerts, metric changes) first, since those are objective and timestamped, then layer qualitative context alongside each event (what the engineer believed, what they were looking at, why they made a given call) as annotation, not as competing facts.
- When they conflict: if an engineer recalls checking a dashboard that logs show wasn't accessed, that's not necessarily dishonesty, memory under stress is genuinely unreliable, but it IS worth investigating why the gap exists: was there a different dashboard, a misremembered timestamp, or a real gap in what was actually checked before the decision was made. The conflict itself, not just its resolution, is often informative about where the process broke down.
Worked example
An engineer recalls seeing a warning-level alert before deploying and deciding it looked minor enough to proceed. Logs show no alert fired until four minutes after the deploy. Rather than concluding the engineer is simply wrong or dismissing the recollection, the investigation digs further and finds the engineer was actually looking at a stale, cached view of the dashboard that hadn't refreshed in several minutes, itself a real and separately worth-fixing gap (a dashboard that can silently show stale data during exactly the moment it matters most). The quantitative record established what actually happened; the qualitative account, once reconciled rather than dismissed, revealed a genuine, previously-unknown contributing factor that the logs alone would never have surfaced.
Trade-offs and pitfalls
The most common mistake is treating quantitative data as always authoritative and qualitative accounts as merely decorative color, which misses genuine contributing factors that only surface through human context. The opposite mistake, treating a confident personal recollection as more reliable than the logs when they conflict, risks building the postmortem's conclusion on a memory distortion. The discipline is to anchor on timestamped data but take conflicting qualitative accounts seriously enough to investigate the gap, not dismiss either source reflexively.
Compare Five Whys, a fishbone (Ishikawa) diagram, fault-tree analysis, and causal-chain/timeline analysis as root-cause techniques. For each, describe what kind of incident it suits best, and its main weakness.
Sample Answer
Direct answer
Five Whys, fishbone (Ishikawa) diagrams, fault-tree analysis, and causal-chain or timeline analysis are all structured root-cause techniques, but they suit different incident shapes. Five Whys is fast and best for a single, mostly-linear chain of causation. Fishbone is best when you suspect several independent categories of cause (people, process, technology, environment) and want to brainstorm broadly before narrowing. Fault-tree analysis is best for complex, multi-path failures where you need to reason about combinations of conditions, not just one chain. Causal-chain or timeline analysis is best when the incident unfolded over a long period with many events, and reconstructing the sequence itself is most of the work.
Structured elaboration
- Five Whys. Strength: fast, requires no special tooling, good for straightforward incidents with a genuinely linear cause. Weakness: it forces a single narrative thread, so on an incident with multiple independent contributing factors it can stop at the first plausible-sounding chain and miss a second, unrelated gap that also mattered. Combining it with a causal-graph or fault-tree check on the resulting hypothesis (does this cause actually explain the full timeline, or just part of it) helps catch that failure mode.
- Fishbone (Ishikawa). Strength: structured brainstorming across categories (commonly people, process, technology, environment) surfaces candidates you might not think of starting from a single chain. Weakness: it's a divergent tool, good for generating hypotheses, but it doesn't by itself tell you which candidate cause is actually correct; you still need evidence to narrow down.
- Fault-tree analysis. Strength: models AND/OR combinations of conditions, so it's the right tool when the incident required several things to go wrong simultaneously (a database failover only failed because BOTH the standby was on an incompatible version AND the health check didn't catch the mismatch). Weakness: more effort and formalism than most incidents justify; overkill for a simple single-cause bug.
- Causal-chain or timeline analysis. Strength: best when the incident unfolded across many events over hours or days, and the real analytical work is establishing what happened when and in what order, which then makes the cause fairly evident once assembled. Weakness: doesn't add much analytical structure beyond reconstruction; you often still need Five Whys or fishbone on top of the assembled timeline to go from 'here's what happened' to 'here's why.'
Worked example
A multi-hour cascading outage across several services: causal-chain or timeline analysis is the right first tool, since the priority is establishing the sequence across services before anything else makes sense. A single service crashing on a specific malformed input: Five Whys is fast and sufficient. A database failover that should have worked but didn't: fault-tree analysis, since it likely required more than one condition (incompatible standby version AND a health check that didn't catch it) to align. A vague, hard-to-pin-down data-quality issue with no obvious single trigger: fishbone, to broadly brainstorm across categories (was it the data source, the pipeline code, a schema change, an environment difference) before narrowing with evidence.
Trade-offs and pitfalls
The most common mistake is defaulting to Five Whys for everything because it's the most familiar technique, even on incidents with multiple independent contributing factors where it will produce a tidy but incomplete story. Pick the technique to fit the shape of the incident, not out of habit, and don't hesitate to combine two (fishbone to generate candidates, then Five Whys or fault-tree to narrow and validate).
Describe how you would mentor a less experienced engineer through writing and presenting their first postmortem. What specific feedback would you give on structure, tone, and the quality of proposed action items, and how would you make sure the postmortem stays blameless while still being genuinely useful?
Sample Answer
Direct answer
Mentoring someone through their first postmortem means pairing them with a real, ideally low-stakes incident, giving specific feedback on structure and tone rather than just 'good job,' and modeling the blameless framing yourself before expecting them to reproduce it independently.
Structured elaboration
- Pick the right first incident. A moderate-severity, reasonably contained incident is a better first assignment than either a trivial one (nothing to learn from) or a highly political, multi-team, high-visibility one (too much pressure for a first attempt).
- Give feedback on structure. Check whether the timeline is objective and evidence-backed rather than reconstructed from memory, whether root cause is separated from contributing factors, and whether action items are specific and owned rather than vague aspirations.
- Give feedback on tone, with concrete examples. Point out any sentence that names a person rather than a system gap, and show, don't just tell, how to rewrite it: 'the engineer forgot to run the checklist' becomes 'the checklist has no automated enforcement, so a required step could be skipped.' Seeing the before-and-after side by side teaches the skill faster than an abstract rule.
- Have them facilitate a real meeting, with you as backup, not the lead. Reading about facilitation and doing it live under mild pressure are different skills; be present to redirect gently if the discussion drifts toward blame, but let them run it.
- Follow up on whether the action items actually happened. Closing the loop on whether their first postmortem's action items got implemented and verified teaches the full lifecycle, not just the writing exercise.
Worked example
A junior engineer is assigned to lead the postmortem for a minor, contained caching bug that caused stale data for about ten minutes. Before the meeting, the mentor reviews their draft timeline and flags one sentence ('the developer pushed an untested change') to rewrite as a system-focused observation about the deploy process lacking a required test gate for cache-invalidation logic specifically. During the meeting, the junior engineer facilitates; the mentor stays quiet unless the discussion drifts, at one point gently redirecting a comment that started to focus on who wrote the original caching code. Afterward, feedback covers three things: the timeline was strong and evidence-based, the action item ('add a test for cache-invalidation edge cases') was specific and well-owned, but the root cause and contributing factors weren't clearly separated in the writeup, which is worth practicing next time. Three weeks later, the mentor checks whether the test was actually added and merged, closing the loop rather than treating the writing exercise as the end of the mentorship.
Trade-offs and pitfalls
The most common mistake is giving only high-level praise or criticism ('good postmortem' or 'needs work') without specific, actionable examples the person can apply next time. A second is the mentor taking over facilitation when things get slightly awkward instead of letting the mentee work through it with light support, which prevents them from actually building the skill.
Here is a draft line from a postmortem: "The on-call engineer failed to run the migration checklist, causing the service outage." Rewrite it to remove blame language and focus on the systemic gap, and give one alternative phrasing with a brief explanation of why it is an improvement.
Sample Answer
Direct answer
The original line, "The on-call engineer failed to run the migration checklist, causing the service outage," names a person and implies personal failure. A blameless rewrite: "The deploy process for database migrations did not include an automated check enforcing the migration checklist, allowing a migration to proceed without it and causing the service outage." This keeps the same causal fact (the checklist wasn't followed) but relocates the fixable gap from the person to the system.
Structured elaboration
The technique is straightforward once named: identify the verb that assigns action to a person ('failed to run,' 'forgot to,' 'didn't check'), and ask what would make that action structurally difficult or impossible to skip regardless of who was involved. That reframing usually reveals the real, fixable gap, since 'a person could skip a manual step' is true of almost anyone under enough time pressure or fatigue, and is therefore not itself a useful or actionable finding.
Worked example
An alternative phrasing: "The migration checklist relied on manual execution with no automated enforcement, so a migration proceeded without completing it, causing the service outage." This version goes slightly further than the first rewrite by explicitly naming WHY the gap existed (manual reliance, no automated enforcement), which points more directly at the actual fix (automate the check) rather than just removing the blame language while still describing a fundamentally manual, person-dependent process.
Comparing all three: the original blames a person for a system failure; the first rewrite removes blame but is still fairly generic; the second rewrite removes blame AND points precisely at the systemic fix, which is the stronger version because a reader immediately understands what needs to change, not just that something should.
Trade-offs and pitfalls
A common mistake when doing this rewrite is going too far in the other direction and writing something so passive and vague it obscures what actually happened ('an issue occurred during the deployment process'), which is dishonest by omission and unhelpful to a reader trying to understand the incident. The goal isn't to hide the causal chain, it's to describe the same facts in terms of the system gap rather than a person's character or competence; the on-call engineer's action stays in the timeline as a fact, it's just not framed as the ROOT cause when a system gap explains why that action was possible in the first place.
Unlock Full Question Bank
Get access to all 32 Postmortems, Root Cause Analysis, and Blameless Culture interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.