本書で取り上げているネタの大半は、 5年にわたる Subversionプロジェクト(http://subversion.tigris.org/)での経験です。 Subversion はオープンソースのバージョン管理システムで、何もないところから作り上げたものです。 オープンソースコミュニティーにおけるバージョン管理システムの デファクトスタンダードの座を、CVSから奪い取ることを目標としています。 もともとこのプロジェクトは、私の雇用主であるCollabNet (http://www.collab.net/)が2000年の初めに開始したものでした [3]。 CollabNet は当初からこのプロジェクトを真に協力的なものとし、 さまざまな人たちが参加しやすくするための方法を理解していました。 そのおかげで、開始当初から多くのボランティア開発者の協力を得られるようになり、 現在では50人以上の開発者がプロジェクトに関わるようになっています。その中にCollabNetの社員はほんの数人しかいません。
Subversion は、いろんな意味でオープンソースプロジェクトの典型例といえます。 本書では、当初想定していたよりもかなり多くの材料をSubversionプロジェクトから得ました。 そうなった原因のひとつは、そのほうが好都合だったからです。 何か特定の問題についての例が必要になったとき、 私の頭の中に最初に浮かんでくるのはいつもSubversionプロジェクトだったのです。 それだけではありません。いいかげんな情報を書かないためにという一面もあります。 これまでに私はいろいろなフリーソフトウェアプロジェクトに参加してきました。 深く立ち入ったものもあればほんのちょっと関わっただけというものもあります。 また同じような立場の友人や知人とも数多く話してきました。 ただ、いざその内容を出版するとなると、その話の内容が正しいかどうかを改めて確かめる必要があります。 公開されているメーリングリストのアーカイブの内容を読んだだけで他のプロジェクトに起こったいろいろな出来事について語るわけにはいきません。 誰か他の人が Subversion について同じようなことをしたとしましょう。 私がそれを読めば、おそらく半分くらいは間違った内容が書かれていると気づくことでしょう。 そこで、私が直接関わったことのないプロジェクトに関することを例に出すときには、 まずその当事者に直接話を聴き、そのとき何が起こっていたのかを知るようにしました。
私は過去5年間Subversionに関わってきましたが、 それ以前も含めるとかれこれ 12 年ほどフリーソフトウェアに関わっています。 Subversion 以外に本書に影響を与えたプロジェクトには、次のようなものがあります。
フリーソフトウェア財団(FSF)の「GNU Emacs」テキストエディタプロジェクト。 私はちょっとしたパッケージをいくつか保守しています。
CVS(Concurrent Versions System)。 1994–1995頃、Jim Blandyとともに熱心に取り組んでいました。 しかし、それ以降はたまにしか参加できていません。
Apacheソフトウェア財団(Apache Software Foundation) のさまざまなオープンソースプロジェクト、 特にAPR(Apache Portable Runtime)やApache HTTP Server。
OpenOffice.org、SleepycatのBerkeley DB、MySQLデータベース。 これらのプロジェクトに対しては 親密に関わっているわけではないのですが、よく観察しています。 そして時にはプロジェクトの参加者と会話をすることもあります。
GNU Debugger (GDB) (同上)
Debian プロジェクト (同上)
もちろんこれがすべてというわけではありません。 他のオープンソースプログラマーと同様、 単に大まかな流れを把握するという目的でいろんなプロジェクトの動きをゆるやかに追いかけたりもしています。 それらのプロジェクトの名前をすべてここで挙げることはできませんが、必要に応じて本文中で名前を出すようにします。
[3] 日本語版注:Karl Fogel氏のウェブサイト(http://www.red-bean.com/kfogel/)などによると、 2009年7月現在は CollabNet ではなく、Ubuntuプロジェクトのコマーシャルスポンサーでもある Canonical社 (http://canonical.com/)で、ソフトウェアプロジェクトのホスティングサービス Launchpad (http://launchpad.net/)などに関係しているようです。本書の本文では、 氏とCollabNetの雇用関係に基づいた記述がいくつかありますが、すべて執筆時点のものとしてお読みください。