特集
» 2012年11月26日 18時00分 UPDATE

オープンソースコミッタへの道:「使う」から「公開する」へ (1/2)

この連載では、オープンソースソフトウェア(OSS)を使うだけでなく、自ら公開することのメリットを紹介し、1人でも多くのエンジニアの方がOSS界へデビューしていただけるよう支援します。レッツ、OSS!

[山本裕介,フリーランスエンジニア]

はじめに――オープンソースソフトウェアは「使う」だけ?

 今では考えにくいことですが、かつてオープンソースソフトウェア(以下OSS)は、「無料で公開されているソフトウェアにはどんなウイルスが紛れ込んでいるか分からない」「障害発生時に責任を担保できない」といった考えから、利用を敬遠する企業が少なくありませんでした。

 しかし今では毎日のように、大規模なOSS利用事例や新しいOSS製品がニュースをにぎわせています。OSSは情報系/基幹系、B2B/B2Cを問わず、システムに欠かせないものとなりました。これは、OSSの進化やバグフィックスの早さ、コードが多くの目にさらされておりセキュアであること、コスト削減効果の高さ、サポートサービスを提供する企業の存在など、OSSのメリットについての正しい認識が広がったからに他なりません。

 一昔前ならば、OSSのメリットやリスクをいち早く把握し、利用できること自体が「先進的」でした。OSSを積極利用していること自体を「売り」にしている企業もありました。さすがに今はOSSを利用することが当たり前の時代ですから、OSSの積極活用をうたっても、特に注目されることはないでしょう。

 このようにOSSの利用は当たり前になってきましたが、開発したコードをオープンソース化することとなると、残念ながら話は別です。まだメリットとリスクの評価が十分に広まっているとはいえず、OSSとしての公開に踏み切ることをためらう保守的な企業・個人が多いのが実情です。つまり、多くの現場でOSSの活用が急速に広まる一方で、OSSを公開している企業や個人の数はそれほど増えていないのです。

 本連載の目的は、1人でも多くの読者がOSSを開発、公開して、OSSを提供する側のメリットを実感してもらうことにあります。

 OSSの提供者(≒コミッタ)と聞くと、「先進的で、技術的な造詣が深い」「英語がペラペラ」、そして「縁遠い」といったイメージがあるかもしれません。確かに、著名なOSS提供者には、国内外を問わずそういった傾向があるかもしれません。

 けれど実際のところ、OSS提供者になることに高いハードルがあるわけではありません。OSSは、利用者側だけでなく、提供する側にも多くのメリットをもたらします。だからこそ、提供する人たちがいるのです。

図1 OSS利用のリスク/メリットについての認識の変化 図1 OSS利用のリスク/メリットについての認識の変化

オープンソース化のメリット

 では、ソフトウェアをオープンソース化することには、どのようなメリットがあるのでしょう?

 まずよく言われることとして、OSSにして多数のプロジェクトで使ってもらうことにより、バグの発見や修正が早まるという点があります。この結果、ソフトウェアがより堅牢に、機能豊富に進化する「可能性がある」というわけです。

 実際のところこのメリットを享受できるのは、よほどうまく成功しているOSSに限られます。しかし「きっと公開しても誰にも使ってもらえない、バグ報告もパッチももらえないだろう」と、OSS提供をためらうことはありません。

 副次的なメリットですが、OSS提供をすると、企業や個人のブランド向上にもつながります。一昔前、OSSを積極的に利用していることが企業や個人の先進性を象徴していたように、今はOSSを提供していることが先進的だからです。いずれコードを公開するのが当たり前という時代が来るかもしれませんが、当面は、OSS提供側という立ち位置にいることの「先行者利益」を享受できるでしょう。

 また、ソフトウェアに国境はありません。コメントやドキュメントを日本語で書いて日本向けに公開することもできますが、世界を相手に公開すれば、自ずと英語でコミュニケーションする機会が増え、英語力の向上にもつながります。

 さあ、会社の、そして自分の戦略として、積極的にOSS化を進めましょう!

図2 自社コードをOSS化することについてのリスク/メリット認識の変化 図2 自社コードをOSS化することについてのリスク/メリット認識の変化

 さらに、大げさな言い方になりますが、OSS化すればコードという財産を人類共有のものにできます。

 ソフトウェアはコピーやダウンロードをすれば使うことができ、しかもオリジナルが目減りすることがない、いわば「在庫」のない財産です。コードをローカルマシン内、プロジェクト内、または会社内にとどめる限り、そのコードが貢献できる範囲は自分1人、プロジェクト内、または会社内にとどまります。

 しかしオープンソース化することで、コードが利用される範囲は一気に世界に広がります。公開するだけならば、実質無料で行えます。ソフトウェアエンジニアとして「自分が書いたコードが活躍する」のを喜ばない人はいないのではないでしょうか?

コード無償公開をためらうワケ

 このようなメリットを理解しながら、OSS化に踏み切れない大きな理由として、「コストをかけて“開発”したものを無償で提供して、いったい何の得になるんだ?」という声をよく聞きます。“開発”の代わりに“製造”という言葉を使うことも多いでしょう。ここには、ソフトウェア産業を製造業の延長でとらえている節が見えます。

 しかし設計、製造し、物流を確保して物を売る「工業製品」と「ソフトウェア」は大きく異なります。

 工業製品はリバースエンジニアリングが難しく、製品を解析しても同等のものを作ることは大変困難です。製品を調べれば寸法や部品は分かりますが、部品の組成や組み立て方法、大量生産するための知見などは得られません。よって通常、製品の設計図や製造法は企業の最高機密として守られています。また特許や商標登録により、製造法や内部の仕組み、デザイン(意匠)をコピーから守る手法も一般的です。

 一方でソフトウェアというものは、比較的リバースエンジニアリングが容易です。たとえリバースエンジニアリングを行わなくても、さほど試行錯誤せずに同等、またはそれ以上のものを生み出すことすら可能です。著作権や特許権などのソフトウェアを法律で守る仕組みもありますが、それらの仕組みを迂回するのは工業製品よりも容易です。

 さて、有償でクローズドソースの製品と無償でも利用できるOSS、同等の機能を持つとするならば、顧客はどちらを選ぶでしょうか? 20世紀ならば前者(クローズドソース)を選んだでしょう。しかし現在、多くの場合は後者(OSS)を選択するのではないでしょうか。

 ソフトウェアのソースコードをOSS化せずに顧客を囲い込んで利益を得るというモデルは、すでに一部で破綻し始めているといえます。在庫という概念がなく、いくら利用されても目減りしないソフトウェアのビジネス的な価値は、「ソフトウェアのコード自体を持っていること」から「そのソフトウェアを知り尽くして取り扱えること」、または「メンテナンスできる知見を持っていること」にシフトしています。独自フレームワークやプロジェクト内、自社内だけのコード共有という手法で顧客を囲い込む戦略から、今後はコードを公開しながら別の部分で付加価値を加える「縛りつけない戦略」が重要になってくることでしょう。

OSS化に際しての注意点

 このように「ソフトウェアのコード自体を持っていること」のビジネス的な価値は減少しつつありますが、だからといってむやみにコードを公開していいというわけではありません。

 まず気を付けなければいけないのは、コード自体がさらされてしまうことではなく、機密情報の漏えいです。ソースコードのリポジトリにはしばしば、データベース接続情報や各種ID/パスワード、顧客情報、個人情報などの機密情報、またはそのヒントとなる情報が格納されています。コードを公開する際は、ビジネス上リスクとなり得るこれらの情報が漏えいしないよう十分に監査、監視する体制作りが必要となります。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。