- はじめに — 復旧は仕事の半分にすぎない
- インシデントコマンダー — 自分では直さない人
- 状態更新のリズム — 知らせがなくても叩き続けよ
- 三つの問い — すべての更新が答えるべきこと
- 非難なきポストモーテム — 人ではなくシステムを責めよ
- 5 Whys — 症状から根本原因まで
- 顧客コミュニケーション vs 社内コミュニケーション
- 冷静さ — トーンが部屋の空気を決める
- おわりに
- 参考資料
はじめに — 復旧は仕事の半分にすぎない
午前3時、ポケベルが鳴ります。決済APIが5xxを吐き続け、ダッシュボードは真っ赤です。あなたはログを掘り、原因を絞り込み、ロールバックを準備します。ここまではあなたが訓練を受けてきた仕事です。しかしこれは仕事の半分にすぎません。
残りの半分は対話です。いま何が起きているのかをチームに伝え、誰が何を担うのかを整理し、顧客に状況を伝え、経営陣の「いまどうなってる?」という問いに答える仕事。この半分をこなせないと、技術的には20分で終わったはずの短い障害が、一日中続く信頼の危機へと燃え広がります。人々が食い違った情報をもとに動いて作業が重複し、顧客は沈黙のなかで最悪を想像し、復旧が終わったあとも「いったい何があったのか」という問いが何日も尾を引きます。
この記事はその残りの半分を扱います。インシデントコマンダーという役割、状態更新のリズム、すべての更新が答えるべき三つの問い、非難なきポストモーテムと5 Whys、顧客と社内に向けた異なるコミュニケーション、そしてそのすべてを支える冷静さについて話していきます。
インシデントコマンダー — 自分では直さない人
混乱した障害対応でまず必要になるのは、ひとりの調整役です。この人をインシデントコマンダー(Incident Commander、以下IC)と呼びます。ICの本質は逆説的です。
ICの仕事は障害を直すことではなく、障害を直す人たちを調整することである。
ICが自らキーボードを握ってデバッグに飛び込んだ瞬間、調整する者がいなくなります。すると誰も全体像を把握できず、複数の人が同じ仮説を重複して追い、誰も顧客や経営陣に状況を伝えられなくなります。ICは手を空けておかなければなりません。そうしてはじめて、意思決定をし、人を割り当て、コミュニケーションの流れを統括できます。
効果的な対応は役割を明確に分けます。小規模な障害ならひとりが複数の役割を兼ねることもありますが、役割そのものは概念的に分離されているべきです。
- インシデントコマンダー(IC): 対応全体を束ねる単一の指揮者。意思決定をし、作業を委任し、優先順位を決めます。自分では直しません。
- コミュニケーションリード(comms lead): 外部と上位へ向かうコミュニケーションを担います。ステータスページの更新、顧客への告知、経営陣への報告を引き受け、ICと対応メンバーをその負担から解放します。
- 運用/ドメイン専門家(ops, subject-matter expert): 実際に手を動かして問題を診断し修正する人たちです。当該システムを最もよく知るエンジニアがここに入ります。
- スクライブ(scribe): タイムラインを記録します。何時何分に何が起き、どんな決定を下し、何を試したかをリアルタイムで残します。この記録が後にポストモーテムの骨組みになります。
この構造の力は認知負荷の分散にあります。ひとりが診断しながら同時に顧客告知を書き経営陣の問いに答えようとすれば、三つともお粗末になります。役割を分ければ、各人が一つのことに集中できます。そして誰がICなのかを全員がはっきり知っていなければなりません。「いまから指揮は私が執ります」という明示的な一言が、十人が右往左往していたチャンネルを一瞬で整列させます。
状態更新のリズム — 知らせがなくても叩き続けよ
障害中の沈黙は情報の不在ではなく、不安の増幅器です。状態更新が途絶えると、見守る人々は「みんな手を止めたのか?」「事態が悪化したのか?」を想像しはじめます。だから良いインシデントコミュニケーションの核心原則はこれです。
新しい知らせがなくても、規則的なリズムで更新せよ。
これはしばしば**ドラムビート(drumbeat)**と呼ばれます。深刻度に応じて15分、30分、60分といった周期を決め、その周期を守ります。進展のない周期でも「引き続き原因を調査中で、新しい進展はありません」と知らせます。この一文が「私たちはまだここにいて、この問題を手放していない」という信号になります。沈黙よりはるかに安心できる信号です。
ここで決定的な習慣が、次の更新時刻を明示して守ることです。すべての更新をこんな一文で締めてください。
- 「次の更新は14:30にお伝えします。」
- 「追加の知らせは30分後、遅くとも15:00に共有します。」
こうすると見守る人々は次の知らせがいつ来るかを知っているので、その間チャンネルを更新し続けたり、担当者に「どうなりました?」と繰り返し尋ねたりしません。そしてこれは約束です。14:30と言ったなら、14:30には必ず何かを投稿しなければなりません。たとえその内容が「まだ調査中で、次の更新は15:00です」だけであってもです。明示した時刻を破った瞬間、あなたが積み上げた信頼が崩れはじめます。
三つの問い — すべての更新が答えるべきこと
状態更新をどう書けばいいか途方に暮れたとき、三つの問いだけ覚えておけば十分です。良い更新はいつでもこの三つに答えます。
- 何が分かっているか (what do we know) — これまでに把握した事実。何が影響を受け、その範囲はどこまでか。事実と推測を混ぜず、確認できたことだけを事実として述べます。
- 何をしているか (what are we doing) — 現在進行中の対処。どの仮説を検証中で、どんな緩和策を適用し、次のステップは何か。
- 次の更新はいつか (when's the next update) — 先に強調したあの約束。明示的な時刻を必ず含めます。
この三問の枠が優れているのは、それがそのまま見守る人が本当に知りたいことのすべてだからです。人々はスタックトレースや内部の議論を求めていません。いま状況がどうなのか、何かが対処されているのか、いつまた聞けるのか — それだけ分かれば安心します。
トリアージの序盤では特に「何が分かっているか」を素早く立てることが重要です。たとえば5xxエラーが急増したのか4xxが急増したのかを区別するだけで、問題がサーバー側なのかクライアント側なのか方向が定まります。ステータスコードの意味が曖昧なときは、HTTP ステータスコードのような参照を手元に置いて素早く確認すれば、誤った方向に30分を浪費するのを防げます。
実際の社内Slack更新はこんな姿です。三つの問いすべてに答え、次の更新時刻を釘付けにします。
[インシデント #4021] 決済API障害 — 更新3 (14:05 JST)
分かっていること:
- 14:00から決済承認APIの約40%が5xxで失敗中。
- 原因は本日13:50にデプロイされた決済サービス v2.7.3 に絞り込み済み。
- 閲覧・カートなど他の機能は正常。
やっていること:
- v2.7.2 へロールバック進行中(デプロイパイプライン実行中、完了予定 ~14:15)。
- ロールバック後、承認成功率が回復するかを監視予定。
影響:
- 新規の決済試行が失敗または遅延。データ損失は確認されていない。
次の更新: 14:20、またはロールバック完了直後(早い方)。
IC: キム・ヨンジュ / Comms: イ・ソジュン
この形式が体に染みつけば、午前3時に頭がぼんやりした状態でも、空欄を埋めるように更新を書けます。
非難なきポストモーテム — 人ではなくシステムを責めよ
障害が終わったらポストモーテム(事後分析)を書きます。ここで最も重要な原則は**非難なき(blameless)**であることです。
非難なきポストモーテムの要点は、過ちを犯した人を探すことではなく、そんな過ちを可能にしたシステムとプロセスを責めることです。エンジニアが設定ファイルを誤ってデプロイして障害が起きたなら、問うべきは「誰がやったか」ではなく「なぜ私たちのシステムは、ひとりのたった一つのミスが全体を崩すことを許したのか」です。なぜ検証段階がそれを捕まえられなかったのか。なぜ誤った設定がそんなに簡単に本番まで届けられたのか。なぜロールバックにそんなに時間がかかったのか。
この原則が実用的な理由は、道徳ではなく情報の質にあります。人を責める文化では、誰も真実を語りません。自分のミスを認めれば罰せられると知っている人は、タイムラインを曖昧にし、自分が何を押したかを隠し、防御的になります。すると肝心のシステムの本当の弱点は永遠に露わにならず、同じ障害が別の人の手で繰り返されます。
逆に**心理的安全性(psychological safety)**があれば、人々は正直に語ります。「私がこのコマンドを実行し、この警告を無視し、この部分を確認しませんでした」と率直に明かせてこそ、その地点にガードレールを立てられます。正直なタイムラインは心理的安全性からしか生まれず、正直なタイムラインなしには本当の教訓もありません。
非難なきポストモーテムが答えるべきことは、おおよそ次のとおりです。
- 何があったか: 事実に基づくタイムライン(スクライブの記録がここで輝きます)。
- 影響は何だったか: どれだけ長く、どれだけ多くのユーザー/リクエストに、どんな形で。
- なぜ起きたか: 根本原因。人ではなく条件とシステム。
- どう検知/対応したか: 何がうまくいき、何が遅かったか。
- 再発をどう防ぐか: 担当者と期限のある、具体的なアクションアイテム。
5 Whys — 症状から根本原因まで
根本原因を掘り下げる古典的な手法が**5 Whys(五つのなぜ)**です。トヨタ生産方式に由来するこの方法は単純です。表面の症状から始めて「なぜ?」を繰り返し問い、より深い原因へ降りていくのです。
例を挙げましょう。
- 決済APIが失敗した。なぜ? — 決済サービスがデータベース接続を使い切ったから。
- なぜ接続を使い切ったのか? — 遅いクエリが接続を長く握って離さなかったから。
- なぜクエリが遅かったのか? — 新しく追加された照会がインデックスのないカラムをスキャンしたから。
- なぜインデックスなしでデプロイされたのか? — コードレビューでクエリの実行計画を確認しなかったから。
- なぜレビューがそれを見逃したのか? — 実行計画をレビューするチェックリストや自動チェックがなかったから。
五つ目の「なぜ」に至ると、最初の「APIが失敗した」とはまったく異なる地点に到達します。本当に直すべきは決済サービスではなく、危険なクエリを弾けなかったレビュープロセスです。これが5 Whysの力です。症状を継ぎ接ぎする代わりに、その症状を生んだ条件まで降りていかせます。
ただし5 Whysには明確な限界があるので、盲信しないでください。
- 原因はたいてい一つではない。 現実の障害は複数の原因が重なって起きます。「なぜ」を一本の筋だけ辿って降りると、残りの寄与要因を見落とします。実際には一つの「なぜ」に複数の枝分かれした答えがありうるので、5 Whysより原因を木のように広げる方が正確なことが多いです。
- 「5」は魔法の数ではない。 三回で到達することも、七回必要なこともあります。回数にこだわらないでください。
- 答えが人で止まったら掘り方を誤っている。 「なぜ? 彼がミスしたから」で止まると非難へ滑り落ちます。もう一歩進んで「なぜそのミスが可能だったのか」を問うてこそシステムに届きます。
5 Whysは思考を構造化する良い出発点ですが、唯一の道具ではありません。複雑な障害には、複数の原因の相互作用をあわせて見る広い視野が必要です。
顧客コミュニケーション vs 社内コミュニケーション
障害中のコミュニケーションでよくある誤りは、異なる聴衆に同じことを言うことです。顧客に向けたコミュニケーションと社内に向けたコミュニケーションは、目的も、求める情報も、トーンも異なります。
顧客が求めるのは三つです。影響(何が使えないか)、復旧見込み時刻(ETA)、そして**認識と謝罪(私たちが把握し対応中であるという確認)**です。顧客はあなたの内部アーキテクチャや、どのマイクロサービスの接続プールが枯渇したかには関心がありません。むしろそうした内部の詳細は混乱と不要な懸念を生むだけです。顧客への告知は、明確で、飾らず、共感的であるべきです。
社内は正反対です。対応メンバーと経営陣は技術的な真実を求めます。正確なエラー率、疑わしい原因、試したことと失敗したこと、ロールバックにかかる時間。ここでは不確実性さえ正直に共有すべきです。「原因の可能性が高いがまだ確証はない」といったニュアンスは社内では有用な情報です。逆にこの生の詳細を顧客に投げれば、信頼ではなく不安を買います。
二つのコミュニケーションを並べて比較するとこうなります。
| 区分 | 顧客コミュニケーション | 社内コミュニケーション |
|---|---|---|
| 聴衆 | ユーザー、顧客企業 | 対応メンバー、経営陣、ステークホルダー |
| 求めるもの | 影響 + ETA + 認識/謝罪 | 正確な技術的真実、原因、進捗 |
| トーン | 明確で飾らず共感的 | 直接的で具体的、率直(不確実性を含む) |
| チャンネル | ステータスページ、メール、告知バナー | インシデントSlackチャンネル、電話ブリッジ |
核心は翻訳です。コミュニケーションリードは、社内チャンネルを流れる生の技術的真実を、顧客が必要とする影響とETAと謝罪へ翻訳して送り出します。同じ出来事でも、聴衆によってまったく異なる文章にならなければなりません。
冷静さ — トーンが部屋の空気を決める
最後に、技術以前の態度について話します。障害対応において、ICの**冷静さは伝染します。**そしてその逆、つまり動揺も同じように伝染します。
ICが慌ててタイピングし、声が高くなり、「大変だ」という空気を放てば、対応チーム全体がその緊張を吸収します。緊張した人は性急な決定を下し、確認せずにコマンドを実行し、ミスを犯します。逆にICが落ち着いた声で「よし、一つずつ見ていきましょう。まず影響範囲を確定させます」と言えば、部屋全体の心拍数が下がります。人々は再び考える余裕を取り戻し、その余裕からより良い判断が生まれます。
トーンは言葉遣いだけの問題ではなく、対応の質を左右する実質的な変数です。危機対応の現場で長く通用してきた格言がこれをよく捉えています。
遅いことは滑らかで、滑らかなことは速い。(Slow is smooth, smooth is fast.)
逆説のように聞こえますが真実です。急げばミスが出て、ミスは取り戻すのにより多くの時間を使います。むしろ一拍遅らせて正確に動けば、その滑らかさが結果として最も速い道になります。急ぐときほど一呼吸整え、次の行動を声に出して言い(「いまからv2.7.2へロールバックを始めます」)、取り返しのつかない措置はもう一度確認する — これがICが部屋に植えつけるべきリズムです。
冷静さは感情を押し殺すことではなく、チームに考える空間を与えるリーダーシップの道具です。あなたが落ち着いていれば、チームも落ち着きます。そして落ち着いたチームが、障害をより速く、より安全に終わらせます。
おわりに
障害が起きると、私たちは本能的にコードへ駆け寄ります。しかしこの記事で見たように、技術的な復旧は仕事の半分にすぎません。残りの半分は対話です。手を空けたインシデントコマンダーが役割を分け、知らせがなくても規則的に叩き続ける状態更新が不安を鎮め、三つの問いがすべての更新を明快にし、非難なきポストモーテムが正直な教訓を残し、顧客と社内に向けた異なる翻訳がそれぞれの聴衆を安心させます。そしてそのすべての底に、ICの冷静さが敷かれています。
良いインシデントコミュニケーションは障害を防げません。障害はいつか必ず起きます。しかしそれが20分の技術的な問題で終わるか、それとも一日中続く信頼の危機へ広がるかは、対話が決めます。復旧は仕事の半分です。残りの半分をうまくこなすチームが、障害のあとにむしろ強くなります。
参考資料
- Google SRE Book — Managing Incidents: https://sre.google/sre-book/managing-incidents/
- Google SRE Book — Postmortem Culture: Learning from Failure: https://sre.google/sre-book/postmortem-culture/
- PagerDuty Incident Response Documentation: https://response.pagerduty.com/
- Atlassian Incident Management Handbook: https://www.atlassian.com/incident-management
- Five whys(概念整理): https://en.wikipedia.org/wiki/Five_whys
현재 단락 (1/83)
午前3時、ポケベルが鳴ります。決済APIが5xxを吐き続け、ダッシュボードは真っ赤です。あなたはログを掘り、原因を絞り込み、ロールバックを準備します。ここまではあなたが訓練を受けてきた仕事です。しかし...