フリー/オープン・ソース・プロジェクト管理の要諦
3つのプロジェクトはいずれも、大いなる可能性の場インターネットに何らかの意味で繋がりがあり、相乗的に発展してきた。いずれのプロジェクトもインターネットの成長に貢献し、逆にインターネットは各プロジェクトの発展を支える場となった。インターネットが拡張されたマシン・ネットワークであるとすれば、Perlはそれらをまとめる紐である。Apache Serverはゼロから始めて、統計によれば、今やインターネットの主流である。そして、Linuxは、おそらく史上最も愛されているカーネルであり、その人気は留まるところを知らない。
Larry WallとPerl
shとawkとsedとCを混ぜ合わせたら何ができるだろうか。そう、Perl(Practical Extraction and Report Language)である。Larry Wallがバージョン1.0をリリースしたのは1987年。その後の発展については、CPASTに詳しい。今では、Perlは、LAMPの第4文字が表す3つのPの筆頭となった。一言で言えば、それは驚くべき成功の物語である。
Wallにプロジェクトを「手放す」ことについて尋ねると、電話の向こうから極めて現実的な答えが帰ってきた。「それしか方法がなかったんです。大きくなりすぎて、一人の手には負えなくなってしまった」。手放したのは、Perl 5の頃である。「他に取り得る道があったとすれば、Perlを小さなテキスト処理エンジンに留めておくことだけでした。モジュールとかそういったものなしにね」
それでは、今、Wallは何をしているのだろうか。「Perl 6を公表していますから、コミュニティには、特に、Perl再設計の支援をしてくれるよう頼みました。コミュニティからは、『言語の設計者でいてほしい』と言われています。それで、今はアーキテクチャや言語自体について考える日々です」
つまり、Wallは退いたが、依然、重要な役割を果たしている。この2点は明白だ。従って、これは宮廷革命ではない。コミュニティの希望と完全に調和した役割の変化である。
Brian BehlendorfとApache
Apache Serverの場合は少し事情が異なる。そもそも1人だけのプロジェクトとして始まったのではない。あるプロジェクトの発起人たちが継続を放棄しようとしたとき、そのコードにパッチを当てなければならないユーザーたちが受け継いだのである。
Brian Behlendorfも、その一人だった。BehlendorfはApache Serverプロジェクトの現場で指揮を執っていたが、今では、以前ほどではなくなっているのではないかと電子メールで尋ねた。
それは、見方によるね。初めの頃だって、僕は、このプロジェクトの指揮をしていたわけではない。多分、1回か2回、リリース管理をしたぐらいだろう。そもそも、僕は、現場の指揮には関心がないんだ。そう、たとえば、TorvaldsがLinuxカーネルの現場を指揮しているようにはね。Apacheでは、ずっとコンセンサスを重視してきた。どのパッチを出すかとか、どんな機能を加えるかとか、リリースのコードがいつできるかとか、そういったことは話し合って決めるんだ。Apache 2.0を巡る議論が進むにつれ、httpdプロジェクトの仕事は減り、別の仕事が増えていった。最近まで僕が担当していて自分で動かしていた仕事は、apache.orgのシステム管理だ。Webサイト、メーリングリスト、CVSツリー、バグ・データベースやら何やらを管理する仕事だ。CollabNetでマシンのお守りをして、週に10〜20時間ぐらいかけて、事ができるだけ順調に進むように頑張った。ハードウェアの問題はなかったけど、苦労したのは、必要なソフトウェアを順調に動かすことだったね。リファクタリングしたり作り直したりする余裕など全くなかったから。
実際、このときの経験で、こうしたツールを協調的に動かすのは底なし沼のようなものだってことを思い知った。それが理由の一つとなって、1999年にCollabNetを始めたんだ。今は、そうしたコラボレーション・インフラストラクチャを企業向けに有償で提供している。Apacheの環境はいじりすぎていて、今も人手による管理だ。非常に有能な技術者が献身的に管理してくれている。僕もときどき手伝いにいくんだ。
1998年に、Apache Software Foundationが創設されたとき、僕は理事長になった。3年間務めて、次の人にバトンを渡した。今も理事をしているけど、他のプロジェクトの活動はしていない(もちろん、愛用者だし、ファンでもある。ときどきは、バグも報告するけどね)。
それで良かったとお考えですか。
どうかな。この10年間は非常に面白かったというのは事実だけど、Apache Webサーバーの現場にあまり関わらなかったことが、それにプラスだったかマイナスだったかを決めるのは難しいね(笑)。僕は、裏方でシステム管理スタッフとして働くのと、理事としてASFを代表して広報や講演をしたり理事会に出たりしているのが多分いいのだろうと思う。サーバー・チームで仕事ができないのは確かに寂しい。設計を議論したり、もう少しだけパフォーマンスを出せないか頭を絞ったり。そうしたことは、確かに楽しい。いろいろなことを学べるからね。学校や本や、多分、会社でも学べないことを。
プロジェクトの方はどうですか。順調でしょうか。
僕が離れてから? 順調だと言えば、僕がいたときは駄目だったということになるじゃないか(笑)どんなソフトウェア・プロジェクトでも、人の出入りはある。それが現実さ。Torvaldsが14年間も同じコードベースに携わっているのは、賞賛に値する。しかし、開発者なら、新たな挑戦と経験がしたいと思うもの。だから、新しい開発者を受け入れ、参加して良かったと感じ、ここで仕事ができると思ってもらうことが重要だ。僕は、Apacheがそういう場であってほしいと思っている。新しい開発者が参加しやすく、今いる開発者は、プロジェクトを止めることなく、ここぞと思ったときに出て行けるような場にしたいんだ。
Linus TorvaldsとLinuxカーネル
最後に登場してもらうのは、Behlendorfが名を出したTorvaldsだ。Torvaldsも、他の2人と同様に重要な人物である。5年前、Torvaldsはカーネル開発を指揮していたが、今でも、多少は指揮していると感じているのだろうか。この大きな問題をTorvaldsにぶつけてみた。Torvaldsは、いつものように、控えめに答えてくれた。
はい、そう思いますし、非常にうまくいっています。私がとても嬉しいのは、仕事の委譲が概してとても上手に行われてきたということです。これは、一般に考えられているよりも、難しいことです。オープンソース・プロジェクトが抱える根本的な問題の一つでしょうね。人(企業)は、自分でシステムを動かしたいと望むものです。それは、目標や方法論についての自分なりの「考え方」を持っているからです。そして、それがプロジェクトを窒息させるのです。他の人たちは自分のやるべき事を自分で決めていると感じられなくなりますから。
私には自分の仕事があり、拘りもあります。しかし、プロジェクトはかなりうまく動いていると思います。
私は、まだ、Linuxに関わっていたいと思います。しかし、自分とは異なるビジョンや発想を持つ人々の邪魔になりたくはありません。
プロジェクトの中には、誰かが実権を握ってしまって放さず、ほとんど失敗に終わったものや、分裂したものがあります。プロジェクトの運営には非常に微妙なバランス感覚が必要だと思います。深く関与する必要はありますが、自分の判断が最善だと考えてはならない。誰かに決定を任せると決めたら、信頼しなければなりません。
しかし、それは、プロジェクトがここまでうまく進んできた本質的な理由ではありません。肝心なのは、他の人たちが、自分が担当している部分について自分が決定していると感じているかどうかという点です。
誰もが満足していると言うつもりはありません(それは、私の目標ですらありません)。ですが、かなり健全なバランスを維持してきたとは考えています。私だけではなく、中枢にいて他人の意見を聞くべき者も、監督しつつも、強権的な指揮をしようとはしていません。
結論
Torvaldsが退くことはないだろう。印象では、これからもずっと関わっていくと思われる。だが、活動の範囲は狭くなっていくだろう。そして、結論。フリー/オープン・ソースプロジェクトを立ち上げ大成功に導きたいのなら、時機をあやまたずに手放す計画を立てよ。さもなければ、プロジェクトがそれを作った者以上に大きくなることはないのだ。
原文