3.1 基本方針
自社ビジネスでOSSの活用に対して、どのような考え方で対応するのかを記述します。「積極的に活用するのか?」、もしくは「できるだけ使わないようにするのか?」ということを記述することになります。その後のすべての判断の基準となるため、この基本方針での表現が曖昧ではいけません。
3.2 活用形態
活用するとしても「どのような形で活用するのか?」ということについて記述します。OSSを活用する形としては、以下のようなものが考えられます。
(1)システムを構築する部品として活用する ・OSSを修正して活用 ・OSSを修正せずに活用
(2)開発環境として活用する ・自社製品の内部にOSSを含めた形で活用 ・自社製品と外部のOSSを連携させた形で活用
また、どのような立場で活用するか、つまり「エンドユーザー」「システムインテグレーター」「ソフトウェアベンダー」のどれにあたるのかも問題になります。これをまとめると下表のようになります。
表1 活用方法による分類
|
立場 |
システム構築 |
開発環境 |
自社製品開発 |
||
修正あり |
修正なし |
内部 |
外部 |
|||
1 |
エンドユーザー |
△(*1) |
○ |
○ |
- |
- |
2 |
ソフトウェアベンダー |
- |
- |
○ |
△(*2) |
△(*3) |
3 |
システムインテグレーター |
△(*1) |
○ |
- |
- |
- |
開発環境として使用する場合は特に問題はありませんが、システム構築と自社製品開発で活用する場合は、検討しなければいけない部分が出てきます。
システム構築の部品として活用する場合にOSSを修正して使用する場合(*1)と自社製品開発で内部にOSSを含めた形で活用する場合(*2)は、使用するOSSのライセンスに注意が必要です。また、自社製品開発で外部のOSSを連携させて活用する場合(*3)は、該当するOSSのライセンスはもとより、連携方法にも注意が必要です。
3.3 ライセンスについて
ライセンスに対する考え方を記述します。
前回、ご紹介したように一番有名なライセンスはGPLです。まだまだ、OSSのライセンスはすべてGPLだと思っている人が多いようですが、米Blackduck社の調査によると現在はMIT Licenseが一番多くなっています。とはいえ、GPLv2とGPLv3を足せば、MIT Licenseよりも多く、全体の30%程度になっているので、実質的にGPLが一番多いと言っても問題ないかもしれません。
よく問題になるのは、このGPLに代表される「コピーレフト型」のライセンスの強い伝播性です。GPLのコードを取り込んだり、連携の方法によっては、関連プログラムのソースコードもGPLになってしまい、ソースコードを公開することになってしまいます。従って、「コピーレフト型」「準コピーレフト型」「非コピーレフト型」のそれぞれのライセンスに対する対応方法を決めておく必要があります。
3.4 対コミュニティについて
コミュニティとどのような関係を築くのかを記述します。
OSSは大きなエコシステムの上で成り立っているので、このエコシステムの中での役割を果たすことが重要だと考えられています。従って、単に活用するだけではなく、何らかの貢献をすることを検討すべきです。これも以前にご紹介しましたが、コードを書くことだけが貢献ではありません。ドキュメントの翻訳や検証結果の公表、さらに構築事例の公開なども貢献に含まれますので、自社で最も適した貢献できる方法を見つけて、貢献することが重要です。
また、自社開発ソフトをOSS化するケースも最近多くみられるようになってきていますので、そのような場合の対応も決めておく必要があります。ソースコードの中に社外に公開していはいけない情報が入っていないことを確認する必要もありますし、どのような形で、どのようなライセンスを適用するかといったことも決めておくと良いと思います。ソースコードの中に意図しないOSSのコードが含まれていることをチェックするツールもありますので、このようなツールを活用を検討することも必要です。
4.まとめ
このように、OSSを賢く活用するためには、OSS活用のためのガイドラインは必要で、またそれを日々運用していくための仕掛けづくりも重要です。ぜひ、この記事を参考にして頂いて、ガイドラインを作って、より賢くOSSを活用してください。
※本文中記載の会社名、商品名、ロゴは各社の商標、または登録商標です。