オープンソースソフトウェアで誰もが得をする方法
オープンソース開発者の反応の早さには素晴らしいものがある。このすごさをご理解いただくには、ユーザ側の視点を考えてもらうとよいだろう。たとえば私があるとき、自分のCDコレクションの索引を作りたいと考えたとする。私はそれを友人のJackに話し、彼も同じことをしようと思い立つ。私はLinuxを使っているので、CDcollectをダウンロードして作業に取りかかる。一方、JackはLinuxユーザではないので、彼のコンピュータ上で動作する、同じような機能の商用ソフトウェアを19.95ドルで購入する。次の日、私とJackは昼食を共にし、曲をトラック長で検索できる機能があれば便利なのにという話になるが、残念ながらどちらのアプリケーションにもその機能は用意されていない。そこで私は家に帰り、CDcollectプロジェクトの開発者に提案のメールを出してみる。すると翌日には、数週間後にリリースされる最新バージョンの機能拡張リストにその機能を追加しておくよという返事が届く。一方Jackは、ソフトウェアを購入した会社のテクニカルサポートに、今後のアップグレードにこの機能を追加してほしいというリクエストのメールを出す。しかし、テクニカルサポートが役に立つのはインストールのトラブルシューティングぐらいである。
もちろん、これはかなり単純化した話だ。当然ながら、開発者がすべての機能リクエストを実現してくれるわけではないが、選択肢の1つになったということはわかるし、少なくとも、要望を聞いてもらったことはわかる。強い関心と情熱を持った開発者がソフトウェアの制作にあたっているということを知るだけでも、私にとってはオープンソースアプリケーションを支援する十分な理由になる。私が進んで寄付したいと思うのは、参加メンバーが皆好きでやっているようなプロジェクトであり、ただオフィスの割り当てられた席に座って週に40時間、何も考えずにコードを量産するような人々のプロジェクトではない。さらにすごいのは、私が選んだオープンソースアプリケーションのほとんどは、他のユーザからのテクニカルサポートを組み込んでいるということだ。そのため、アップグレードや技術的な問題のただなかで立ち往生しても、そのまま放っておかれる心配はない。
使用するアプリケーションの所有権をいつでも自分のものにできるという点は、オープンソースソフトウェアの素晴らしい長所だ。私は開発者ではないが、バグをつぶしたり、ドキュメントを書いたり、グラフィックを作成したりするという方法で、私の話を聞いてくれるコミュニティに恩返しをすることができる。さまざまな能力を持った人が大勢プロジェクトに関わるようになれば、開発者は彼らの一番得意なこと(つまり機能の追加や拡張)に注力し、もう少し地味な、ただし重要度ではひけをとらない一部の作業については、それほど技術的スキルの高くない人々が担当するという分担も可能になる。
それでは、アプリケーションを開発する人々には一体どんな得があるのだろうか。一体誰がどんな理由で、ソフトウェアの作成に情熱(と余暇)を――しかも通常は無償で――つぎ込み、ユーザからリクエストがあっただけで、より良い機能を実現しようとするのだろうか。私が思うに、それは彼らが自分達の貢献をユーザとの継続的な「ギブアンドテイク」の関係の一部と考えているからだろう。おそらく開発者は、プロジェクトのバグや問題点を見つけてくれる第三者の存在に感謝しており、そのお返しとして、アプリケーションをユーザのために喜んで手直ししているのだ。開発者の反応が早ければ早いほど、より多くの積極的なユーザがプロジェクトを利用するようになり、その結果、プロジェクトに対する貢献者が増え、より良いプロジェクトになっていく。これは誰もが得をするシステムで、いわば技術的な「生命の環」である。
顔のないプログラマによるアプリケーションを次々生み出す巨大企業にふりまわされるばかりだったソフトウェアユーザにとっては、自分の機能リクエストが実現するチャンスがあるというだけでも、非常にわくわくする話だ。今度、こういう機能がないからオープンソースソフトウェアは使いたくないと話す人を見かけたら、機能の追加を頼んでみればいいんだよと教えてあげよう!