· HARUBOUYA · pm · 14 min read

前任者がいないシステムを引き継ぐ手順

資料がなく、聞ける人もいない状態で引き継ぐ場合の進め方です。まず動いているものを数え、止まったら困る順に並べます。調査から運用に乗せるまでの進め方を書きます。

システム構成図を画面で確認しながらメモを取る人のイラスト

前任者が退職しています。設計書はありません。動いているものは分かりません。この状態でシステムを引き継ぐ場面は、珍しくありません。

つらいのは調べること自体ではなく、何を調べ終えれば引き継げたと言えるのかが分からないことです。終わりが見えないまま手を動かすと消耗します。

終わりの条件を先に決めて、そこから逆に進めます。

引き継げたと言える条件

次の5つが埋まった時点で、引き継ぎは完了と見なしてよいです。

#条件
1動いているものが一覧になっています
2止まったときに誰が困るかが分かっています
3止まったときに気づけます
4止まったときの復旧手順がある(上位のものだけでよい)
5権限と契約の持ち主が分かっています

中身をすべて理解する必要はありません。理解は運用しながらで間に合います。上の5つがない状態で運用に入ると、事故のときに何もできません。

手順1. 動いているものを数える

最初にやるのは、コードを読むことではなく棚卸しです。

見る場所見つかるもの
スケジューラの一覧定期実行されている処理
サーバーレス実行環境の一覧呼び出されている処理
ワークフローの一覧処理のつながり
仮想マシンの一覧常時動いているもの
データベースのジョブ一覧定期的なクエリ
外部サービスの管理画面連携、通知、配信

「ない」ことの確認まで含めて一覧にします。後から「実はここにもあった」が出るのが一番こわいです。

一覧の形は次の通りです。

名前種類実行時刻状態何をしているか出力先
(処理名)定期実行毎日2:30有効(1行)(テーブル名など)

「何をしているか」は1行でよいです。この段階で深追いしません。

手順2. 止まったら困る順に並べる

一覧ができたら、順番を付けます。基準は止まったときに誰が困るかです。

区分例対応の優先度
顧客に見えますサイトの表示、通知の配信最優先
社内の判断に使います日次の集計、定例レポート高
後から追いつけます分析用の蓄積中
使われていない可能性出力先を誰も見ていません低(止めてよいか確認します)

最後の区分が重要です。使われていない処理は必ずあります。止めてよいか関係者に確認するだけで、管理する対象が減ります。

確認の仕方は、出力先(テーブル、レポート、通知先)を見て、直近3か月に誰かが参照しているかを調べます。参照が無ければ、その部署に「止めてよいか」と聞きます。

手順3. 気づける状態にする

上位のものから順に、失敗したときに通知が飛ぶようにします。

確認すること見るところ
失敗時の処理が書かれているかワークフローの定義に例外処理があるか
通知先が生きているか通知先のチャネルやメールが有効か
失敗を失敗と判定できるか中の処理が異常時に正常の応答を返していないか

3つ目を見落としやすいです。異常でも正常の応答を返す実装だと、呼び出し側は成功と判断します。この場合、通知を足しても飛びません。

手順4. 復旧の手順を書く

すべてに書かなくてよいです。優先度が高いものだけ、次の3行を書きます。

症状:(何が起きたら、この手順を使うか)
確認:(どの画面・どのログを見るか)
復旧:(再実行の方法。再実行してよい条件)

「再実行してよい条件」を必ず書きます。同じ処理を2回動かすと二重に取り込まれるものがあります。ここを書いていないと、復旧が事故になります。

手順5. 権限と契約を洗う

技術よりも、ここで詰まります。

対象確認すること
クラウドの管理権限誰が持っているか。前任者のアカウントが残っていないか
外部サービスの管理者ログインできる人がいるか
ドメイン・証明書契約者と更新期限
APIキー・認証情報どこに保管されているか。有効期限
請求の送付先誰が受け取っているか

前任者のアカウントで動いている処理が残っていることがあります。アカウントを消した瞬間に止まるため、棚卸しの段階で確認します。

