ソフトウェアのオープンソース化–伴うリスクと責任を考える
今回は「ソフトウェアのオープンソース化–伴うリスクと責任を考える」についてご紹介します。
関連ワード (ソフトウェア開発の新たなトレンド、特集・解説等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
オープンソースを説明する言葉として、「自由」や「無料」を意味する英単語「free」を使って「言論の自由のようなfreeであって、無料のビールのfreeではない」と区別する表現がある。これにはいくつか言い換えがあり、筆者は長年、「自由な子犬のfree」と言っている。また、「自由な非番の夜のfree」という言い回しを考え出した。これは、自分のプロジェクトを使用する大企業のために無償で適時に修正を行うという困難な立場に置かれた個人の保守管理者の負担を説明する言葉だ。先頃の「Log4j」の脆弱性は、そうした問題について、われわれが業界として「Heartbleed」からほとんど何も学んでいないことを示している。
しかし、最近、新しいマットレスを購入した筆者は、「無料のマットレスのfree」という表現に考えをめぐらせるようになった。これは、オープンソースに対する非常に痛烈な隠喩だと思う。筆者はいつも、コードで使用するプロジェクト、ライブラリー、依存関係を入念に吟味するという観点からオープンソースについて考えてきた。道ばたに放置されたマットレスのように、出所が不明なオープンソースプロジェクトでも、ニーズに対応できることはあるが、バグ(虫)が潜んでいて、家に持ち帰ってインフラストラクチャーに組み込むまで気付けないこともある。
だが、マットレスの所有者(すなわちオープンソースプロジェクトの作成者)による責任ある廃棄という点についても考えなければならない。商用ソフトウェアベンダーが古いアプリケーションやOSの提供を終了するとき、代わりにオープンソース化してほしいという要望が出ることがある。それは、「オープンソース排出」と呼べるようなプロジェクトとは大きく異なる。オープンソース排出とは、自社で必要なので開発するが、ビジネス価値の中核となるものではないためプロプライエタリにしておく必要がないソフトウェアのことだ。「オープンソース化された」価値あるプロジェクトは多数存在する。元のコーディングチームは、オープンソース化によって、プロジェクトを引き続き使用して開発する他の人々に貢献してもらうという利点を得られる。
もう使わなくなって廃止されるプロジェクトの場合、コードに関して、特許や商標、他のコード所有者へのライセンスといった問題がなくても、アバンダンウェアとしてのオープンソース化は大きな成功を望めないかもしれない。もはや維持する価値はないと元のベンダーが判断したことには、おそらく理由があるはずだ。コードベースへの投資に前向きなコミュニティーが存在しない場合、無料にするだけでは、実際のところ役に立たない可能性がある。
「Open Live Writer」はこれに対する珍しい反例だ。最後の商用バージョンがリリースされたのは2012年のことだが、2015年になっても広く使用されていたため、Microsoft内のファンのグループがコードベースを更新して、オープンソース化の手はずを整える価値があった。とはいえ、「Google Blogger」などのサービスが変更されて投稿が難しくなったにもかかわらず、Open Live Writerの最近の開発は比較的少ない。
不法投棄をすると、罰金を科せられる。古いマットレスを処分するには、おそらく自治体に料金を払わなければならないはずだ。レガシーアプリケーションを処分すれば技術の負債を減らせるだろうが、時間とリソースを費やして他のシステムから切り離す必要がある(また、個人情報や恥ずかしい悪態をコードコメントから削除しなければならない)。マットレスであれ、コードベースであれ、廃棄するか無償で譲渡するかの決断は責任を持って下す必要がある。
それは誰かの役に立つだろうか。十分に安全に使用できるだろうか。回収して設置(インストール)する価値があるほど長持ちするだろうか。筆者の古いマットレスは、長年使用してきたにもかかわらず、今でもかなり快適に体を支えてくれる。形状記憶マットレストッパーを数日おきに引っ張って元の位置に戻すのにうんざりしただけだ。とはいえ、片面にコーヒーの染みと小さな裂け目がある。売れないとしたら、無料で譲るのがいいのだろうか。数年間取り組んできたが、もうそれほど力を入れていないプロジェクトは、オープンソース化できるだけの良好な状態にあるだろうか。そのプロジェクトにこれ以上関与するつもりがない場合や、テクノロジーが大幅に変わったために、もはや問題に対処する最良の方法ではなくなった場合はどうか。
おそらく、筆者の古いマットレスに第二幕はないだろう。少なくともオープンソースでは、十分に便利に使い始められるように手をかけてやれば、誰かがプロジェクトをフォークして引き継いでくれる可能性はある。ただし、無料だからというだけで高い価値があるわけではない。