Files
nexus/sreweekly/articles/97/07-root-cause-analysis-as-storytelling-wide-awake-developers.html
2026-09-12 17:23:01 +08:00

46 lines
7.9 KiB
HTML

<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta charset=utf-8><title>Root Cause Analysis as Storytelling - michaelnygard.com</title>
<meta content='Root Cause Analysis as Storytelling - michaelnygard.com' property='title'><meta content='Root Cause Analysis as Storytelling - michaelnygard.com' property='og:title'><meta property="og:description" content="Humans are great storytellers and even better story-listeners. We love to hear stories so much that when there aren't any available, we make them up on our own. From an early age, children grasp the idea of narrative. Even if they don't understand the forms of storytelling so much, you can hear a four-year-old weave a linked list of events from her day. We look for stories behind everything. At a deep level, we want the world's events to mean something."><meta property="og:type" content="article"><meta property="og:url" content="https://michaelnygard.com/blog/2017/11/root-cause-analysis-as-storytelling/"><meta property="article:published_time" content="2017-11-08T17:01:06-06:00"><meta property="article:modified_time" content="2017-11-08T17:01:06-06:00"><meta property="article:section" content="blog"><meta name=generator content="Hugo 0.123.7"><link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" rel=stylesheet><style type=text/css>:root{--main-color:#8C6056;--secondary-color:#AFD5AA;--logo-text-color:#fff;--body-text-color:#3d3d3d;--heading-text-color:#383838;--background-color:#fff}</style><link href=/css/tachyons.min.css rel=stylesheet><link href=/css/styles.css rel=stylesheet><link rel=icon href=/favicon.ico type=image/x-icon><script id=MathJax-script async src=https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.js></script><script>MathJax={tex:{displayMath:[["\\[","\\]"],["$$","$$"]],inlineMath:[["\\(","\\)"]]},loader:{load:["ui/safe"]}}</script></head><body class=global-font><nav class="justify-between border-box pa3 pl3-l pr2-l mt1 mt0-ns" id=navbar><div class=flex><a class="f4 fw6 ttu no-underline dim bg-main-color pv1 ph2 br2" id=site-title href=/ title=Home>michaelnygard.com</a></div></nav><main class="center mv4 content-width ph3"><div class="f3 fw6 heading-color heading-font post-title">Root Cause Analysis as Storytelling</div><p class="silver f6 mt1 mb4 post-meta">Posted on <time>08 Nov 2017</time></p><div class="lh-copy post-content"><p>Humans are great storytellers and even better story-listeners. We love
to hear stories so much that when there aren't any available, we make
them up on our own.</p><p>From an early age, children grasp the idea of narrative. Even if they
don't understand the forms of storytelling so much, you can hear a
four-year-old weave a linked list of events from her day.</p><p>We look for stories behind everything. At a deep level, we want the
world's events to <span class=underline>mean</span> something. Effect follows cause, and causes
have an actor to set them in motion.</p><p>Our sense of balance also demands that large effects should have large
causes, with correspondingly large intent.</p><p>A drunk driver speeds through a red light, oblivious. A crossing car stops
short. The shaken driver creeps home with a pounding pulse, full of
queasy adrenaline. She unbuckles her daughter and hugs her tightly.</p><p>A drunk driver speeds through a red light, oblivious. A crossing car
is in the intersection. The drunk smashes into it, right at the
drivers' side door. The woman's bloody face is hidden behind
airbags. Her daughter sits in her new wheelchair for her mother's
funeral.</p><p>The difference between those stories is a matter of a split second in
timing. There is absolutely no change in the motives or desires of
anyone in the two vignettes. The first drunk, if caught, would get a
jail term and large fine. He would probably lose his driver's
license.</p><p>But most people would judge the motives of the second driver far more
harshly. They would condemn him to a lengthy prison term and a
lifetime ban on driving.</p><p>When we see a large effect, we expect a large cause, with a large
intent.</p><p>The idea that some vast, horrible events strike randomly fills us with
dread. People can't bear the thought that a single unbalanced
<span class=underline>nobody</span> can change the course of a nation's history with one rifle
shot, so they spend more than 50 years searching for "the truth."</p><p>"Root Cause Analysis" expresses a desire for narrative. With the power
of hindsight, we want to find out what went wrong, who did it, and how
we can make sure it never happens again. But because we have the
posterior event, we judge the prior probabilities differently. Any
anomaly or blip suddenly becomes suspect.</p><p>People don't look as hard at anomalies when <span class=underline>nothing bad</span>
happens.</p><p>They don't notice all the times the same weird log message pops up
before &#8230; everything continues as normal.</p><p>When we look for "root cause," what we are really trying to discern is
not "what made this happen." We are looking for something that would
have stopped it from happening. We are building a counterfactual
narrative&#8212;an alternate history&#8212;where that drunk driver dropped his
keys in the parking lot and was thereby delayed a few crucial
seconds.</p><p>Peel back the surface on a root cause analysis and you almost always
see a formula that goes like this: "factor X" could have prevented
this. "Factor X" was not present, therefore the bad event happened.</p><p>The catch is that there is usually an endless variety of possible
counterfactuals. Often, more than one counterfactual narrative would
have prevented the bad outcome equally well. Which one was the root
cause? Non-existence of "factor X" or non-existence of "factor Y?"</p><p>Next time you have a bad incident, why not try to focus your efforts
in a different way? Work on learning from the times that things
<span class=underline>don't</span> go wrong. And be explicit about looking for <span class=underline>many</span> possible
interventions that would have prevented the problem. Then select ones
with broad ability to prevent or impede many different problems.</p></div></main><div class="pagination tc tr-l db fixed-l bottom-2-l right-2-l mb3 mb0-l"><a id=scroll-to-top class="f6 o-0 link br2 ph2 pv1 mb1 bg-main-color pointer" onclick=topFunction() style="color:#fff;visibility:hidden;display:none;transition:opacity .5s,visibility .5s" title="back to top">back to top</a><br><p class="mb0 mt2"><a href=https://michaelnygard.com/blog/2017/08/release-it-second-edition-in-beta/>prev post</a>
<a href=https://michaelnygard.com/blog/2017/11/keep-em-separated/>next post</a></p></div><footer class="content-width mt0 mt5-l mb4 f6 center ph3 gray tc tl-l"><hr class="dn db-l ml0-l gray w3"><br>Powered by <a href=https://gohugo.io/ target=_blank class="link gray dim">Hugo</a>, based on the <a href=https://github.com/lingxz/er target=_blank class="link gray dim">Er</a> theme.<br>Copyright (c) 2002 - 2026 Michael T. Nygard</footer><script type=text/javascript>var prevScrollpos=window.pageYOffset;window.onscroll=function(){var e=window.pageYOffset;document.getElementById("tag-cloud")!==null&&(prevScrollpos>e?(document.getElementById("tag-cloud").style.visibility="visible",document.getElementById("tag-cloud").style.opacity="1"):(document.getElementById("tag-cloud").style.visibility="hidden",document.getElementById("tag-cloud").style.opacity="0")),document.body.scrollTop>1e3||document.documentElement.scrollTop>1e3?(document.getElementById("scroll-to-top").style.display="inline",document.getElementById("scroll-to-top").style.visibility="visible",document.getElementById("scroll-to-top").style.opacity="1"):(document.getElementById("scroll-to-top").style.visibility="hidden",document.getElementById("scroll-to-top").style.opacity="0"),prevScrollpos=e};function topFunction(){document.body.scrollTop=0,document.documentElement.scrollTop=0}</script></body></html>