長く付き合ってきた外注先から、今後の対応が難しいと言われた。担当者が辞めた、会社が事業をたたむ、あるいは連絡が返ってこなくなった。理由はいろいろですが、状況は同じです。動いているシステムがあり、次に何かあったときに直せる人がいない。
この場面でまず「ソースコードをもらってください」と言われます。それは必要ですが、最初ではありません。コードだけ受け取っても、次の会社が引き継げないことがあります。順番があります。
コードより先に、動かしている場所を押さえる
最初に確かめるのは、そのシステムがどこで動いていて、誰の名義で契約されているかです。サーバーの契約、ドメイン、SSL証明書、送信メールの経路、外部サービスの利用契約。これが外注先の名義になっていると、支払いが止まった時点でシステムが動かなくなります。コードが手元にあっても関係ありません。
名義が相手のままだった、というのは珍しくありません。開発を任せた流れで、契約も相手が代わりに取っていた。悪意ではなく、そのほうが早かっただけです。ただ、関係が切れるときには最も急ぐ部分になります。ドメインの管理権限を失うと、メールも含めて全部止まります。
あわせて、管理画面に入るための認証情報を洗い出します。サーバー、データベース、外部サービス、監視の通知先。誰が持っているか分からないものが1つでもあれば、そこが次の停止の原因になります。
次に、動かし直せるかを確かめる
コードを受け取ったら、それだけでは足りません。受け取ったものから、もう一度同じシステムを立ち上げられるかどうかが分かれ目です。
足りなくなりがちなのは、設定ファイルの中身、外部サービスに接続するための鍵、データベースの構造を作る手順、そして本番と同じ状態を作るための説明です。開発していた人の手元にしか無かった、という形で欠けます。コードを渡した側も、渡していないことに気づいていません。
ここは受け取ったあとで確認するのではなく、関係が切れる前に確認します。「別の環境で立ち上げてみせてください」と頼むのがいちばん確実です。できないと言われたら、そこが欠けています。
人の頭にあるものを、聞ける間に聞く
資料に残らないものがあります。この処理はこの取引先のために足した、この日付より前のデータは扱いが違う、月末はこの順番で実行しないと数字が合わない。こうした話は仕様書に書かれず、担当者の記憶にだけあります。
連絡が取れるうちに、時間を買って聞き取ります。1時間か2時間の打ち合わせを有償で設定して、録音を残す。まとまった資料を作ってもらうより、この形のほうが現実的です。資料を作らせると時間がかかり、間に合わないことがあります。
聞くことを決めておくと短く終わります。過去に起きた障害とその原因、触ると危ない箇所、動かなくなったときに最初に見る場所。この3つで、次の担当者の負担がかなり変わります。
受け取れなかったときにできること
連絡が完全に取れない、あるいはコードすら出てこない場合もあります。その状態でも打つ手はあります。
動いているサーバーに入れるなら、そこにあるものが正解です。稼働中のコードと設定を取り出せば、渡されなかった資料の代わりになります。設計の意図は分かりませんが、いま何をしているかは全部そこにあります。サーバーに入れない場合は、まずホスティング事業者に契約者としての権限回復を相談します。
いずれの場合も、最初にやるのはデータの保全です。データベースの複製を自分たちの手元に取り、置き場所を変えて保管する。システムは作り直せますが、データは戻りません。ここだけは、調査や交渉より先に済ませます。
急ぐものと、後にできるもの
この段階で全部を整えようとすると進みません。仕様書を作る、コードを整理する、作り直しの計画を立てる。どれも必要ですが、いまではありません。
期限があるのは、名義と権限の移し替え、認証情報の掌握、データの保全、そして聞き取りです。前の3つは相手の協力が無くても進められることがあり、最後の1つは相手がいなくなると二度とできません。順番はそこで決まります。
次の委託先を決めるのは、ここが済んでからで間に合います。逆に、済まないまま探すと、どこに頼んでも見積もりが出ません。何を渡せるかが分からないシステムには、金額を付けられないためです。
判断がつかないとき
何が手元にあって何が欠けているかを、社内だけで判断するのは難しいところがあります。渡された資料の一覧を見ても、それで足りるかどうかは実際に立ち上げてみないと分かりません。
私たちは、引き継ぎの受け取りだけを先に見ることがあります。受け取ったもので動かせるか、欠けているものは何か、それは今のうちに請求できるものか。作り直すかどうかの話は、その後です。