masayuki5160's diary

滋賀県大津市に住むソフトウェアエンジニアの雑多ブログ

モバイルアプリにおけるリリーストレイン運用に関して感じていること諸々

TL;DR

モバイルアプリの運用という観点において、リリーストレインはとても良いフレームワークだと思う。

ただ、どんなときもリリーストレインのルール守ることが良いとは考えてはいない。柔軟に予定外のリリースはすればいいと思うけど、ルールを破ろうとしてる時は大体のケースで無理な計画してる時だからゴニョゴニョ相談した方がいいね。

リリーストレイン?

リリーストレインとはなんぞ、という話は割愛する。メルカリさんや他のブログ記事、そしてSAFeがまとめている資料に詳しいのでそちらを参照いただく方がいいだろう。SAFeはリリーストレインの利用をフレームワークの中に内包している認識なのでざっとその部分のドキュメントだけ読むと良さそう。参考リンクだけ載せておく。

engineering.mercari.com

scaledagileframework.com

 

今回この記事を書くにあたって、せっかくなのでリリーストレインについて色々調べてみたら面白かったのがbitriseがリリーストレインに関する記事を色々書いていたこと。SAFe関連の記事が色々ヒットするだろうなとは思っていて、それは予想通りだったんだけど、bitriseがリリーストレインに関する記事を書いていて、なるほどな、と思った。

bitrise.io

「リリース予定日が事前にわかることで、編集チームとのコミュニケーションがより効果的になり、新機能のプロモーションやスケジュールへの理解が深まるとともに、十分にテストされた修正プログラムをより定期的に配信できるようになりました。」
Reach PLC社、iOSデベロッパー

引用:スピードと効率性を高めるためにリリース・トレインを利用する5つの方法 - Bitrise Blog

 

メルカリさんの記事にも同じような話は書かれているけど、このbitriseの記事内でインタビューされたiOSエンジニアの方の言ってることはまさに僕も感じてるリリーストレインを導入することによるメリット。iOSアプリの運用、ていう観点でもこのリリース予定日が事前に決まっていることによる負荷の軽減って本当に大きい。回答してる人もiOSエンジニアのようだし、そのメリットを感じてるんだろう。

モバイルアプリの開発を担当するようになってもう10年以上経つけど、ずっと審査提出する日やリジェクトされた場合の作業マージンとか色々考えながらいつもリリーススケジュールをあれこれ議論してた。この経験があったから今お仕事できてるようにも正直思うけども、リリーストレインによってリリースする日が事前に決まっていることによる恩恵は本当に大きい。

 

そんなわけでモバイルアプリの運用とリリーストレインというのは本当に相性良くて助かるなーと利用するようになって思った。

ルールを守るのか、破るのか

課題として感じていることが一つあって、それは予定していないリリースをするかどうか、ということ。すなわち、リリーストレインで予定している以外のリリースを追加でするか、の話。

 

リリーストレイン導入してるくせに、予定外のリリースするとか矛盾してるやん、て思う方もいると思うけど、プロダクトとしてリリースしたい機能があって、それをリリーストレインを導入してるから、という理由でリリースできないorリリース希望日に出せない、ていうのもやっぱりおかしいと思う。そもそもリリースしたいときにできないってなに?みたいなのは思う(アプリのリリースに審査が必要なことがそもそもあれだけど、それは以前 モバイルアプリを好きな時にリリースしたい - masayuki5160's diaryの記事で書いたから割愛)。

 

"リリーストレインの予定にはない日なんですけど、どうしてもリリースしたいらしくて・・・"

 

という話はよくある。そうだよね、そういうのあるよね、といつも思いながら一緒に相談している。

プロダクトを安定して届けるためにリリーストレインを導入してるけど、リリーストレインのせいでプロダクトのリリースができないのはおかしい。けど、モバイルアプリの場合は審査があって大きな不具合が仮に出てもすぐには修正リリースをできない。それを考えるとリリーストレインの予定にないリリースをすることは何かしら無理をすることになる。

悩ましいなーといつも思っている。

 

ただ、最近気づいたのが、大体のケースでこの予定外のリリースの相談がある時は無理な計画をしている時であることに気づいた。あとは突発的な作業が発生した時。

後者は対応するしかないのでやるでいいと思ってる。リリーストレインがなんとか、というのは関係ない。hotfixのリリースも同様。やるしかない。

他方、前者は関係者としっかり議論してから基本的にはリリーストレインに乗っかる方がベターなんだろうな、と最近思っている。プロダクトのことを考えると好きな時にリリースをどん、とできる方がいいだろうけど、でもそのプロダクトを届ける下支えをしているのがこのリリーストレインなわけだし、可能な限りそれに従う方がベターだろうなと。

 

みんなこういうのどうしてるんだろうな、と思ってざっと調べたんだけど、あんまりうまく情報を探せなかった。論文もざっと調べてみたけど、SAFeの話ばかりヒットするから面白くなくてやめた(SAFeそのものはすごいフレームワークだと思っています、が今見たい情報ではない)。誰かこういう悩みの話を書いてないかなとググっても見たけど、僕の調べ方がうまくないようでそういう情報なかった。

まあみんなリリーストレイン導入してても予定外のリリースはしてるんだろうな、とは思う。根拠ないけどするしかないと思うし。

まとめ

リリーストレイン、いいんだけど、ルール守ることも難しいからうまいこと付き合わないとな、というのが最近の学び。スクラムをすることに熱心になって何してるかわからんくなる状況とイメージ的には同じ。

大事なことがなんなのか、ていうのをちゃんと理解して向き合うのが大事。でもそれが一番難しい。以上、終わり。