ステルスリリースが好き
機能が完成した!いざリリースだ!
ふとPull Requestを見ると、差分が大きくなってしまうことってよくありますよね。
『ちょっと差分が大きくなったけれど...』
『テストも書いた...』
『CIだって書いてる...』
『リーダーもレビュー済みだ...』
『本番データと同等で開発環境でもステージング環境でもしっかりQAした...』
『でも、なんか不安なんだよな...』
『ちょっと差分が大きくなったからね...』
大きい差分をリリースするな。リリースサイズを小さくしよう。
差分が大きいと、開発者を不安にさせます。
リリースする差分を小さくしましょう。
- フロントエンドに影響がないなら、バックエンドからリリースしよう
- DBにテーブル追加が伴うなら先に、テーブル変更だけリリースしよう
- DB変更ならオンラインではできないかもしれない。メンテするにしても、小さな変更でメンテすれば、メンテ解除を判断しやすい
- フロントエンドなら、社内ユーザー以外には表示しない分岐を入れよう
- どこからもリンクされていない秘密URLを用意して、そこで先に機能を試そう
こうして差分を小さくすることができます。
(レビューをしてもらう難易度が少し上がるのですが...)
実行環境にリリースされてるが、ユーザーに影響がないリリースのことをステルスリリースといいます。
僕はステルスリリースが大好きです!! 愛してるよ。ステルスリリースちゃん。
ステルスリリースは本番環境でしか試せないことが試せる
残念ながら、考慮漏れに気づくのはいつも本番環境です。
計測ツールで計測タグをちゃんと入れたかどうか?なんて、初期リリース時に抜け漏れが起こる項目第1位です。(適当
OGPがなんか変なんですけど!!とかも、他にもリリース前に事前に気づけ無いことがおおいですよね。(仕組みではカバーできてても、実際に使ってみないとユーザー体験のチェックができない。
僕はちょっとした機能でも割とカジュアルにステルスリリースをするようにしてる。
リファクタリングとかリアーキテクトが絡む場面や初期データ投入が伴う場面とかで。
本番環境でテストするなんていうと、ぎょっとした目で僕を見る人がいるけれど。
本番でテストするなんてなんかちょっとドキドキするよね
もう一回言わせて。
僕はステルスリリースが大好き!
ステルスリリースの語源ってどこなんだろう?
今まで所属したどこのチームでも「ステルスリリース」で通用するんだけど、ステルスリリースの出典がどこにあるのかわからないから困っている。
ぼくが知ってる書籍でいうと『レガシーソフトウェア改善ガイド』には書いてある。
でも、この書籍が出版されるとっくの昔から使ってたんだよね。ステルスリリース。
ちなみに類義語に「フィーチャートグル」や「カナリアリリース」があるけれど、
どちらも本番でテストするという意味では同じです。
でも、フィーチャートグルだと、ユーザー属性によって出し分ける意味で使っていて、
カナリアリリースだと、n%のユーザーに到着するサーバーを変える意味で使っています。
僕の大好きなステルスリリースの出典、知ってる方、ぜひ教えて下さい!!!
Discussion