← 概念辨析に戻る

Concept Contrast Fable

ロールバックとロールバック計画

先に結論:ロールバックは一つの動作である——システムを現在のバージョンから前のバージョンに戻す。ロールバック計画は一連の事前計画である——どの条件でロールバックを発動するか、誰が実行するか、実行手順は何か、どれくらいで完了するか、ロールバック後にどう検証するか、失敗したらどうするか。ロールバック能力があることはロールバック計画があることを意味しない。深夜三時にシステムが落ち、当直エンジニアがロールバックボタンを押してもシステムが起き上がらない——彼が押したのは去年書かれたスクリプトで、途中でデータベース構造が変わり、スクリプトはすでに互換性がなかったからだ。

ロールバックは一つの動作である——システムを現在のバージョンから前のバージョンに戻す。ロールバック計画は一連の事前計画である——どの条件でロールバックを発動するか、誰が実行するか、実行手順は何か、どれくらいで完了するか、ロールバック後にどう検証するか、失敗したらどうするか。ロールバック能力があることはロールバック計画があることを意味しない。深夜三時にシステムが落ち、当直エンジニアがロールバックボタンを押してもシステムが起き上がらない——彼が押したのは去年書かれたスクリプトで、途中でデータベース構造が変わり、スクリプトはすでに互換性がなかったからだ。

寓話

落下傘降下と落下傘降下の予案

スカイダイビングクラブの教官である老項は、生徒を飛行機に乗せる前に毎回一つの質問をする。メインのパラシュートが開かなかったらどうするか。新入生は皆、はっきりと答える——予備のパラシュートを引く。老項は続けて問う。予備も開かなかったら。生徒は言葉に詰まる。老項は言う。答えを出してほしいのではない。この問題があると知り、それに沿って予案を練習してほしいのだ。

クラブは一期の講習会を開き、受講者は三日で修了証をもらった。試験項目は一つだけ。メインのパラシュートが開かなければ予備を引き、予備が開いて着地すればよい。修了率は高く、クラブは大いに儲けた。老項は心が落ち着かなかったが、どこがおかしいか言えなかった。

半年後に事故が起きた。受講者は八百メートルの高度で主傘が開かず、予備傘を引いた。予備傘は開いたが、主傘の紐に絡まった。受講者は慌て、絡まりを処理する経験がなく、脚を骨折した。事故調査報告書は指摘した。試験は「予備傘を引く」という動作だけを試し、「予備傘に問題が起きたらどうするか」という論理チェーン全体を試していなかった。

老項は研修体系を根本から作り直した。新しい研修には三層が加わった。第一層は、搭乗前のシナリオ演習:落下高度、風向、身体姿勢、メインパラシュートと予備パラシュートの故障の組み合わせを、筋肉記憶に刻まれるまで練習する。第二層は、各ジャンプ前の強制ブリーフィング:今日はどの高さまで飛び、どのくらい飛び、どの空域で、風向予報はどうで、予備パラシュートの点検は誰が署名するか。第三層は、各ジャンプ後の強制振り返り:今日誰かが予備パラシュートを作動させたか、作動原因、予備パラシュートの性能、次回のブリーフィングに更新すべきことは何か。

新体系の導入後、老項が気づいた最大の変化は事故率ではなかった——事故はもともと少なく、サンプルが小さすぎて見えなかった。変わったのは受講者の心構えだった。以前は受講者は「予備のパラシュートを引く」ことだけを覚え、心は宙に浮いていた。今は受講者は、各段階の前に何を確認すべきか、予期せぬ事態でどちらへ向きを変えるべきか、向きを変えられなければどの代替動作をすべきかを知っている。心に経路全体があれば、手は震えない。

同業者が教えを請いに来て、老項に尋ねた:あなたはただ受講者に予備パラシュートを引く練習を何度もさせただけではないか?老項は新旧二つの研修大綱を机に広げた:旧には一行だけ——「主傘故障時に予備傘を引く」。新には十七ページ——発動条件、実行手順、失敗場面、代替方案、振り返りプロセスを含む。老項は言った:何度も練習しても動作の熟練度しか解決せず、予案の網羅度は解決しない。

スカイダイビング協会は後に、老項の訓練要綱を業界標準に改めた。序文にはこう記された。予備パラシュートを引くのは本能的な反応であり、予備パラシュートが開かなかった後の連続的な意思決定チェーンを設計することこそが専門能力である。本能的な反応は不意の事故を救えないが、事前の計画は救える。

老項の教え子たちは後に各業界でコーチになった。システム運用の研修をする者は、老項のやり方をそのまま持ち込んだ。チームがロールバックコマンドを実行できるかだけを見るのではなく、ロールバック計画があるかを見るのだ。トリガー条件から復旧確認まで、主経路からすべての分岐失敗シナリオまで書き出す。

ロールバック

システムまたは設定を現在のバージョンから以前の安定したバージョンに戻す操作。これは実行ステップであり、「戻せるかどうか」に注目する。

ロールバック計画

発動条件、意思決定権限、実行手順、時間枠、検証方法、失敗シナリオ、コミュニケーション計画を網羅する体系的なロールバック計画。焦点は「ロールバックを決断してから正常復旧を確認するまでの一連の流れの安全と制御」にある。

物語の対応

  • 予備の傘を引くという動作:ロールバック——実行可能な操作手順。
  • 老項の新しい研修三層アーキテクチャ:ロールバック計画——トリガー条件、実行フロー、失敗シナリオ、振り返りをカバーする。
  • 予備の傘が絡まって受講者はどうすればよいか分からない:ロールバック能力はあるがロールバック計画がなく、予期せぬシナリオが想定内にない。
  • 旧概要は一行、新概要は十七ページ:ロールバック計画の網羅深度はロールバック動作そのものをはるかに超えている。
  • 経路全体を把握していれば手は震えない:ロールバック計画の核心的価値は、実行時の意思決定の不確実性を下げることである。

プロジェクトに落とし込む

リリース前に毎回二つを確認する。第一に、ロールバックコマンドが現在のバージョンでまだ動くか——データベース移行、設定形式の変更、依存関係のアップグレードの後、古いロールバックスクリプトはすでに無効になっているかもしれない。第二に、ロールバック計画に「ロールバック失敗時はどうするか」が書かれているか——ロールバック自体も失敗しうる。計画が主経路しか覆っていなければ、最も危険なシーンを現場の即席判断に残すことになる。また、ロールバック計画はコードと同様にレビューを通し、少なくとも四半期ごとに一度演習する必要がある。

京ICP备2026014272号