オープンソースリサーチ
http://martinfowler.com/bliki/OpenSourceResearch.html
我々にとってオープンソース界が興味深いのは、何がオープンソース界を魅力的なリサーチコミュニティにしているのかという点です。 オープンソースプロジェクトといっても様々な形態がありますが、多くのプロジェクトでは、アイデアを採用し、そのアイデアに沿ってプログラミングを行います。それがどこへ向かうのか、そして、それが価値があるかどうかを確認するためです。 あなたが設計とプログラミングを分離して考えているならば、これは奇妙な考えに聞こえるかもしれません。 しかし、設計とプログラミングが密接に結びついていることを受け入れれば、多くのことが納得できるようになります。
この効果は、エンタープライズJavaの世界では顕著です。ここでは、多くの興味深い開発がオープンソース開発者たちの手によって生み出されています (IBatis、Hibernate、JUnit、CruiseControl、Spring、Sitemesh、Webwork、Tapestry…) 。
オープンソースリサーチはThoughtWorksに相応しいと思っています。 多くの社員がオープンソースプロジェクトに熱心に関わっているからです。 これは「オープンな知的財産」という我々の哲学にも合っています。 我々には、学会用の論文を書くことに興味のある人間はいません——何かを作りたいと思う人間ならいます。 オープンソース界というのは、彼らにとって何かを発表する場なのです。 発表したものが人気が出れば、多くの人の助けを借りて製品にすることもできます。 こういったリサーチや開発の多くは、ThoughtWorks以外の人間の手によって行われますが、それでも我々は別に構いません。 我々はアイデアを探求し、公開していくことに関心があるのです——我々の本業は、クライアントに日々の成果を販売することです。
私は、このようなリサーチを行う時間をもっとみんなに与えたいと思っています。 現在、こういった作業は空き時間に行われています。みんなこういった作業が好きだからです。 しかし、いつかは、仕事中にこういったR&D活動を行えるようにしたいと思います。
オープンソース界は、バージョン1を作らずに消えてしまうからダメだと批判するひともいます。 しかし、これがR&D活動だと考えれば、多くの(ほとんどの)プロジェクトが製品を作らないことにも納得がいくと思います。 R&Dとは、アイデアを作り出し、それを活用することです。 R&Dの成功とは、アイデアがどれだけ製品に反映されているかではありません。 むしろ、どれだけ多くの製品を作り出したか、そして、それらがどれだけ優れているのかで判断されるべきです。 3つのプロジェクトを始めて、どれも平凡な製品になった人よりも、 1ダースのプロジェクトを始めて、1つがキラーアプリケーションになった人のほうが優れているのです。