はじめに
システム開発をしていると、避けて通れないのが障害対応です。
ログを確認したり、処理の流れを追ったりしながら原因を探っていくわけですが、実際の調査では最初から原因が分かることはあまりありません。
多くの場合は
「もしかするとこの処理が影響しているのでは?」
「このデータ状態が関係しているのでは?」
といった 仮説を立てながら調査を進めていきます。
今回は、ある障害対応の中で改めて感じた
「仮説」と「事実」を分けて考える大切さについて書いてみます。
障害調査は仮説から始まる
あるとき、本番環境で「想定通りに動作しない」という問い合わせがありました。
まずはログを確認し、関連する処理を追いながら原因を探していきます。
調査を進める中で、
「この処理が影響しているのではないか」
という仮説が出てきました。
ただ、この時点ではまだ
ログなどで原因が確認できていたわけではなく、
あくまで 「可能性がある」段階でした。
仮説がそのまま前提になりかけた
障害対応ではスピードも求められるため、仮説を元に議論が進むこと自体は珍しくありません。
ただ、このとき気づいたのは
いつの間にか
「この処理が原因」
という前提で話が進みそうになっていたことでした。
このまま進めてしまうと、もし仮説が外れていた場合、
調査の方向がずれてしまう可能性もあります。
事実と仮説を整理してみる
そこで一度立ち止まって、
- 事実として確認できていること
- まだ仮説の段階のこと
を整理してみました。

事実
- 実際に発生している現象
- ログから確認できる内容
仮説
- この処理が影響している可能性
- このデータ状態が関係している可能性
このように整理すると、
- どこまでが確認済みなのか
- どこからが推測なのか
がはっきりします。
結果として、調査の進め方も整理しやすくなりました。
障害対応では「認識合わせ」がとても大事
今回の件で改めて感じたのは、
障害対応では チーム内の認識合わせがとても重要だということです。
プロジェクトにはPM、エンジニア、運用担当者など、さまざまな役割のメンバーが関わります。
それぞれの立場や専門が違うため、
「いま分かっていること」
「まだ仮説の段階のこと」
を整理して共有しておくだけでも、調査の進み方がかなり変わると感じました。
まとめ
障害対応では、どうしても仮説を立てながら調査を進めることになります。
ただ、
- 事実として確認できていること
- まだ仮説の段階のこと
を意識して整理することで、
チーム内の認識が揃い、調査の方向も見えやすくなります。
スピードが求められる場面だからこそ、
こうした整理が大事だと感じた出来事でした。