OpenSource系Webアプリケーションの難しさ

確か、2007年のことだったと記憶しているのですが。

OpenSourceをテーマにした、とある展示会にて、IBMJava系コーダーとOpenSource系コーダーを招き、パネルディスカッションを行っていました。
司会進行役が、Yahooオークション、mixiWikiなどの、時代の潮流を先駆けするWebサービスを例示し、その多くがOpenSourceで構築されていることを指摘。その理由を、Java系コーダーの一人に求めたところ、彼はこのように答えました。

『基本仕様が自ずと決まってくる業務系システムを普段手がけることの多いJavaコーダーには、自由な発想が求められる、このようなWebアプリケーション(※Yahooオークション、mixiなどのこと)は難しいかもしれませんね』

意を得たとばかり、司会進行役は以下のように発言。
『じゃぁ、Javaコーダーよりも、OpenSourceのコーダーの方が、頭が良いということですね!』
...、瞬間、場が凍りついたことは言うまでもありません...


このエピソードは、極端ではあるものの、OpenSource系Webアプリケーションに対する、ある種の印象を象徴するものではないかと考えます。

Javaよりも安価に構築可能なOpenSourceベースのWebアプリケーションは、業務系システムとホームページの隙間を埋めるツールとして、求められ、そして発展してきた歴史は、確かに存在するものと思います。
それは、あるケースでは、Eコマースサイトだったり、取引先向けの会員制掲示板だったり、在庫情報等を配信するためのEDI補助アプリケーションだったりします。そして、そういうものは既存のソリューションよりも、ワンメイクの受託開発型アプリケーションが多く採用されてきたことも、これも歴史かと思います。

『隙間』の形は、オーナーの望む形それぞれであり、既製品ではマッチしにくい。
それ故に、Javaより構築がしやすいOpenSourceで、ワンメイクのWebアプリケーションを新規構築するほうが、何かとメリットがある。
自ずと、それを開発するOpenSource系コーダーのコーダーは、形にとらわれない自由な発想のもと、アプリケーション開発を行う必要があり、スキルが上がる。

これが、前述のエピソードの発想かと思いますが。
実はここにOpenSource系Webアプリケーションの難しさが存在するものと、私は考えています。


ワンメイクのWebアプリケーションを新規構築する』ということは、同種の目的を持ったアプリケーション開発の実績が可能性が高く、またアプリケーションそのものの熟成度合いも当然少なくなります。
『形にとらわれない自由な発想』というのは、裏返せば仕様検討にあたっての参考となる前例や経験、もしくはロジックが少ないことにつながります。
そして、忘れられがちなことではありますが、JavaよりもOpenSource系の開発費用が安価であるということは、コーダーそのものの人件費が安い(※経験値の低さに所以することが多い)ことに加え、ほとんどの場合、業務系システムの開発工程のような複雑かつ多層的で、数多くの里程チェックの存在する開発プロセスを採用しないことに所以するケースもあるのです。


何が言いたいかと言うと。
OpenSource系コーダーが、すなわちJava系コーダーよりも、十把一からげに優れている、もしくは(少なくとも)柔軟な発想を持つというのは間違った認識だということです。

では、なぜ優秀なOpenSource系Webアプリケーション(Webサービス)が存在するかというと。
それは、Webアプリケーション(Webサービス)のオーナー側の思想が秀逸で、オーナー自身にOpenSourceのメリットを十二分に活かすことが出来る才覚があるからだと私は考えます。
もちろん、そのオーナーの理想を実現できるだけの能力を持ったコーダーの存在は不可欠ではありますが。


つまり、業務系のシステムに比べ、OpenSource系Webアプリケーションは、その自由度の高さゆえに、完成したアプリケーションの完成度の高さに、オーナー側の資質が影響する要素が高いと、私は考えています。


『お客さんの言うとおりに作ったのに...』
私が前職に入社した時、とあるお客さんとの間にトラブルが発生していました。
前職の会社が、そのお客さんに対し、ある種の注文システムを新規構築したのですが、これがお客さんの主張によると、『まったく使えない!』ということで、クレームになりました。
そのトラブルに関し、開発担当のOpenSource系コーダーが発した言葉が、『お客さんの言うとおりに作ったのに...』というわけです。

件のコーダーからすれば、お客さんに、あ〜だこ〜だ言われながら、苦労してお客さんの言うとおりにシステムを作ったのに、それが使えないと主張されること自体、理不尽極まりなく感じているわけです。
私の感覚からすれば、システム開発においては素人であるはずのお客さんの言われるがまま仕様設計する時点で論外と感じてしまうのですが、このような話は、システム開発においてはよくある話ではあります。



業務系であろうが、Webアプリケーションであろうが。
Javaであろうが、OpenSourceであろうが。
システム開発には、システム開発のプロである開発会社とお客さんサイドの、密接な理解と共同作業が不可欠です。
ただ、OpenSource系Webアプリケーションの開発には、お客さん(Webアプリケーションのオーナー)が果たさないといけない役割の比重が高くなってしまうものと考えています。

この点が、OpenSource系Webアプリケーション構築の難しさであり、また優位性ではないでしょうか。



本Blog、SEO関係のことをつらつらと書き連ねており、またもっと書きたい、書かなくてはいけないと思っているテーマがあるのですが。

私自身が積み上げてきた経験の中で、SEOのことって、率直ごくごく一部でしかないんですよね。
SEOって、語るに足ることはたくさんあるのですが、わざわざ私が書かなくても情報も世に氾濫しているし。
恥ずかしい言い方ですけど、SEOというテーマの中に、私の私らしさは希薄だよなぁ、と思いまして...
もうちょっと、私らしいテーマをピックアップしていきたいと思っています。


次は、Webアプリケーション開発において、私自身が失敗した例を挙げたいと思っています。