真因分析と水平展開スキル
目的
不具合・インシデントの表面的な修正に留まらず、根本原因を特定し、同種の問題が組織全体で再発しないようにする。
手順
1. 現象の正確な記述
「バグが出た」ではなく、再現可能な形で現象を記述する:
- 入力(操作・データ・環境)
- 期待する動作
- 実際の動作
- 発生条件・頻度
2. 5 Whys(なぜなぜ分析)の実施
「なぜ?」を繰り返すことで表層的原因から根本原因へ掘り下げる:
現象 → なぜ?→ 原因1 → なぜ?→ 原因2 → なぜ?→ 原因3 → なぜ?→ 真因
5 Whys の落とし穴(よくある失敗):
- 「なぜ?」を人への批判の方向に進める(「なぜ確認しなかったのか」→個人責任化)
- 正しい方向:プロセス・仕組み・環境の問題として捉える
- 「なぜ?」の連鎖を切りすぎる(表層の2〜3段で止める)
- 組織や仕組みレベルの真因まで到達することが目標
- 一本の「なぜ?」チェーンだけ追う
- 複数の原因が絡み合っているケースではフィッシュボーン図(特性要因図)を使い多角的に分析する
3. 真因に対する対策の立案
真因が特定できたら、対策を3段階で検討する:
| 段階 | 内容 | 例 |
|---|---|---|
| 即時対応 | 今すぐ修正できること | バグ修正、設定変更 |
| 再発防止 | 同じ真因が繰り返さないための仕組み | プロセス追加、チェックリスト更新 |
| 水平展開 | 同種の問題が潜在する他の箇所を先手で修正 | 類似コードの調査・修正 |
4. 水平展開の実施
真因が特定できたら、同じ原因が「他のどこにあるか」を系統的に調査する:
- 影響範囲の特定:同じロジック・設計・プロセスが使われている箇所を特定する
- コードの場合:同じパターンのコードをgrepで検索する
- プロセスの場合:同じ手順を使っている他のチーム・プロジェクトを特定する
- 調査の実施:特定した箇所を実際に確認し、潜在欠陥の有無を調べる
- 修正・改善:潜在欠陥を修正し、予防策を適用する
- 記録:水平展開の範囲・発見件数・修正内容を記録する
5. 改善サイクルへの組み込み
個別の不具合対応で終わらせず、組織の改善活動に還元する:
- ポストモーテム記録:真因・対策・水平展開結果を記録し、組織知識として蓄積する
- プロセス・チェックリストの更新:真因に対応したチェック項目を開発・レビュープロセスに追加する
- チームへの共有:同種の問題を経験していない人に伝え、予防意識を高める
チェックリスト
- 現象が再現可能な形で正確に記述されている
- 5 Whys が組織・プロセスレベルの真因まで到達している(個人責任化していない)
- 即時対応・再発防止・水平展開の3段階で対策が検討されている
- 水平展開の対象範囲が特定され、調査が完了している
- 発見した内容がチームや組織に共有されている
- プロセスやチェックリストに改善が反映されている
出典
ソフトウェア品質保証の極意 — 第2章 2.3(極意05)、第4章 4.6(極意38)、4.9(極意44)