Free — no signup required

The Fallacy of "Root Cause

2 min read

The "Broken Part" Myth

We love the term Root Cause Analysis (RCA). It implies that if we dig deep enough, we will find the one thing — the root — that caused the incident. Incident reports are full of conclusions like:

  • "The root cause was the developer making a typo."
  • "The root cause was the CPU overheating."
  • "The root cause was insufficient monitoring."

These conclusions feel satisfying. They give us something to fix. But in complex systems, they are almost always wrong — or at best, incomplete.

Why It's a Fallacy

An incident in a complex system is almost always the result of multiple necessary conditions converging simultaneously. Remove any one of them, and the incident does not occur.

Consider a server crash:

Factor Description
Cause A A typo in the config file
Cause B The validation logic was disabled to speed up deploys
Cause C It was 2 AM and the on-call engineer was fatigued
Cause D Traffic was 3× normal due to a marketing campaign
Cause E The circuit breaker had been removed "temporarily" two sprints ago

If any of those factors were absent, the crash likely would not have happened. So which one is the "root"? Calling the typo the root cause is an arbitrary editorial choice — we stop digging at the point that feels most actionable (or most blameable).

This creates a dangerous illusion: "We fixed the root cause." Meanwhile, Causes B through E remain in the system, waiting for the next Cause A to arrive.

The Swiss Cheese Model

A useful mental model here is James Reason's Swiss Cheese Model: imagine each layer of your system's defenses (testing, code review, staging, monitoring, alerting) as a slice of Swiss cheese. Each slice has holes — imperfections. An incident occurs when the holes in every slice align simultaneously, creating a clear path from hazard to harm.

The "root cause" framing focuses on one slice. The Swiss Cheese model forces you to look at all of them.

Interview Tip

Interviewers at senior SRE/platform engineering levels frequently ask: "Walk me through how you conduct a post-mortem." A weak answer describes a blame-and-fix process. A strong answer explicitly rejects single root cause framing, describes contributing factors as a causal chain, and explains how you identify systemic conditions — not just proximate triggers. Mention the Swiss Cheese Model or "multiple necessary conditions" to signal depth.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free