未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

オープンソースにすると企業は損をするんじゃないですかという質問

セキュリティ&プログラミングキャンプ2009のわたしの講義で、「オープンソースにすると企業は損をするんじゃないですか」という本質をとらえた質問がでて、講師陣が、いきなりいろいろ議論を始めた。

企業の行動原理は、利益の追求だから、利益を生まないアクティビティは原則として行わない。オープンソースも例外ではない。

利益=売上-経費 なので売上が増えるか、経費が減るかという観点から投資判断をする。当たり前ですな。

例えばマイクロソフトが自社の製品をオープンソースにすると、売上が伸びるか、あるいは経費が減るかというと、どちらもそうとは言えないので、マイクロソフトが自社製品をオープンソース化することは考えられない。先日マイクロソフトHyper-V向けのLinuxドライバをGPLで公開したことが話題になったが、Linuxドライバを公開する事が自社のHyper-Vの魅力を増し、売上向上を期待して公開したということであろう。ライセンスはLinuxの場合、GPLにならざるおえない。公開するかしないか、どのようなライセンスを選ぶかは技術的な問題というよりも経営的な判断である。

大手ハードウェアベンダーがLinux開発に貢献するのは、例えば自社のハードウェアの売上を伸ばしたい、あるいは独自OS開発のコスト負担には耐えられないので、OSS(Opensource Software)プロジェクトに参加することで経費を削減したいなどの思惑があるのだろう。

出来合いのOSSプロジェクトに参加することで、ゼロから開発するよりも早く開発できて開発費も削減できる。この意味では損はしない。得である。問題は自分の作ったソースを公開するか、しないか、どのライセンスを選ぶかである。

ゼロからソフトウェアを作る場合、それをプロプライエタリにして公開しないという選択肢は、それはそれでリーズナブルな選択なのでここでは議論しない。

既存のOSSの場合、BSD的な独自拡張部分の公開の義務のないライセンスがいいのか、GPLのような、変更部分も含めて公開義務のあるライセンスがいいのか、どちらを選択するのが理にかなっているかという問題である。

会場の講師から、自社でルータを作ったときにBSDライセンスで、ソースコードの公開をしなかったという事例の発言があった。独自技術にこだわりがあって、それを公開するとノウハウが流出するという懸念から公開をしなかったというお話であった。公開しないことにより、売上が伸びたかというと、別にそれは関係ないし、経費が削減されたかというとそういうこともなかった。むしろ、OSSの元の方がどんどんバージョンアップしていったのだけど、独自拡張の部分は、開発コストの関係で、バージョンアップに追随するのが難しかったということであった。最終的には経営判断なのであるが、メンテナンスコストも含めて考えると、BSD的な独自部分を公開しないという方法は中期的にはコスト高なのではないだろうか。

GPLの場合、独自技術を隠蔽することが難しいという懸念はあるが、自社で開発した部分をコミュニティに公開してメインラインにマージしておけば、メインラインがどんどんバージョンアップして行っても、ほとんどコストゼロで機能拡張に追随できる。これは開発コストを激減する。魅力的な機能がコミュニティによってどんどん開発されるので、その商品の魅力が増すことも期待できる。

一方で独自追加部分が競合他社にも無償で利用される。それを懸念するむきもある。フリーライドされるという懸念である。フリーライドされたからといいって、自社開発コストが増えるかというと、そうではなくて、他社製品が売れて、自社の製品の売上が下がる可能性がある。自由市場経済である以上それはしょうがない。しかし、仮に競合がその機能をさらに拡張したとしたら、その機能も公開しなければならないので、その機能についての開発費は削減できる。プラスマイナスゼロである。最初にその機能を作った組織には影響力やノウハウの蓄積というアドバンテージがあるので若干プラスという感じである。

BSDと比較してGPLは、独自技術を隠蔽しにくいので、技術革新がどんどん蓄積され、無駄な重複開発がなくなり、コミュニティ全体としての生産性が極めて高い。BSDはそれぞれの開発組織が蛸壺にハマりやすく、コミュニティが分断され重複開発が発生する。

ソースコードを公開するのならばGPLという一見奇妙なライセンスは企業にとって理にかなったライセンスなのである。