聞ける人がいない場合

聞ける相手がいても、答えが返らないことはあります。その場合の進め方は次のとおりです。

状況やること
技術的な説明が得られません動いているものから逆に読みます。設定画面の値が事実
経緯が分かりません経緯は後回し。いまの動きだけを記録します
用語が通じません自分の言葉で一覧を作り、それを見せて確認を取ります
資料が古いです資料ではなく実物を正とします。日付を添えて記録します

設定画面に入っている値が事実です。ドキュメントと違う場合、動いているほうが正しいです。

やること

調査の記録の残し方

調べたことは、その日のうちに書きます。形式は問わないが、次を入れます。

調査日:
調べたもの:
分かったこと:
分からなかったこと:
次に見るところ:

「分からなかったこと」を残すのが要点です。次に調べる人(自分を含む)が同じ場所で止まらずに済みます。

期限を切る

棚卸しは、放っておくと終わりません。

工程目安
動いているものの一覧1週間
優先度付けと関係者への確認1週間
通知の整備(上位のみ)1週間
復旧手順(上位のみ)1週間

1か月で運用に入れる状態にすると決めて動きます。完璧を目指すと、いつまでも引き継ぎ中のままになります。

触らないと決めておくこと

調査中は、次をやらないでください。

  • 元の処理の書き換え
  • 権限の変更
  • データの削除・再取り込み
  • 使っていなさそうな処理の停止(確認前)

削除と再取り込みが一番危ないです。洗い替えの仕組みだと、再取り込みの失敗でその日の分が消えます。

失敗例

失敗何が起きるか代わりにやること
コードを読むところから始めます全体像が分からないまま時間が過ぎますまず動いているものを数えます
一覧に「無かった場所」を書きません後から未把握の処理が出てきます確認した場所は「無し」も含めて記録します
すべてを理解しようとします終わりが来ません5つの条件を満たした時点で完了とします
使われていない処理を放置します管理対象が減らず、通知も増えます参照状況を調べ、止めてよいか確認します
通知を足して安心します異常時に正常の応答を返す処理では飛びません失敗を失敗と判定できるかを確認します
復旧手順に再実行条件を書きません復旧作業が二重取り込みの事故になります再実行してよい条件を必ず書きます
前任者のアカウントを先に消します動いていた処理が止まります権限の棚卸しを先に行います
調査中に元の処理を直します原因が分からなくなります調査と変更を分けます

まとめ

  • 引き継ぎのつらさは作業量ではなく、終わりの条件がないこと
  • 完了の条件は5つです。一覧化・影響範囲・検知・復旧手順・権限です。中身の理解は含めません
  • 最初にやるのはコードを読むことではなく、動いているものを数えること
  • 「無かった場所」まで一覧に書きます。後から出てくるのが一番こわい
  • 使われていない処理は必ずあります。止めてよいか確認するだけで管理対象が減ります
  • 異常時に正常の応答を返す処理では、通知を足しても飛びません
  • 復旧手順には再実行してよい条件を書きます。書かないと復旧が事故になります
  • 調査中は、元の処理・権限・データに触らないでください
  • 1か月で運用に入れる状態にすると決めます。完璧を目指すと終わりません

最初の1週間でやることは、動いているものを数えて表にするだけです。その表ができた時点で、引き継ぎの半分は終わっています。

Share:

参考になったら、いいねを押してください。

コメント

    お名前とコメントは、確認後にこのページで公開されます。メールアドレスや電話番号などは書かないでください。

    Back to Blog

    Related Posts

    View All Posts »
    なぜエンジニアに話が伝わらないのか

    なぜエンジニアに話が伝わらないのか

    伝わらないのは相手のせいではなく、伝え方の型が違うためです。依頼の書き方、避けたい言葉、質問への答え方を整理します。

    ベンダーに頼む前に、自分で決めておくこと

    ベンダーに頼む前に、自分で決めておくこと

    見積もりが会社によって何倍も違います。原因はベンダーではなく、渡した情報の粒度にあります。頼む側が先に決めておく6項目と、その書き方をまとめます。