ソフトウェア引き継ぎチェックリスト:制作会社が去るとき、何を持っているべきか
最後の請求書のあとで、自社のプロダクトをデプロイできないと気づく会社は少なくありません。あなたの名義であるべきものすべてと、関係が終わる前に確認する方法。
既存プロダクトの引き継ぎで相談を受けるとき、繰り返し現れるパターンがあります。法的にはコードを所有しているのに、リリースできない。リポジトリはある。デプロイ用アカウントは退職者のもの。ドメインは制作会社名義で登録されている。本番にどの環境変数が要るのか誰も知らない。
これは悪意であることはめったにありません。たいてい、誰かの頭の中にあることを誰も書き留めなかっただけです。しかし結果は同じですし、防ぐべき時点はプロジェクト開始前であって、終了時ではありません。
所有するとは実際どういうことか
ソフトウェアを所有するとは五つのことで、コードはその一つ目にすぎません。
- コードを、その履歴とともに持っている。
- まっさらなマシンからビルドして動かせる。
- 誰にも尋ねずにデプロイできる。
- 依存するアカウントとドメインを管理している。
- 変更できる程度に意思決定を理解している。
どれか一つでも欠ければ、持っているのはプロダクトではなく依存関係です。
チェックリスト
コード
- リポジトリが自社の組織にある。個人アカウントでも制作会社のものでもない。
- 完全な履歴があり、1 コミットに潰されていない。履歴はドキュメントです。
- すべてのブランチとタグ。本番で動いているタグを含む。
- デザインの元ファイル(Figma など)が自社ワークスペースにあり、フォントとライセンスが明記されている。
ビルドと実行
- まっさらなマシンで通用する README。 このテストは文字どおりです。プロジェクトを見たことがない人が手順どおりにやってアプリを起動できること。手順 4 で詰まるなら未完成です。
- 依存のバージョンが固定され、ロックファイルがコミットされている。
.env.exampleにすべての変数、その用途、入手先が書かれている。- テストの実行方法と、成功時の見え方。
デプロイ
- 自分たちで本番にデプロイでき、引き継ぎ前に実際に一度やっている。「必要ならできます」ではなく、やったこと。
- パイプラインの設定がリポジトリにあり、誰にも見えないダッシュボードでのクリック操作になっていない。
- ロールバックの方法を知っていて、試してある。
- DB マイグレーションが文書化され、本番への適用手順も含む。
アカウントとドメイン
いちばん痛い目に遭う分類です。各項目が小さく、忘れやすいからです。
- ドメインレジストラが自社名義で、更新用のカードが個人の在職状況で失効しない。
- DNSと、各レコードの用途の記録。
- ホスティング、クラウド、CDN。
- App Store と Play Console が自社組織にあり、署名鍵と証明書も。Android の署名鍵を失うと、そのアプリを二度と更新できません。
- メール、トランザクションメール事業者、そしてそれを認証する DNS レコード。
- エラートラッキング、解析、決済事業者。
- すべてのサードパーティ API キーと、どのアカウントに課金されるか。
各項目について:所有者は自社が管理するアドレスですか。 個人の業務メールではなく、退職しても残る共有アドレスかロールアドレスであること。
理解
- 短いアーキテクチャのメモ:構成要素と、リクエストの流れ。
- 書かれていなければ次のエンジニアが戸惑う選択についての意思決定記録。なぜこの DB か。なぜあのフレームワークでないのか。なぜこの奇妙な回避策があるのか。
- 運用手順書:何が壊れるか、アラートの意味、午前 2 時に何をするか。
- 既知の問題と意図的な近道を、正直に書いたもの。
意思決定記録は、誰も書かないのに最も価値の高いドキュメントです。コードは何をしたかを示します。何が却下され、なぜかを示すのは書かれた決定だけであり、それこそが、あなたがすでに授業料を払った失敗を次のチームが繰り返すのを防ぎます。
関係が終わる前に検証する
引き継ぎ資料は主張にすぎません。書いた人にまだ連絡が取れるうちに検証してください。
どちらも午後いっぱいの価値がある演習が二つ。
- まっさらなマシンテスト。 そのプロジェクトに関わっていない人が新品のノート PC で README どおりに進め、ローカルで動かす。詰まった箇所はすべてドキュメントの不具合です。その場で直しましょう。
- デプロイテスト。 自社チームが些細な変更を本番に出し、確認し、ロールバックする。どこか一つでも制作会社が必要なら、引き継ぎは未完了です。
これらは最終支払いの前にやってください。あとではなく。不信ではなく、全員がまだ在席していて動機もある唯一の瞬間だからです。
最初に整えておく
上のほぼすべてが、初日には些細で、9 か月目には高価です。キックオフ時に:
- 自社の組織でアカウントを作り、そこに制作会社を招く。逆ではなく。
- ドメインは自分で登録する。
- アカウント所有には最初からロールアドレスを使う。
- ドキュメントは「完了」の一部であり、終盤の作業ではないと合意する。
こう整えておけば、引き継ぎはイベントではなくなります。すべてが最初から自社のものなので、いくつかのアクセス権を外すだけになります。
契約前に聞くべきこと
私たちを含め、どの制作会社にも聞く価値のある三つの質問。
- アカウントは誰の名義になりますか。 最初から御社名義、が唯一の良い答えです。
- あなたたちなしでデプロイできますか。 しかもプロジェクトの途中でそれを証明できますか、終わってからではなく。
- 3 か月目で協働をやめたらどうなりますか。 正直な答えはプロセスを説明します。あいまいな答えは警告です。
自分の仕事に自信のある制作会社に、何かを抱え込む理由はありません。これらの答えが居心地悪く感じられるなら、それが商談全体で得られる最も有用な情報です。