オープンソース開発者との好ましい“契約”オープンソースソフトウェアの育て方(2/3 ページ)

» 2009年09月18日 09時00分 公開
[Karl Fogel, ]

 プロジェクトの開発者を雇うとすると、疑問が2つ出てきます。契約を公にしない方がいいのでしょうか。また、仮に公にするとして、特定の開発者以外の人と契約しないことで、コミュニティーに緊張関係を作ってしまうことを気にかけるべきなのでしょうか。

 可能であれば、契約することを公にするのがベストです。仮にできなければ、契約した開発者の振る舞いがコミュニティーのメンバーからは不自然に見えるかもしれません――恐らく、彼はどういうわけかいままでまったく興味を示さなかった機能に、突然高い優先度を設定するようになるでしょう。彼がその機能を欲しがる理由を尋ねられたとき、契約をしている事実を話せないのだとしたら、どうやってその理由をもっともらしく説明したらいいのでしょう?

 また、あなたがかかわっている作業がさも重要なことのように振る舞ってはいけません。開発者を雇っているからというだけの理由で、自分の投稿を重く扱うべきという厚かましい態度をメーリングリスト上で取る人がいました。こうした態度は、開発者を雇う人が――契約することで生み出されるコードではなく、契約している事実を重視していることを示していますが、ほかの開発者からすれば、コードだけが重要なのです。

 どんなときでも、誰が誰にお金を払っているのかではなく、技術的な問題に注意を払うべきです。契約にまつわる問題をうまくコミュニティーで処理している、Subversionの開発者を例に挙げましょう。彼が自分のコード変更についてIRCで議論しているとき、彼は小声で(IRCのprivmsgというプライベートな会話を使って)今書いている機能や修正プログラムを書くのに、お金をもらっていることをほかのコミッターに伝えます。彼はその変更をずっと望んでいたし、その作業をしてお金をもらえるのが幸せであるかのように一貫して振る舞います。彼は契約相手の身元を明かすかもしれませんし、明かさないかもしれませんが、いずれにせよ契約の詳細に立ち入ったりはしません。契約の話は、どうやって作業を成し遂げるかについての技術的な議論をするときに、補足的にするだけです。

 この例は、契約を公にした方がいいもう1つの理由を示しています。契約にお金を出している組織が複数あった場合、一方が何をしようとしているのかが分かれば、リソースを共同で出資できるからです。上の場合、プロジェクト最大の出資者(CollabNet)はこうした出来高払いの契約にかかわっていませんが、誰かほかの組織があるバグ修正にお金を出していれば、CollabNetはリソースをほかのバグに振り向けることができ、プロジェクト全体の効率が上がるのです。

 ほかの開発者は、プロジェクトで契約している人がいることを嫌がるでしょうか? 一般的にはNOです。特に、お金をもらっている人がコミュニティー内で地位を確立し、尊敬されているメンバーであるときは特にそうです。契約がすべてのコミッターに平等に行き渡ると思っている人なんて誰もいません。コミュニティーのメンバーは、スポンサーと長期に渡って関係を築くことが重要だと分かっていますが、不安なのは、一度あなたが信頼できる人を見つけてしまったら、公平さを保つためにほかの人に仕事を振りたがらないことでしょう。

 これについては次のように考えましょう:はじめに誰かを雇うとき、必ず誰かを選ばなければならないのだから、反対はでないでしょう――仮に誰も雇わなくてもあなたの落ち度はありません。後に、2度目になって同じ人を雇ったとしても、それは常識から外れていません。あなたは彼を知っていて、直近の仕事は成功しているのです。どうしてリスクを取る必要があるでしょうか? こうした理由から、仕事を皆に平等に振るのではなくて、コミュニティー内に突出した人が1人や2人出てきたっておかしくありません。

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

注目のテーマ