オープンソース・プロジェクトの作り方

大規模なオンライン・フリーソフトウェア・リポジトリを眺めると、始まった途端に放棄されたプロジェクトやアルファ版のまま何年も店晒しになっているプロジェクトが目に付く。私自身4つのオープンソース・プロジェクトを立ち上げたが、完成できたのは半分だけで、残りは活動停止後、消滅した。

その経験を踏まえ、プロジェクトの進め方について助言したい。プロジェクトを広報する方法、人々に参加を促す方法、継続的に活動する方法についての実践的な助言だ。この助言はリリース1.0に達しているだろうと思う(それが、すべてのプロジェクトの第1目標のはずだよね)。

計画を立てる
プロジェクトを進める中で、最もつまらないのは計画段階だろう。しかし、それは、最も重要な段階なのである。プロジェクトの目的と名称、使用するプログラミング言語、そしてプロジェクトの運用に必要な開発者の人数を明らかにしなければならない。場合によっては、そのプロジェクトを立てた理由を説明する必要もあるだろう。

最初の版をリリースする
当初計画ができたら、コードとデザインを公開する。人々の関心を引き、来るべきリリースへの期待感を抱かせるためには、第一印象が重要である。私は、配布するファイルのアーカイブを階層構造にすることを強く勧めたい。たとえば、次のようにするのだ。まず、基点となるルートディレクトリを用意する。名前は、プロジェクト名とバージョン番号を組み合わせる。このディレクトリの下に、いくつかサブディレクトリを作る。すなわち、ソースコードファイルを置くディレクトリsrc、読みやすく編集された文書ファイルを置くディレクトリdoc、バイナリファイルを置くディレクトリbinだ。プロジェクトのルートディレクトリには、READMEファイルや変更履歴などのテキストファイル、そしてmakefileやconfigureスクリプトを置く。

ファイルをアーカイブする
プロジェクト名がfoo、最初のバージョン番号が0.02だとしよう。この場合、ファイルはfoo-0.02ディレクトリにアーカイブすることになる。これにはtarユーティリティを用いる。コマンドは、tar -cvf foo-0.02.tar Foo-0.02/ && gzip -9 foo-0.02.tarだ。このコマンドはファイルをアーカイブし、次いでそのアーカイブをGNU Zipで圧縮する。ここで、アーカイブからファイルを試しに取り出し、予定通りに処理されていることを確認しよう。コマンドは、tar -zxvf foo-0.02.tar.gzだ。このコマンドを実行すると、次のような結果が表示されるはずである。

foo-0.02/
foo-0.02/src/
foo-0.02/docs/
foo-0.02/bin/

プロジェクトをオンラインで公開する
コードを公開する方法は2つある。FreshmeatまたはSourceForgeの一方または両方で公開するか、あるいは、専用のサイトで公開するのである。どちらにしても、配布する前に、すべてのファイルが含まれており正しく動作することを確認しておかねばならない。

コラボレーション – ビジョンを共有する
ファイルを公開して自分のアイディアを多くの人に見て貰らったら、プロジェクトが3日で消滅してしまわないように方策を考えなければならない。オープンソース・プロジェクトへの参加に関心を持っている開発者を募るのである。自分のビジョンを語り、計画を明らかにする。そうすることによって、プロジェクトの基本的性格、必要とされているもの、求められる開発技術を知らせるのである。計画を見て貰い意見を貰う。そうして、必要なら、みんなの意見を取り入れて計画を変更しよう。CVSなどのバージョン管理システムを利用してリポジトリを作る。そうすれば、誰もがファイルを取り込んで変更することができる。かくして、プロジェクトは進捗し着実な成長が可能になるのだ。プロジェクトの参加者には、希望する得意分野を尋ねよう。それがわかれば、仕事を効果的に開発者に配分することができ、参加意欲も高くなるだろう。

広報 – ユーザーの関心を維持する
プロジェクトの姿が常に人々の間にあるように、進捗についてあるいはコードやデザインの変更について公表する。つまり、ユーザーの関心を引いたり、好奇心を刺激したり、プロジェクト・ファイルの次期リリースへの期待を呼び起こすのである。また、フォーラムを作ってもよい。人々が開発者と議論したり、変更や改善点を指摘したり、良い点でも悪い点でもコメントできるようにするのである。

常に計画的に進める
さて、どこまで達成できただろうか。最初のリリース以来の成果はどれ程だろうか。前回のリリースは、いつのことだっただろうか。次期リリースを長く待たせてはいけない。さもないと、プロジェクトがうまく動いていないと思われるだろう。かと言って、リリースがあまりに頻繁でも、いらいらさせてしまうだけだ。必要なのはバランスである。そして、計画。どのような場合にも、しっかりした計画が必要だ。詰まるところ、すべては計画から始まるのである。

ヒント集

最後に、記憶に留めておくべきヒントをいくつか挙げて終わりとしよう。
  • 全体計画が重要だ。それが良くできていれば、プロジェクトが広く関心を呼びユーザーに受け入れられる可能性は高くなる。

  • 配布するファイルは念を入れて準備する。公式にリリースする前に、毎回、更新したコードを若干の人々に試用して貰うのが理想だ。

  • 一般に、READMEファイルには、本名またはオンライン・ニックネームの他に、電子メールを記載しておくとよい。そうすれば、ユーザーは、コメントや問題点、あるいはフィードバックやバグを報告することができる。

  • プロジェクトを推進するためのWebサイトを開設する。そして、週次のユーザー調査やフォーラムなどを適宜実施する。

  • そして、Linuxディストリビューションに搭載される可能性を忘れないように。プロジェクトが成功し広く受け入れられれば、いずれかのLinuxディストリビューションに搭載されるかもしれない。Linux.orgによれば、現在、300を超えるLinuxディストリビューションがあるという。したがって、その中の少なくとも一つが搭載してくれる可能性は十分あるのだ。

  • Tony Granbergは、21歳の学生。スウェーデン人。Linuxソフトウェアの使用経験は6年あり、2001年からはLinuxのみを使っている。

    原文