🥰

ステルスリリースが好き

2022/06/01に公開

機能が完成した!いざリリースだ!

ふとPull Requestを見ると、差分が大きくなってしまうことってよくありますよね。

ちょっと差分が大きくなったけれど...』

『テストも書いた...』
『CIだって書いてる...』
『リーダーもレビュー済みだ...』
『本番データと同等で開発環境でもステージング環境でもしっかりQAした...』

『でも、なんか不安なんだよな...』

ちょっと差分が大きくなったからね...』

大きい差分をリリースするな。リリースサイズを小さくしよう。

差分が大きいと、開発者を不安にさせます。
リリースする差分を小さくしましょう。

  • フロントエンドに影響がないなら、バックエンドからリリースしよう
  • DBにテーブル追加が伴うなら先に、テーブル変更だけリリースしよう
  • DB変更ならオンラインではできないかもしれない。メンテするにしても、小さな変更でメンテすれば、メンテ解除を判断しやすい
  • フロントエンドなら、社内ユーザー以外には表示しない分岐を入れよう
  • どこからもリンクされていない秘密URLを用意して、そこで先に機能を試そう

こうして差分を小さくすることができます。
(レビューをしてもらう難易度が少し上がるのですが...)

実行環境にリリースされてるが、ユーザーに影響がないリリースのことをステルスリリースといいます。
僕はステルスリリースが大好きです!! 愛してるよ。ステルスリリースちゃん。

ステルスリリースは本番環境でしか試せないことが試せる

残念ながら、考慮漏れに気づくのはいつも本番環境です。

計測ツールで計測タグをちゃんと入れたかどうか?なんて、初期リリース時に抜け漏れが起こる項目第1位です。(適当
OGPがなんか変なんですけど!!とかも、他にもリリース前に事前に気づけ無いことがおおいですよね。(仕組みではカバーできてても、実際に使ってみないとユーザー体験のチェックができない。

僕はちょっとした機能でも割とカジュアルにステルスリリースをするようにしてる。
リファクタリングとかリアーキテクトが絡む場面や初期データ投入が伴う場面とかで。

本番環境でテストするなんていうと、ぎょっとした目で僕を見る人がいるけれど。
本番でテストするなんてなんかちょっとドキドキするよね

もう一回言わせて。

僕はステルスリリースが大好き!

ステルスリリースの語源ってどこなんだろう?

今まで所属したどこのチームでも「ステルスリリース」で通用するんだけど、ステルスリリースの出典がどこにあるのかわからないから困っている。
ぼくが知ってる書籍でいうと『レガシーソフトウェア改善ガイド』には書いてある。

でも、この書籍が出版されるとっくの昔から使ってたんだよね。ステルスリリース。

ちなみに類義語に「フィーチャートグル」や「カナリアリリース」があるけれど、
どちらも本番でテストするという意味では同じです。

でも、フィーチャートグルだと、ユーザー属性によって出し分ける意味で使っていて、
カナリアリリースだと、n%のユーザーに到着するサーバーを変える意味で使っています。

僕の大好きなステルスリリースの出典、知ってる方、ぜひ教えて下さい!!!

Discussion