連載
» 2009年09月16日 08時00分 公開

オープンソースソフトウェアの育て方:合意と投票で構築されるOSS開発の社会構造 (4/4)

[Karl Fogel, ]
前のページへ 1|2|3|4       

すべてを記録しておく

 プロジェクトの規約や合意の数が多くなり過ぎるために、ある時点でどこかに記録しておく必要が生じます。記録を正統なものにするためには、メーリングリストでの議論や既に有効になっている合意をベースにしていることを明示するようにしましょう。実際に記録するときは、メーリングリストのアーカイブにある関連したスレッドを参照するようにし、不明な点があるときにはもう一度尋ねるようにしましょう。記録した文書には人々を驚かせるようなことを書くべきではありません。なぜなら、その文書は合意の根拠ではなく、合意の中身を説明したものにすぎないからです。もちろん、成功すればそれを権威あるものとして人々が引用しはじめるかもしれませんが、それはその文書がプロジェクトの総意を正確に反映しているだけに過ぎません。

 これが章2.さあ始めましょう開発者向けのガイドライン項で述べた文書になります。当然、プロジェクトが若いうちは、長く続いているプロジェクトの歴史のような、ためになる話抜きでガイドラインを書かねばならないでしょう。しかしプロジェクトが成長するにつれ、明らかになってきた事柄を反映させた形で、文書を改訂することができます。

 文書を包括的なものにするのはやめましょう。どんな文書でも、プロジェクトに参加するのに必要なことをすべて網羅することはできません。プロジェクトで生まれる多くの規約は、ずっと暗黙のもので、決して明示的に言及されることがないにもかかわらず、メンバー全員がかたくなに守っているものなのです。単に当り前過ぎるので言及されないものもありますし、重要だけどあいまいなのでただ避けているだけのものもあります。例えば、"メーリングリストでは礼儀正しくし、他人を尊重しましょう。また、フレームウォーを始めてはいけません。"とか、"きれいで、読みやすくバグのないコードを書きましょう。"といったことをガイドラインに書いても意味がありません。もちろん、これらは望ましいことではありますが、これらが望ましくないと思われる世界は存在しないので、言及する価値がないのです。メーリングリスト上で失礼な発言をしたり、バグだらけのコードを書いている人がいたとして、彼らはプロジェクトのガイドラインにやめろと書いてあるからといってやめはしないでしょう。こういう状況は包括的なガイドラインであらかじめ対処するものではなく、問題が起きたときに対処すべきものなのです。一方で、あるフォーマットですべてのAPIを文書化するルールのようなよいコードの書き方に関するガイドラインがプロジェクトにある場合は、できる限り完全なものを書いておくべきです。

 ガイドラインに盛りこむ内容を決めるよい方法は、初心者がよく尋ねる質問や、経験豊富な開発者がよくこぼす不満に関する文書を基にすることです。これは必ずしもFAQを基にすべきというわけではありません――ガイドラインは、FAQより分かりやすい物語風の構造が必要になるでしょうが、FAQと同様、将来起こりうる問題よりも、実際に起こった問題に取り組みという現実的な原則に従うべきです。

 プロジェクトに優しい独裁者や、特別な才能に恵まれた幹部(社長とか議長とか、そういったものです)がいる場合は、引継ぎの手続きを明文化する良い機会になります。何らかの理由で優しい独裁者がプロジェクトから突然去る場合は、特定の人を後継者として単に指名すればいいだけの場合もあります。一般的には、優しい独裁者がいる場合、彼だけが後継者を指名することができます。投票で選ばれた幹部がいる場合は、彼らを選ぶのに候補者を選び、投票する手続きを踏む手続きがはじめに行われたことを文書に記録すべきです。そうした手続きがもともとなかった場合は、文書に手続きを明文化する前にメーリングリスト上で手続きに関する合意を得るようにします。階層的な支配構造に神経質な態度を取る人もいるので、こうした話題を扱うときは気を使う必要があります。

 こうしたルールは見直すことができる、というのを明示しておくことが恐らく一番重要です。たとえ文書に記録された規約がプロジェクトを妨害しはじめたとしても、その文書が開発者グループの意図を強く反映したもので、プロジェクトへの不満や障害の源ではない、ということを周知しておきましょう。規約が自分の邪魔をするたびに見直しを求める人がいる場合は、その人と議論する必要は必ずしもありません――無視しておくことが最良の選択となることもあります。規約に不満があることで一致している人がほかにいるなら、彼らが同調するでしょう。それは何かを見直すべきことをあらわしています。誰も同調しなければ、見直しを求める人に返答する人はいなくなるでしょう。そして規約は以前の状態のまま残るのです。

 開発者向けガイドラインの良い例が2つあります。1つはこちらにある、Subversionのhacking.htmlファイル。もう1つは、こちらこちらにある、Apache Software Foundationの統治に関する文書です。Apache Software Foundationは実際はソフトウェアプロジェクトの集合体ですが、非営利組織として合法的に組織されています。よって彼らの文書には、開発する際の規約よりも、プロジェクトを統治する際の手続きについて多く記述されています。ですが、まだ読む価値は大いにあります。なぜなら、それはたくさんのオープンソースプロジェクトの経験を集積した文書だからです。

著者:Fogel Karl

翻訳者:高木 正弘

翻訳者:Takaoka Yoshinari(a.k.a mumumu)

製作著作 © 2005, 2006, 2007, 2008, 2009 Karl Fogel, 高木正弘, Yoshinari Takaoka(a.k.a mumumu), under a CreativeCommons Attribution-ShareAlike (表示・継承) license (3.0, 2.1-jp)


よいフリーソフトウェアを作ることは本質的に価値のある目標です。その方法を模索している読者の皆さんが、本連載「オープンソースソフトウェアの育て方」で何かのヒントを得てくだされば幸いです。


前のページへ 1|2|3|4       

content on this article is licensed under a Creative Commons License.

注目のテーマ