2011年8月21日

自分の生産性

最近のWebサービス系の開発をやっている人たちはものすごくサービスリリースのテンポが速いなあ、と思う。
震災のときも、地震発生から4時間後にはsinsai.infoがあがっていたそうだ。調べてみると、それはUshahidiというオープンソースのプロダクトをベースにして、震災支援向けにカスタマイズして公開したものらしいのだけど。それを別にしても翌日〜数日のレベルでいろいろなサービスが公開されたようだ。ツイッターでハッシュタグを使っていろいろ情報共有もされていたから、多分そうやって新たなサービスが公開されてもちゃんとそういうサービスがあることを共有できるんだろう。公開から実際の利用者が増えていくまでのスピードはすごく早かったのかなあ、と思う。

SI業界で10年過ごしてきた(しかもその大半は開発に携わっていた)けれども、正直同じようなことができるかといわれるとできる気がしない。なぜだろう?
まぁ、そもそもそんな短期間でものを作ってしまおうという試みすらしたことがない。個人的にはSIのご多分に漏れず主戦場はJavaなんだけど、Javaで何かしらのサービスを公開しようと思うとどうなるんだろう?
Javaってエンタープライズ領域では使われることは多いのだけど、サービスホスティングになると条件が悪いことが多かった。しかしそれも特にここ1、2年で状況は変わりつつあるような気がする。いまならJavaでもサービス公開の障壁は下がっていると思う。
実際に公開するにしても、開発環境から運用環境へのデプロイや何やはサポートしてくれるツールはいくらでもあるから、一度運用のための環境を構築してしまえば、漸進的な開発と公開も難しくない様に思える。そうすると、問題としては以下の二つにあると思う。
・構築、運用のトラブルシューティング
・開発のスピード
前者はSIで培われてきたものが多数あるはずなんだけど、正直自信がない。基本的には開発・設計が主で、リリース後は関わらないことが多かった(あっても、バグに対する調査・改修になる)からだ。パフォーマンスチューニングとかやれといわれてもボトルネックを調べるためのノウハウすらおぼつかない気がする。
後者については、結局のところJava vs LLみたいな部分の所のような気がするけれど、数日レベルで使い物になるWebアプリケーションを実装できるだろうか。JavaEE6とか、それに準ずる最近のフレームワークが手になじんでいれば相応の開発スピードを出せることが見込めるけれど、正直開発の各レイヤにおいてそれらを生かしきる自信がない。JavaEEの環境や各フレームワークの実現する「生産性の高さ」が、自分の中では点のようになっていて、それらの点と点とをうまく結びつけて、最高の生産性で開発を行える自信がない。それがあれば数日レベルのリリースが可能になるのだろうか?まぁできていない自分にはそれもわからない。
結局JavaEEなりフレームワークなりにしても、自分の必要な範囲でしか使ってこなかったし、顧客によって選びかえたりしているので、自分のプラットフォームになっていないのだろうな。

これからは何か一つ自分のプラットフォームにできるようにがんばってみよう。