オープンソースソフトウェア(OSS)の力はバザールモデルとして知られるコミュニティによる開発(Community Based Development)だと思う。
OSSの特徴としてフリーなライセンス(利用、変更、再配布の自由など)があげられる事が多いが、それはあくまで必要条件であって、十分条件ではない。ライセンスをフリーにしたからと言って、コミュニティが自然発生するとは限らない。商業ソフトウェアベンダは自社製品をプラットフォームとするために、あの手この手を使ってコミュニティを形成しようとするが、それには相当なコストと時間がかかる。
大雑把にソフトウェアを分類してみる。
最初のカテゴリは、プログラム。これは実行可能なソフトウェアで、趣味で作ったり学校の課題で作ったりする小規模なものとする。規模も小規模でせいぜい大きくても数千〜数万行程度のものである。おもちゃのプログラムに毛がはえた程度のものだ。もちろんサポートもなんにもないし、商業的な価値を見いだすことも難しい。
その次は、ソフトウェア製品。これは商用、非商用にかかわらず、ある程度のドキュメントと、利用者がついて、継続的に修正、改良されているソフトウェアである。製品というと商用のイメージがつきまとうが、他にいい名前を思いつかなかったので、とりあえずソフトウェア製品とここでは言うことにする。ブルックスはプログラミングシステム製品と呼んだが、わたしにはちょっとピンとこなかったので、ここではソフトウェア製品と呼ばせてもらう。非商用のソフトウェア製品というのが、ブルックスの時代(60〜70年代)には一般的ではなかったが、オープンソースの時代になって、星の数ほどでてきた。
最後は、ソフトウェアプラットフォーム(プラットフォームと略すことにする)。多くの利用者がつき、その上で重要なアプリケーションが稼働するようになる。あるいは、そのソフトウェアに依存するようなソフトウェアが多数生まれてくる。Linuxはまさにプラットフォームである。コンパイラのgccもプラットフォームと呼んでもさしつかえないと思う。商用製品で言えばデータベース管理システムのOracleもプラットフォームと呼べるだろう。そしてプラットフォームにはコミュニティの形成、存在が必要不可欠なのである。
上記の分類はあくまでざっくりとしたイメージで各カテゴリに明確な線引きがあるわけではない事をあらかじめお断わりしておく。
成功したOSSを見てみると、一人のプログラマの趣味からはじまったプログラムが、ある日誰かに発見され、利用が口コミで広がり、ドキュメントなどが整備されていって、それとともに、利用者、開発者コミュニティなどが自然発生的に生じ、ソフトウェア製品と言ってもいいほどになり、その後、そのソフトウェアを前提としたプログラムないしソフトウェア製品が次々と出てきて、商用サポートやトレーニングを提供する企業や、解説書の出版などがあいつぎ、プラットフォームの地位を確立するという発展をとげている。
Rubyというプログラミング言語を例にとると、93年にまつもとゆきひろ(Matzと呼ばれている)が自分の趣味で楽しいから自分用プログラムを作ったのが発端である。fjというインターネットのNewsシステムで発表され徐々にひろまっていったのが90年代後半である。最初のRubyの参考書が出版されたのが、99年で、英語の書籍は2000年である。2001年には初のRuby Conferenceが米国で開催され、2004年にはRuby on Railsという開発フレームワークが発表され、現在大ブレーク中という事である。
Rubyの開発は、当初はまつもとが一人で行なっていたが、徐々にメーリングリスト等でのバグの指摘、パッチの投稿など、まつもと以外の貢献の比率が増えてきて、より先進的な機能を実装するプログラマや、Sun MicrosystemsやMicrosoftに代表する大企業の開発者の参入など、開発者の層もひろがってきている。
Rubyはまつもとゆきひろが開発したソフトウェアであるが、徐々に彼以外の開発に関する影響力が増えているというのも事実である。
Rubyはプラットフォームと呼んでもさしつかえないだろう。プラットフォームには健全な開発者および利用者のコミュニティが存在する。
先日のRubyKaigi 2007のキーノートスピーチ(感動的な素晴しいスピーチであった)でDave Thomasは、コミュニティが、その発展によってどのような影響を受けるか、そしてどのように対処するべきかということをユーモアを交じえて熱く語っていた。
http://jp.rubyist.net/RubyKaigi2007/Log0610-S5.html
Rubyは成長している。ティーンエイジのように気難しいが、親はその健全な成長を望んでいる。Rubyにはまつもとゆきひろ(Matz)とコミュニティというよい両親がいる。コミュニティは素晴しい。最近ではRubyはデートもしている。Rubyに迫りくる危機というのもある。爆発的な成長が新しい人を沢山呼ぶ。Rubyのお作法を理解していない人達もいっぱい来る。新しい人々を歓迎する準備をしよう。彼らから学ぼう。
愛に満ちたスピーチであった。成功したオープンソースソフトウェアはコミュニティに依存している。開発はコミュニティに依存している。新規参入者も排除されない懐の深さがある。分断の危機もあるが、それを乗り越えたコミュニティは強い。Rubyコミュニティはまさにそのような岐路にいる。
これは奇跡である。まつもとゆきひろという人間のパーソナリティがそれを可能にした。
Rubyはコミュニティによって開発されているというと、まつもとは相当違和感を持つかもしれないが、もはや彼の力の及ばないところで車輪が動きはじめているというのも事実なのである。彼が最も影響力のある人物である事は間違いないのだが、ティーンエイジのようにRubyは一人歩きをはじめて、その流れは、もはやまつもとですらコントロールできないところまで来ているのである。
コミュニティをコントロールする事は誰にもできない。しかし強い影響力を持つことができる。影響力はコミュニティに対する深い愛と貢献によって得られる。現時点で、最も影響力の大きいのは彼であるが、彼の右腕と呼べる何人かのハッカーが育ってきているのも事実ではある。
わたしはRubyの成長のプロセスを見て、かつてLinuxが発展していった姿に重ねあわせて見た。まつもとはLinusになる必要はないしなるべきではないとは思うが、linuxがたどってきた道はRubyのコミュニティにとっても大変参考になると思う。
RubyKaigi 2007には400人強の参加者があった。世界中から集まった。今後はSIベンダーやハードウェアベンダーのネクタイを締めたおじさんたちもいっぱい参加するようになるだろう。
Rubyのお作法、OSSのお作法を知らない傍若無人なやからも大挙することであろう。しかし、たとえそうであってもlinuxが上手に立ち回ったように、Rubyも上手にいなすと思う。
Community Based Developmentの奇跡である。ビジネスパーソンはこの価値の創造メカニズム、ソフトウェア開発方法論について理解を深めた方がいいと思う。わたしのミッションは、彼らにCommunity Based Developmentの革新性、有効性、持続可能性についてを伝えて、この波に参加することが彼らのビジネス(経済的な利益)にも繋がりうるということを理解させることである。
コミュニティは新しい人達の参入を歓迎することによって、さらに学び発展する。
愛だよ、愛。
6年前、アメリカでfirst Ruby Conferenceで私が受けたStanding Ovationを今年は日本でDave Thomasに返すことができてとても良かった、という話。
こういう話を聞くにつれ、Daveのキーノートは本当に感動的だったんだなあ、と思う。ただ単に「面白い話」では、人の心は動かない。彼が真摯に愛について語ったからに違いない。
Matzにっき
日曜のDave Thomasの講演の時に総立ちになったとき、思い起こしたのはもちろんあの日のことでした。Dave Thomasへのstanding ovationは、6年の歳月を経て、海外のRubyistからもらった賛辞に対しての、日本のRubyistからのお返しを象徴するものだと思います。2001年は40〜50人くらいだったように記憶していますが、2007年は約400人もの参加者がいました。ほぼ10倍です。ここまで大きくなったのは、6年もの間、まつもとさんと内外のRubyistたちが行ってきた努力や貢献の賜物以外の何物でもないでしょう。海外への普及の最重要人物であるDave Thomas氏に対し、残念ながら(とてもとても残念ながら)同席できなかったまつもとさんに代わり、盛大な拍手を返すことができたのは、Ruby communityにとって非常に意味のあることだったと思います。
6年後のStanding ovation/思っているよりもずっとずっと人生は短い。
最近のコメント