リリースで決めるのは「いつ、誰に、どう出すか」
映画は撮影と編集が終わっても、すぐには観客に届きません。配給会社が公開日を決め、劇場と調整し、宣伝を打って、ようやく「本日公開」を迎えます。
リリースは、完成した機能やサービスを、ユーザーが使える状態として正式に公開する判断と行為です。プログラムをサーバーに置くデプロイは技術的な作業で、いつでも行えます。リリースで決めるのは、その先の「いつ、誰に、どのように届けるか」です。
たとえば次のような判断が、リリースに含まれます。
- 新機能を、プレスリリースやお知らせと同じタイミングで公開する
- 利用者の少ない時間帯を選んで、影響が出にくいときに公開する
- 社内の承認や法的な確認が終わるまで、準備ができていても公開を待つ
- 大型連休の前に機能を仕込んでおき、キャンペーン開始日にスイッチを入れて公開する
最後の例のように、デプロイとリリースの日がずれるのは珍しくありません。2つの違いはデプロイとリリースの違いで詳しく整理しています。
一度に全員へ出さないという選択
新しい機能を、最初から全員に見せる必要はありません。一部のユーザーだけに先に公開して反応や不具合を確かめ、問題がなければ範囲を広げていく。この段階的リリースを使えば、何か起きても影響を受けるのは一部の人だけで済みます。
こうした出し分けには、コードを変えずに機能の表示を切り替える機能フラグがよく使われます。
「リリースした」の意味をチームでそろえる
「デプロイが終わったからリリース完了」とは限りません。デプロイしたけれどユーザーへの告知はまだ、機能フラグで非表示にしたまま、ということもあります。開発チームは「出した」と思っていて、営業チームは「まだ」と思っている。この食い違いを防ぐために、チームの中で「リリースとはどの状態を指すか」を決めておきます。
何を変えたのかをリリースノートとして記録し、共有しておくことも大切です。そして、公開したあとに問題が見つかったとき、すぐに元へ戻せるロールバックの手順を用意してから出すようにします。
