アプリケーションの漸進的リリースについて
とりあえずメモ
アプリケーションの機能や UI を大きく変更する際、変更後のアプリケーションがどんなに優れていたとしても既存ユーザからは悪い反応しか来ない。
それはそうだ、既存ユーザは "優れた UI" や "画期的な機能" を使いたいのでは無くて、いままで使っていたアプリケーションを明日も変わらず同じ操作で使い続けられることを期待しているからだ。
しかし、今のアプリケーションでは、明らかに良くない UI 、不足した機能、 UX 上の問題がある。開発者としてはアプリケーションを変更する必要を感じている。
では、一体どうやってアプリケーションをリリースすれば良いのだろうか。
当たり前の話なんだけど、少しずつアプリケーションを変更していけば、そういった問題は無くなる。だけど、一般的にはそういうリリースをしているアプリケーションをあまり見掛けない気がする。
そもそも少しずつ変化していくアプリケーションを認識するのは難しいし、ドラスティックに変更してレビューが炎上したアプリケーションは認識しやすいせいもあるだろう。
- 漸進的リリース
- メリット
- ユーザは昨日まで使っていた機能を今日も戸惑うことなく利用することが出来る
- ユーザのフィードバックを受けながら細かい単位で路線変更できる
- リリースサイクルは早くなるのでアジャイル開発と相性が良い
- デメリット
- 何度もリリースしないといけなくて面倒
- レガシーな UI に手を入れていくのはめんどくさい
- 途中状態の設計を何度もする必要がある
- メリット
- 突発的リリース
- メリット
- レガシーな UI を弄らなくて良い
- 一度リリースすれば良いので楽
- 完成品だけを設計すれば良いので楽
- デメリット
- アップデートしたユーザは混乱する
- レビューが荒れる
- メリット
まあ、これは粒度の問題で、たとえば文字を 1px 右にズラすごとに 1 回リリース、などという運用をしていたら埒が明かないし、かといって 1 回のリリースで画面の構成を全く別物にしてしまっては意味が無い。適度な粒度での変更が必要なのだ。
個人的には、突発的リリースというのは時代遅れになってきていると思う。漸進的リリースというのは、結局のところアジャイル開発そのものだし、それらを支えるための継続的インテグレーション、継続的デプロイ、スクラム開発といったテクノロジはすでに現実世界にある。
と、まあここまで書いてきて、これってつまりウォーターフォールとアジャイル開発の話だな。
アプリケーションをどう変化させていけば、レビューが荒れずに、かつエンジニアに過剰に負荷をかけずに済むかというところを重視した文献、議論、話が知りたい。