📝

root cause analysis

📁 スキル 👁 -- 閲覧

真因分析と水平展開スキル

目的

不具合・インシデントの表面的な修正に留まらず、根本原因を特定し、同種の問題が組織全体で再発しないようにする。

手順

1. 現象の正確な記述

「バグが出た」ではなく、再現可能な形で現象を記述する:

  • 入力(操作・データ・環境)
  • 期待する動作
  • 実際の動作
  • 発生条件・頻度

2. 5 Whys(なぜなぜ分析)の実施

「なぜ?」を繰り返すことで表層的原因から根本原因へ掘り下げる:

現象 → なぜ?→ 原因1 → なぜ?→ 原因2 → なぜ?→ 原因3 → なぜ?→ 真因

5 Whys の落とし穴(よくある失敗)

  • 「なぜ?」を人への批判の方向に進める(「なぜ確認しなかったのか」→個人責任化)
    • 正しい方向:プロセス・仕組み・環境の問題として捉える
  • 「なぜ?」の連鎖を切りすぎる(表層の2〜3段で止める)
    • 組織や仕組みレベルの真因まで到達することが目標
  • 一本の「なぜ?」チェーンだけ追う
    • 複数の原因が絡み合っているケースではフィッシュボーン図(特性要因図)を使い多角的に分析する

3. 真因に対する対策の立案

真因が特定できたら、対策を3段階で検討する:

段階内容
即時対応今すぐ修正できることバグ修正、設定変更
再発防止同じ真因が繰り返さないための仕組みプロセス追加、チェックリスト更新
水平展開同種の問題が潜在する他の箇所を先手で修正類似コードの調査・修正

4. 水平展開の実施

真因が特定できたら、同じ原因が「他のどこにあるか」を系統的に調査する:

  1. 影響範囲の特定:同じロジック・設計・プロセスが使われている箇所を特定する
    • コードの場合:同じパターンのコードをgrepで検索する
    • プロセスの場合:同じ手順を使っている他のチーム・プロジェクトを特定する
  2. 調査の実施:特定した箇所を実際に確認し、潜在欠陥の有無を調べる
  3. 修正・改善:潜在欠陥を修正し、予防策を適用する
  4. 記録:水平展開の範囲・発見件数・修正内容を記録する

5. 改善サイクルへの組み込み

個別の不具合対応で終わらせず、組織の改善活動に還元する:

  1. ポストモーテム記録:真因・対策・水平展開結果を記録し、組織知識として蓄積する
  2. プロセス・チェックリストの更新:真因に対応したチェック項目を開発・レビュープロセスに追加する
  3. チームへの共有:同種の問題を経験していない人に伝え、予防意識を高める

チェックリスト

  • 現象が再現可能な形で正確に記述されている
  • 5 Whys が組織・プロセスレベルの真因まで到達している(個人責任化していない)
  • 即時対応・再発防止・水平展開の3段階で対策が検討されている
  • 水平展開の対象範囲が特定され、調査が完了している
  • 発見した内容がチームや組織に共有されている
  • プロセスやチェックリストに改善が反映されている

出典

ソフトウェア品質保証の極意 — 第2章 2.3(極意05)、第4章 4.6(極意38)、4.9(極意44)