アプリケーションのリリース

Googleのサービスには多いのですが、久しぶりにのサイト見て、以前見たときと比べて結構変わってるなーと思いました。ということで、今日はアプリケーションのリリースについてちょっと考えてみました。


アプリケーションの形態に応じて、2つに分類しています。

ASP型アプリケーション

冒頭であげた、Googleのサービスが代表格。このタイプなんですが、ユーザから見るといつの間にか挙動変わってるのはある意味コワイ。アプリのアップデートのタイミングをアプリユーザがコントロールできないのは、やっぱり問題になるときがあります。

ただ、十分なメリットも当然あるわけでして。アプリの実行環境をアプリ提供元が制御できるので、バージョン違いによる不具合などはコントロールしやすいという点もあげられます。ユーザ数が多いアプリにとって、このメリットは見過ごせないほど大きいものとなることもあるでしょう。

クライアントアプリケーション

こちらは、アップデートのタイミングをコントロールできるので、安心感はあります。アップデートしたくなければ、しなければいいんですからね。

ただ、(緊急度が高いアップデートなど)アプリ提供元からするとぜひやってもらいたいアップデートについても、確実にやってもらえるかどうかの保証はできません。また、各々のバージョンをある程度メンテナンスし続けていくことも求められるでしょう。

総じて、アップデートの敷居を低くすることが求められます。アップデート通知〜アップデートまでをできるだけ少ない手間で行えるように、けれど、アップデート通知などやりすぎるとウザくなりがちなのも悩ましいところですね。

この辺うまくやっているのはHudson Continuous Integrationかなと感じています。


どっちにしても、アプリケーションを頻繁にリリースしようとすると、それなりに高度な技術力が必要となります。リリースごとにアプリの検証やリリース準備を行う必要があるためです。これらリリースに関する作業を全て手作業でやっていると、とてもじゃないですが頻繁なリリースはできないでしょう。極力、リリース作業を自動化するだけのスキルが求められます。

アプリの競争力を高めるために、今後は今以上にアプリのアップデートを頻繁に行っていかなければならないことも増えることでしょう。その来たるべきときのために、自動化に関するスキル・ノウハウを蓄積していきたいものですね。