# CAST ## 定義 CAST(Causal Analysis based on Systems Theory)は、[[Nancy G. Leveson]] が Systems Theory をベースに提唱した事故・インシデント分析手法である。伝統的な Root Cause Analysis(RCA)が線形因果論に基づき「根本原因」を単数・近位で特定するのに対し、CAST は「制御構造(Control Structure)」「コントローラーの意思決定とメンタルモデル」「文脈要因(Contextual Factors)」「システム的要因(Systemic Factors)」を析出することで、組織・社会技術的な深部まで分析する。(Source: [[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]]) ### 基本概念: 制御フィードバックループ CAST の分析単位は「コントローラー(Controller)」である。コントローラーは以下の2要素を持つ: - **意思決定(Decision-Making)**: 制御アクション(Control Actions)をプロセスへ送る。 - **メンタルモデル(Mental Model)**: プロセスからのフィードバックを受け、現実の状態についての内部表現を形成・更新する。 メンタルモデルが現実と乖離するとき、コントローラーは不適切な制御アクションを発行し事故・インシデントの一因となる。このズレは多くの場合「イベント」ではなく「文脈的要因」によって形成される。 ### CAST 分析の主要ステップ 1. **事象タイムラインの構築**: インシデントの時系列を記述する(ただし時系列 ≠ 因果に注意)。 2. **制御構造図の作成**: システムに関与するコントローラー(組織・チーム・自動化システム)とその制御アクション・フィードバックチャネルを図示する。 3. **コントローラー別分析**: 各コントローラーについて (a) 不適切だった制御アクション、(b) その時のメンタルモデル、(c) そのメンタルモデルを形成した文脈要因を析出する。 4. **システム的要因の特定**: 複数コントローラーにまたがる構造的・組織的要因を特定する。 5. **改善計画**: 症状でなく「因果要因」に対処する施策を立案する。 ### RCA との比較 | 軸 | RCA | CAST | |---|---|---| | 事故モデル | 根本原因(単数・近位) | メンタルモデル・文脈要因・システム的要因 | | 改善計画 | 症状への対処 | 因果要因への対処 | | 分析フレーム | 近位イベント | 遠位イベント | | 組織的視点 | 技術的のみ | 社会技術的 | ### 時系列と因果の別 (Chronology ≠ Causality) CAST が特に強調する点が「時系列と因果は別物」という洞察である。RCA で選択されるイベントは以下の主観的フィルターを通る: - 馴染み深い(Familiar) - インシデントを単純に説明する - 対処可能 - 人間の手では遡れない - 情報因果連鎖が欠ける - 都合よく政治的に受け入れやすい この結果、「Geospecialists が対象州を特定しなかった」というイベントは選ばれても、「Leadership が評価失敗をオーバーライドした」という不可視のイベントや「Management of Change プロセスの欠如」という非イベントは落とされてしまう。(Source: [[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]]) ## 横断的知見 - **CAST は RCA が落とすシステム的要因を拾う**: [[Ruben Barroso]] の Google Maps インシデント分析([[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]])では、RCA が「評価ツールの不備」「サンプリング戦略の欠如」という2根本原因を特定したのに対し、CAST は「Dataset Import Team のメンタルモデルの誤り(初回 US Census データの特殊性を認識していない)」「Engineering と Dataset Import Team 間の責任拡散」「Dynamic Environment(データセット種類・サイズの増加)による既存ポリシーの陳腐化」という組織的・環境的因果要因を追加で特定した。単一ソースだが、CAST が近因を超えて遠因まで到達できる具体的な事例として価値がある。 - **[[Laura de Vesine]] の System/Environment 境界モデルとの接点**: [[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]]は STPA/CAST とは明示しないが「システム境界を引く」「システムの脆弱性 vs. トリガー」という枠組みを提示しており、CAST の制御構造分析と同系譜にある。CAST はより明示的に「コントローラー」「メンタルモデル」「フィードバック」を分析単位とする点で操作化が進んでいる。(Source: [[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]], [[@2022__SREcon22 EMEA__Principled Identification of Root Causes Using Techniques from Safety Engineering]]) ## 未解決の問い - CAST は Google で少なくとも5年・数十システムに適用実績があるが、SRE 業界全体での Rogers 曲線上の位置が「Early Adopter 段階」というのは主観的評価か、定量調査によるものか。 - STPA(Systems-Theoretic Process Analysis、設計フェーズでの安全分析)と CAST(事後分析)は手法として連携できるか。STPA モデルを事前に持つシステムで CAST を行う場合、どれだけ分析コストが下がるか。 - CAST の制御構造図を大規模マイクロサービスシステムに適用する場合、コントローラーの粒度と数をどう決めるか。全チーム×全サービスを列挙すると組み合わせ爆発する。 - CAST Handbook(Leveson)で示された分析ステップのうち、SRE 実践においてどのステップが最もスキップされやすいか。 ## 関連 - [[事故モデル]] — Linear Causality から Systems Theory への転換の位置づけ - [[根本原因分析]] — CAST が置き換え・補完する従来手法 - [[ポストモーテム]] — CAST はポストモーテム実践の一形態 - [[Nancy G. Leveson]] — CAST 考案者 - [[Ruben Barroso]] — Google SRE での適用実績 - [[structures/AIOps - Fault Localization - MOC]] — 関連する自動化・AI 文脈 ## 出典 - [[@2026__SREcon26Americas__The Case of the Misnamed Cities - CAST Analysis of a Google Maps Incident]] — Google Maps インシデントへの CAST 適用実演、RCA vs CAST 比較