■ 1. 概要
- シニアエンジニアが実践するトラブルシューティング・切り分けの思考パターンを9つに整理したもの
- 調査力の差は経験や知識量だけでなく「不確実性を1つずつ削り落とすプロセスの徹底」にある
■ 2. 調査・切り分けの思考パターン
- まず全体を見る:
- いきなり一点を疑わず全体像を把握する
- 局所ではなく構造を見る
- 見る前に予測する:
- ログやコードを開く前に「おそらくここだろう」を言語化する
- 仮説なしに掘り始めると異常を見逃しやすいため観測は仮説とセットで行う
- 外から内へ絞る:
- 全体→サービス境界→コンポーネント→コードの順に見る
- いきなりコードを読み始めずスコープを段階的に狭める
- 計測してから動く:
- 「遅そう」「怪しそう」という体感で修正しない
- APMやダッシュボードで実測してから手を動かし数値で判断する
- 変化点を探す:
- 「昨日まで正常だった」場合はデプロイ・設定変更・トラフィック・依存サービス更新などの変化を探す
- 状態ではなく変化を見る
- 1つずつ変える:
- 複数の改善を同時に入れない
- 影響を限定し即時に戻せる形で小さく変更して検証する
- 調査ログを残す:
- 何を見て・何を考え・なぜそう判断したかを記録する
- 仮説と結果をセットで残し思考の履歴を共有資産にする
- 境界条件を叩く:
- 「正常か異常か」だけでなく「どこまでなら正常か」を探る
- 前提が破綻する条件を意図的に試し暗黙の前提をあぶり出す
- 再現手順を最小化する:
- 複雑な手順のまま調査せず「これさえあれば再現する」最小構成を見つける
- 不要なコードや依存関係を削ぎ落としノイズを排除する