自由ソフトウェアを公開するさまざまな方法
公共部門による自由ソフトウェアへの貢献には、さまざまな形態と規模があります。ベルン大学デジタル・サステナビリティ研究センター所長の Matthias Stürmer 博士が、小さな貢献であっても大きな効果をもたらし得る理由を説明します。
バグ修正と機能改善
Section titled “バグ修正と機能改善”行政機関が MariaDB(データベース)や Angular(JavaScript プログラミング・フレームワーク)など既存の自由ソフトウェアを利用している場合、内部のソフトウェアエンジニアが時折、自分たちの変更コードを公開することが重要です。自由ソフトウェアを利用する開発者が、バグを修正したり、小さな機能を追加したりすることがあります。もしそのバグ修正や機能追加のコードを自分たちだけで保持していれば、次のリリースで同じバグが再び現れ、新しい機能も取り込まれないことになります。したがって、こうした小規模な改良を、自由ソフトウェアの主要な開発ブランチであるアップストリームへ還元することは、公的組織自身にとって短期的にも大きな利益があります。パッチが採用されれば、次のリリースにはすでにバグ修正や新機能が含まれるため、開発速度が向上し、同じ作業を繰り返す必要も減ります。
大規模な自由ソフトウェア開発の共同資金調達
Section titled “大規模な自由ソフトウェア開発の共同資金調達”政府機関が協力して、既存の自由ソフトウェア・ソリューションに対する大規模な機能拡張の開発費を共同で負担した事例がいくつもあります。たとえば swisstopo は、他のヨーロッパ諸国の地形・測量機関と共同で、ウェブ地図フレームワーク OpenLayers バージョン3の開発費を支援しました。1資金を共同で集め、新たなプロジェクトを一から立ち上げる代わりに、自由ソフトウェアのサービス事業者へ既存の自由ソフトウェア・アプリケーションの改善を委託することで、コードの品質を高めると同時に、費用を分担して支出を削減することができます。
新しい自由ソフトウェア・プロジェクトの立ち上げ
Section titled “新しい自由ソフトウェア・プロジェクトの立ち上げ”スイス連邦裁判所の OpenJustitia や swisstopo の地理情報ポータルのように、ソフトウェア製品のソースコード全体を公開して新たな自由ソフトウェア・プロジェクトを立ち上げることは、長期的な投資です。ソースコードの公開準備や実際の公開、コミュニティとの調整、さらにはソースコードを管理するための独立した非営利団体の設立などに、一定のリソースが必要となります。しかし、コミュニティの形成に成功すれば、他の行政機関によってソフトウェアがさらに改善され、より完成度の高いソリューションへ成長するとともに、長期的な開発コストを削減することができます。また、大規模な利用者基盤を形成することで、自由ソフトウェア関連サービスを提供する事業者の市場も拡大し、外部ベンダーへの依存を低減できます。
これら3つの事例は、行政が自由ソフトウェアを公開する際に取り得るさまざまな方法を示しています。その結果として生まれるソースコードは、公共財となります。2 公共財は定義上、非排除的であり、非競合的です。したがって、公費で開発されたソフトウェアを公開することには合理性があります。基礎研究への支援や環境保護の推進と同じように、行政機関は社会全体にもたらす利益を最大化するため、公共財へ投資すべきだからです。