# 事故モデル ## 定義 事故モデル(Accident Model)は、なぜ事故が起きるかを説明する因果論的枠組みである。どのモデルを採用するかによって、ポストモーテムで何を「原因」として記録し、何を「改善策」として立案するかが根本的に変わる。歴史的に「人間の失敗に帰着させるモデル」から「システムの相互作用を説明するモデル」へと進化してきた。(Source: [[@2016__SREcon16Europe__Accident Models in Post Mortems]]) ### 主要な事故モデル | モデル | 提唱者 / 時代 | 核心命題 | 問題点 | |---|---|---|---| | **Bad Apples** | — / 20世紀初 | システムは基本的に安全。信頼性のない人間が障害を引き起こす。悪いリンゴを取り除けばよい | 個人責任に終着し、システム的欠陥を見逃す | | **ハインリッヒのドミノ理論** | H.W. Heinrich / 1931 | 事故は社会環境 → 人間の欠陥 → 不安全行為 → 事故 → 怪我という連鎖ドミノで発生する | 直線的因果連鎖を前提とし、複雑系の創発的失敗を説明できない | | **James Reason のスイスチーズモデル** | James Reason / 1990 | 組織の防御層には穴(能動的失敗・潜在的条件)があり、穴が揃った瞬間に危険が貫通する | Bad Apples より洗練されているが、依然として「障壁の欠陥」という静的な構造に注目し、動的なシステム適応を捉えにくい | | **Normal Accidents (Perrow)** | Charles Perrow / 1984 | 密接に結合した複雑系では、想定外の相互作用による大規模事故は避けられない | 悲観的すぎるとも批判されるが、Surprise が設計に内在するという洞察は重要 | ## 横断的知見 - **「ヒューマンエラー」は原因でなくラベルである**: [[@2016__SREcon16Europe__Accident Models in Post Mortems]] は Amazon・NASDAQ・ドイツ鉄道の公開インシデント報告がすべて "Human Error" と結論づけていることを示した。Steven Shorrock(EUROCONTROL)はヒューマンエラーを「Someone did (or did not do) something that they were not (or were) supposed to do according to someone」と定義し、その循環性と主観性を暴いた。[[@2019__SREcon19 Asia__A Tale of Two Postmortems - A Human Factors View]](Tanner Lund)も同様に「Human Error は分析の行き止まり(analytical dead end)」と呼ぶ。2 つのソースが独立して同じ結論に到達しており、SRE ポストモーテム実践における「ヒューマンエラー」表記は学習機会を閉じると判断できる。 - **安全性は創発的特性であり、設計可能なプロパティではない**: Sidney Dekker の「Safety is an EMERGENT PROPERTY that arises when components and processes interact with each other and their environment」(p.34) は、Bad Apples / ドミノ理論が前提とする「システムは基本的に安全」という命題を直接否定する。安全は手順書や障壁を追加することで達成されるのでなく、コンポーネントが適切に相互作用する結果として生まれる。(Source: [[@2016__SREcon16Europe__Accident Models in Post Mortems]]) - **原因は「発見」でなく「構築」される**: 「Cause is not something you find. Cause is something you construct.」(Dekker) は、ポストモーテムにおいて「根本原因を探す」という姿勢自体が問題だと指摘する。原因の構築は調査者の視点・フレーム・問いかけ方に依存し、同じイベントから複数の異なる因果ストーリーが構築できる。これはスイスチーズモデルが「穴を探す」枠組みを超えている。(Source: [[@2016__SREcon16Europe__Accident Models in Post Mortems]]) - **スイスチーズモデルは Reason 本人も後に改訂を要求している**: Reason・Hollnagel・Paries (2006) "Revisiting the Swiss Cheese Model of Accidents" がスライドの参考文献に含まれる。原著者たちが自ら限界を認め改訂を促したモデルが、SRE 業界では改訂を知られずに広く流通していることは、知識の経路依存性の問題として興味深い。 - **安全工学の System/Environment 境界モデルはスイスチーズモデルより直接的に SRE 実践と接続する**: [[Laura de Vesine]]([[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]])は、スイスチーズモデルが「防御層の穴が揃う」という静的モデルであるのに対し、「自分たちが制御できるものをシステム、できないものを環境と呼ぶ」という境界モデルがより操作的だと論じた。根本原因 = システムの脆弱性、トリガー = 環境条件という整理は、SRE エンジニアが「どこに修正を施すべきか」を直接指示する点で Dekker の「原因は構築される」よりも実用的である。スイスチーズモデルが「なぜ失敗したか」を事後説明するのに対し、このモデルは「何を変えれば次の最悪環境条件に耐えられるか」を設計前提として問う。(Source: [[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]] p.13・p.14) - **Rasmussen の Safety Model は PIR スタイルの選択に直接接続する**: [[Tom Partington]] は Rasmussen のモデルをポストモーテム実践に接続し、「機械論的推論(Mechanistic Reasoning)」——システムを相互関係のない部品の集合と見なす立場——がなぜ失敗するかを説明した([[@2022__SREcon22APAC__A Post Incident Review Review]] p.15–16)。Rasmussen は「作業は Workload・Economic・Performance の3境界に囲まれた空間で行われ、境界へのドリフトが重なると事故になる」と主張した。この動的ドリフトモデルは、スイスチーズモデルの「穴が揃う静的構造」とは異なり、日常の作業圧力とコスト圧力が複合的に安全境界を侵食するプロセスを説明する。[[ANZx]] の PIR がカウザルマップ(多要因の因果グラフ)を採用するのは、Rasmussen 的な複合ドリフトを記述するためであり、単一根本原因モデルとは根本的に異なる認識論に基づく。 - **CAST はイベント選択の主観性問題を「制御構造分析」で構造的に回避する**: [[Ruben Barroso]]([[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]])は RCA で選ばれるイベントが「馴染み深い・単純・politically acceptable」という主観的フィルターを通過するものに偏ること(Subjective Selection of Events)と、時系列が因果を意味しないこと(Chronology ≠ Causality)を指摘した。CAST はこの問題を「どのイベントを選ぶか」でなく「コントローラーのメンタルモデルと文脈要因から分析する」設計で回避する。「Leadership が評価失敗をオーバーライドした」という RCA では不可視のイベントや「Management of Change プロセスの欠如」という非イベント的要因が CAST では析出できる。本 wiki の「ヒューマンエラーは原因でなくラベル」「Cause is not something you find」という観察と同方向であり、システム理論的事故モデルの実装例として位置付けられる。(Source: [[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]]) ## 未解決の問い - スイスチーズモデルの代替として、Hollnagel の FRAM(Functional Resonance Analysis Method)や Rasmussen の Risk Management Framework は SRE・インシデント分析にどこまで実用的に適用できるか。 - 「原因は構築される」という Dekker のテーゼは、AI によるインシデント自動分析と根本的に相容れないのか。LLM が生成する「根本原因分析」は本質的に特定のフレームを前提にした構築物であるが、それをどう評価すべきか。 - ソフトウェアシステムは Charles Perrow の言う「密接に結合した複雑系」に該当するか。マイクロサービス化やカオスエンジニアリングはこの文脈でどう位置づけられるか。 - 「Bad Apples モデルからスイスチーズモデルへ」という進化のナラティブは西洋安全工学の文脈で構築されたものだが、日本の安全工学(ゼロ災運動等)との接続はどうなるか。 - de Vesine の System/Environment モデルで「バグ」は Environment 側に分類されている(p.20)。しかしバグはエンジニアが書いたコードの誤りであり、System 側とも言える。この分類はなぜか。テスト・コードレビュー・CI が System に含まれるとすれば、バグを Environment に置く理由は「バグが存在することを前提に System を設計せよ」というメッセージか。(Source: [[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]] p.20) ## 関連 - [[ポストモーテム]] — 事故モデルの選択がポストモーテムの「原因」記述と改善策の質を規定する - [[Human-out-of-the-loop]] — 人間を意思決定から外すことへの懸念と事故モデルの関係 - [[@2016__SREcon16Europe__Accident Models in Post Mortems]] — 事故モデルの系譜を SRE 文脈で整理した講演 - [[@2019__SREcon19 Asia__A Tale of Two Postmortems - A Human Factors View]] — Human Factors 視点からの同主題の深化 ## 出典 - [[@2016__SREcon16Europe__Accident Models in Post Mortems]] (p.15-37) - [[@2019__SREcon19 Asia__A Tale of Two Postmortems - A Human Factors View]] - [[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]] (p.13-15・p.20: System/Environment モデルと用語再定義) - [[@2022__SREcon22APAC__A Post Incident Review Review]] (p.15-16: Rasmussen Safety Model; p.21: Causal Map; p.22: Swiss Cheese Model)