なぜなぜ分析(5 Whys)で本当の原因を見つける

約5分で読めます

なぜなぜ分析(5 Whys)で本当の原因を見つける

はじめに

  • バグを修正したはずなのに、似たような問題がまた発生する
  • 障害対応をしたのに、数週間後に同じようなインシデントが起きる
  • 「原因は分かった」と思っても、実は症状しか見ていなかった

そんな経験はないでしょうか。

開発現場では「問題を直す」ことに意識が向きがちですが、本当に重要なのは「なぜその問題が起きたのか」を深掘りすることです。

そのために役立つのが、トヨタ生産方式でも使われている 5 Whys(なぜなぜ分析) です。

単純ですが非常に強力で、障害分析・品質改善・振り返りなど、ソフトウェア開発とも相性が良い考え方です。

alt text


1. 5 Whys(なぜなぜ分析)とは?

  • 問題に対して「なぜ?」を繰り返し問い続けることで、根本原因を見つける分析手法
  • 表面的な現象ではなく、背後にある「仕組み」や「プロセス」の問題を明らかにする
  • 一般的には5回程度「なぜ」を繰り返すことで本質に近づけると言われている

ポイント

  • 「誰が悪いか」ではなく「なぜ防げなかったか」を考える
  • 個人のミスで終わらせず、再発防止につながる仕組み改善へ繋げる
  • バグ修正よりも“同じ問題を繰り返さない”ことを目的にする

2. なぜ開発で重要なのか?

同じ種類の障害を繰り返さなくなる

  • 一時的な修正だけでは、似た問題が別の場所で再発する
  • 根本原因まで辿ることで、構造的な改善ができる

チームの品質改善につながる

  • コーディングルール
  • レビュー体制
  • テスト不足
  • ドキュメント不足

など、開発プロセス全体の問題が見えてくる

属人化を減らせる

「〇〇さんしか分からない」 「たまたま気付けなかった」

ではなく、

  • なぜ誰でも気付けなかったのか?
  • なぜ仕組みで防げなかったのか?

を考えるようになる


3. 実際の例(障害対応)

alt text

問題

本番デプロイ後、サービスが2時間停止した

段階なぜ?回答
Why 1なぜサービス停止した?デプロイスクリプトが途中で失敗した
Why 2なぜ失敗した?本番環境に必要な環境変数が存在しなかった
Why 3なぜ環境変数が無かった?ローカルだけ追加されCI/CDへ反映されていなかった
Why 4なぜCI/CDへ反映漏れした?追加時の確認手順が存在しなかった
Why 5なぜ確認手順が無い?デプロイチェックリスト自体が整備されていなかった

根本原因

  • 環境変数漏れではなく
  • 「デプロイ前確認プロセスが存在しない」ことが問題だった

対策

  • デプロイチェックリスト作成
  • CI/CDで環境変数差分チェック
  • Pull Requestテンプレートへ確認項目追加

4. Salesforce開発での例

問題

Trigger実行時にGovernor Limit Errorが発生した

段階なぜ?回答
Why 1なぜGovernor Limitが発生した?forループ内でSOQLを実行していた
Why 2なぜループ内にSOQLを書いた?Bulk化の知識不足だった
Why 3なぜ知識不足だった?Apex開発ガイドが存在しなかった
Why 4なぜガイドが存在しない?標準化担当が決まっていなかった
Why 5なぜ担当が決まっていない?コードレビュー文化が弱かった

根本原因

  • SOQLの書き方ではなく
  • 「知識共有とレビュー文化不足」が本質だった

対策

  • Apexベストプラクティス整備
  • レビュー観点の明文化
  • Bulkificationチェック追加

5. よくある失敗

alt text

Why 2〜3で止めてしまう

悪い例

  • 「SOQLがforループ内にあった」
  • 「環境変数が漏れていた」

これはまだ“現象”であり、本質ではないことが多い


人を原因にしてしまう

悪い例

  • 「担当者が確認不足だった」
  • 「レビューアが見落とした」

個人ミスで終わらせると、同じ問題はまた発生する

重要なのは、

  • なぜ見落とせたのか?
  • なぜ仕組みで防げなかったのか?

を考えること


対策を作らず終わる

分析だけして満足してしまうケースも多い

5 Whysは「原因を探すこと」が目的ではなく、

  • 再発防止
  • 品質改善
  • 開発効率改善

まで実施して初めて意味がある


6. 実は開発以外でも使える

振り返り(Retrospective)

  • なぜスプリント遅延した?
  • なぜ見積もりがズレた?
  • なぜレビュー待ちが発生した?

問い合わせ分析

  • なぜ同じ問い合わせが増えている?
  • なぜユーザーが迷う?
  • なぜ操作ミスが起きる?

チーム改善

  • なぜ情報共有されない?
  • なぜ属人化する?
  • なぜレビュー負荷が偏る?

技術だけでなく、チーム運営にも非常に有効


7. 5 Whysを強くするコツ

alt text

問題を具体的に書く

悪い例:

  • 「システム障害が起きた」

良い例:

  • 「2026/05/01の本番リリース後、認証APIが500エラーを返した」

複数人で実施する

1人だけで分析すると視点が偏る

  • 開発者
  • レビューア
  • QA
  • 運用担当

など複数視点が重要


“事実”で話す

推測ではなく、

  • ログ
  • PR
  • 監視結果
  • タイムライン

など客観的事実を元に分析する


8. まとめ

alt text

  • 5 Whysは「表面的な症状」ではなく「根本原因」を見つけるための手法
  • ソフトウェア開発では障害分析・品質改善・振り返りと非常に相性が良い
  • 重要なのは「誰が悪いか」ではなく「なぜ防げなかったか」
  • 本当の改善は、コード修正ではなく“仕組み改善”にある
  • 小さな問題でも繰り返し実践すると、チーム全体の品質文化が変わっていく

最後に

次に障害やバグが発生した時、

「どう直すか」だけでなく、

「なぜ起きたのか?」

を少し深く考えてみるだけでも、開発の見え方はかなり変わります。

TOP