オープンソース開発者たちは長年、世間の目にさらされながら働いてきた。そして今、彼らの仕事は研究者の注目の的だ。
カリフォルニア大学アーバイン校のソフトウェアリサーチ研究所上級科学研究員であるWalt Scacchiは、オープンソースプロジェクトを研究、分析している。オープンソースモデルを継続的な10年プロジェクトとしてとらえ、オープンソースへの出資者と開発者にとって励みになる答えを引き出そうとしている。
Scacchiとその共同研究者たちは、オープンソースプロジェクトの失敗率が大きいことを発見した。しかし、軌道に乗っているプロジェクト同士を比較すると、オープンソースのアプローチのほうが伝統的アプローチに比べ、優れたソフトウェアをより早く低コストで生み出すことができると分かった。さらに、オープンソースプロジェクトにボランティアとして参加することが仕事獲得の効果的な手段となる可能性があることも突き止めた。
多くの場合、Scacchiの研究は技術的であると同時に社会学的でもある。彼らは、コードやプロジェクト設計のような無味乾燥な対象と並行して、コミュニティ形成や文化団体のような現象も調査対象としているからだ。
またオープンソースに関する研究は、それ以上の意味を持っている。Scacchiらはカリフォルニア大学、サンタクララ大学、イリノイ大学において3つのプロジェクトを行っており、研究データは複数の組織が絡む巨大プロジェクト向けの新しい開発ツールを設計する際に使われる予定だ。
Scacchiらは現在、4つの異なる研究プロジェクトに取り組んでいる。助成金なしに数年間研究を行った後、2000年秋には初めて米国国立科学財団の助成金を受けた。このプロジェクトは現在の資金で2006年まで切り抜けられる予定だ。Scacchiの試算では、助成金は最低10年間分の研究費用になるという。Scacchiはアーバインにあるオフィスで、自身の研究についてCNET News.comに語った。
---どんなことを解明しようとしているのですか。
基本的には、フリー/オープンソースソフトウェアの開発が、実際にどのように進められているのかを理解しようとしています。その過程は、工学の授業で教えられているガイドラインと同じなのか、それとも何か違うことをしているのか。もし違うのなら、それはソフトウェア工学が不足しているのか。つまり、もっといい方法を知らないから、そうなってしまっているだけなのか。
我々はフリー/オープンソースのプロジェクト、複数のコミュニティにおける複数のプロジェクトに関して研究しています。MosaicやApacheなど、ウェブやウェブの基盤を支えるソフトウェアのように一般的な分野だけでなく、コンピュータゲーム業界や、天文物理学、ソフトウェア設計におけるオープンソースの活用についても研究しています。複数のプロジェクトを違う領域にまたがって研究することで、ソフトウェア工学の原則の中で推奨されていたものと違う何かが見えます。
---そうして見つけた違いを教えてください。一般的に知られていないものをお願いします。
例えばソフトウェア工学では、システム開発のための要求仕様を聞き出し、把握することが必要という見方が一般的です。そのシステムが稼働した後に、仕様と比較して何を適用したのかを検討できるようにするためのものです。
オープンソースのプロジェクトでは、ソフトウェアの要求仕様として明文化したオンライン文書を見つけることはできません。そこで、課題を文書化していないのであれば、どんな課題を解決しようとしているのか、という疑問が出てきます。要求仕様がない場合、その代わりにあるのは、さまざまなソフトウェアインフォーマリズムと我々が呼ぶものです。
---「インフォーマリズム」とはどういう意味ですか。
この言葉は、ソフトウェア工学で推奨される方法と比べやすくするために選んだ言葉です。ソフトウェア工学では、顧客に提供できる正式なシステムの仕様や設計を作成することを推奨しています。インフォーマリズムとは、ウェブ上にある情報や、スレッド化されたEメールによる議論、ソースコードの中にある一連のコメントなどです。何かを完遂するための一連の手引きやFAQである可能性もあります。ひとつひとつが、そのシステムに対する要求が何になるかを示す断片的情報なのです。
---その断片的情報が、こんなに無計画な方法でまとめられていても、これらを本当に要求事項と考えられるのでしょうか。
イエスであり、ノーでもありますね。確かに情報は分散していますが、誰かがそのプロジェクトに貢献するためには、その要求事項のありかや、それぞれの関連性、まとめかたを理解する必要があります。このコミュニティを機能させる1つの方法は、各々の参加者が、最も適切だと感じるインフォーマリズムを使って、そのシステムがどうあるべきかを話し合うというやり方です。
---要求事項が明らかになったら、オープンソースではどのようにシステム設計が進むのでしょうか。
我々は発見した習慣を「継続的設計」という名前で体系化し始めています。継続的設計とは、1つの基本設計が必ずしも存在しないということです。これは要求事項のときとほぼ同じです。代わりに、その設計に対するその日の理解というものが存在します。それは昨日時点、もしくは明日時点の理解とは違うかもしれません。決まった目標を伴う制限された活動ではありません。むしろ継続的な活動で、システム設計はインフォーマリズムの中に存在するのです。重要なのは、その発展性です。
---設計インフォーマリズムと継続的設計の関係は。
インフォーマリズムは、人間が作ったものであり、媒体です。継続的設計とは、慣行やプロセスの特徴を指すものです。つまり、インフォーマリズムが指すものを誰が作り利用するかを示しています。
---マネジメントについてはどうですか。
我々が「仮想プロジェクト管理」と呼んでいる自己管理プロセスがあります。参加者たちは、ある特定の方法で、特定のツールを使い、特定のアーキテクチャで機能を作ろうとするに従って、次の選択方法や、システムの発展方向などに自分たちで縛りをかけます。もし私がそのプロジェクトを見て「私にできることがある」と言えば、私はその分野である程度の発言力を持つ仮想の所有者、または指名されたリーダーとなります。組織という視点から見ると、これはヒエラルキー組織というよりは、能力主義です。実績や経験を基に権威ある地位に立つのです。
---でも、ヒエラルキーは存在しますね。プロジェクトにはオーナーがいます。
能力主義という考え方は、ヒエラルキーと無関係ではありません。しかし他よりも高さを抑え、横への広がりを拡大する傾向があります。年配者のグループもいれば、ビジョンを提供する個人がいる。層のようなものが形成されつつあり、しかもその層は透明性のあるものです。
---研究対象は草の根的なオープンソースプロジェクトだけですか。それとも、もっと最近の企業プロジェクトも見ていますか。
はい、今時の企業出資型のオープンソースプロジェクトも研究しています。米SunのNetBeansなどがその例です。米IBMのEclipseや米Hewlett-Packerdが出資しているGelato Federationもそうです。企業が出資する大規模なオープンソースプロジェクトが増えています。それはつまり、企業が社員をフルタイムまたはパートタイムでこのプロジェクトに配属しているということです。企業の意図は、ボランティアコミュニティの仕事をまとめること、または推進してくれるボランティアがいない部分に取り組むことかもしれません。
オープンソースプロジェクトは、求人の場としての役割も果たしています。そこではボランティアを、将来雇用する可能性のある人材として見ています。あるプロジェクトに関与した企業は、そのコミュニティの中の優秀な人材、それも才能があり十分な経験を積んだ人材を見つけることができます。従来の求人方法では見出すことができないような人材です。地理的には不便な地域にいるかもしれないが、彼らには本当に能力があり経験値も高い。それならば、ボランティアとしての貢献を継続してくれるよう繋ぎ止めたり、報酬のある仕事に就かせたりするような新しい雇用関係がないかを考えてみようというのです。そして、こういった人材は平均以上の報酬を手にする傾向にあります。一般的に高い貢献をする人材はプロジェクトの中心付近におり、参画レベルが高い人々です。つまり彼らの仕事の成果は他人にも評価できる場に公開されているのです。企業にとってそれは非常に重要な資源なのです。
---では、オープンソースで開発することの効果についてはどう見ていますか。
参画という観点から発見したことを1つ紹介しましょう。オープンソースソフトウェア開発で中心的な貢献者として注目される人物のうち60%は、2件から10件の他のプロジェクトにも貢献しています。ある特定の分野における専門技術で一度信望を得ると、それを他のプロジェクトに利用したり、逆に、人からその専門技術を求められたりします。その人物は特定のことを実行する方法を知っているからです。プロジェクトを合体させて1つにさせるような、ダイナミックな社会的メカニズムが生まれ始めています。したがって、そのシステムは過去のソフトウェアの例を基に予測した数値よりもずっと早く発展、進化するのです。ソフトウェア工学では、プロジェクトは逆二乗の法則に従って発展すると考えられています。つまり初期の発展速度は早いが、やがて遅くなり、プロジェクトの移行に伴って安定成長に入るというものです。
しかし成功しているオープンソースプロジェクトでは、ホッケーのスティックのような曲線グラフを描きます。長期間にわたりゆっくりと成長し、限界量に達すると成長曲線が一気に上向きとなり、正比例よりも大きな成長率を示すのです。
---オープンソースで見られる急成長を促すものは一体何ですか。何か例がありますか。
UI(ユーザーインターフェース)技術の大家がいるとしましょう。その人は別のプロジェクトに参加し、これまでのコードや専門知識を移植したり再利用したりできます。その2つのプロジェクトが協力関係を結べば、第3のプロジェクトと統合することもできます。これが、大きな成長が見られる理由の説明になります。これはソフトウェアの再利用と言えるもので、ソフトウェア工学で提唱されている考えとは異なるものです。ソフトウェア工学では、あらゆるものがライブラリにあり、誰でも必要なものを手に入れるためにそこにアクセスできると考えられています。しかしオープンソースでは、相手の欲しがっているものをお互いのコンテキストに合わせてつくります。そこでは新しいコンテキストが生まれるのです。さらに、この社会的ネットワークを構築するにあたり、ソフトウェアの専門知識とソースコードが持ち寄られます。そのため、中心企業やプロジェクトマネージャーによる調整や管理なしに、多数の人材が比較的短期間で大規模なシステムをつくれるようになるのです。
---他に研究していることは何ですか。
1つは、フリー/オープンソースの公的ライセンス、つまりGPLのようなものの役割についてです。法的な問題に取り組む予定はありませんが、ライセンスの意義は、信条や価値観、オープンソースソフトウェアの開発方法に関する基準を、強化し制度化することです。公的ライセンスは参加表明を意味し、ソフトウェアの構築方法や、ソフトウェアを構築する理由を述べるものでもあります。ここにおいて、オープンソースライセンスはコミュニティの正式な権利としての役割を果たすだけではなく、幅広い社会運動への参加を宣言する手段としても働くのです。オープンソースは世界的な社会運動になりつつあり、ソフトウェア開発の枠を超えた成長が可能です。
---オープンソースの原理がソフトウェア開発を超えて採用されているのはどのような場面ですか。
アーキテクチャの分野でもオープンソースコミュニティというものがあります。先進国で、自らの設計を開発途上国や新興国に提供するグループです。これらの国は、設計者を雇用するコストが極端に高い国々です。オープンソースの教育というのもあります。
---MITのように。
それは大学レベルの話ですが、世界中の小中学校や高校でもあります。米国や欧州の人々が、自分たちの国や、教科書購入価格が極端に高い発展途上国の人向けに数学や科学の教材を提供しています。美術の世界では、共有、または他人の作品の上に作品をつくるような探求の動きが進んでいます。人々は、個人の芸術家という伝統的思考から離脱し始め、他人の作品の上に作品をつくる方法もあると言い出しています。
政府でも、欧州や第三世界の多くの国々は、低コストを理由にオープンソースシステムの採用を検討しています。しかしオープンソースを導入するのと同時に、開放的なイデオロギーも取り込まれ、開放的で民主的な国家または政府であることの意味を復活させる可能性があります。そしてプロセスがオープンとなり、市民は政府がどのように機能しているか、そしてIT企業が自分の利益になるようにシステムを政府に販売しているのか、それとも国民のためになっているのかをよりよく理解できるようになるのです。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
住環境に求められる「安心、安全、快適」
を可視化するための“ものさし”とは?
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」