はじめに
本稿では、国連の専門機関である国際電気通信連合(ITU)が、組織内で利用していたソフトウェアをどのようにしてオープンソースとして公開したのか、その具体的な道のりを解説します。
非営利団体や公的機関はもちろん、自社のソフトウェア資産を外部コミュニティに公開し、さらなる発展を目指したいと考えている多くの開発者や組織にとって、実践的な学びとなる内容です。技術的な準備からライセンスの選定、コミュニティとの連携まで、順を追って見ていきます。
参考記事
- タイトル: From private to public: How a United Nations organization open sourced its tech in four steps
- 発行元: GitHub Blog
- 発行日: 2025年8月13日
- URL: https://github.blog/open-source/social-impact/from-private-to-public-how-a-united-nations-organization-open-sourced-its-tech-in-four-steps/
要点
- 国連の専門機関である国際電気通信連合(ITU)は、GitHubの協力を得て、ソフトウェアをプライベートな開発環境からオープンソースへと移行した。
- この移行は、(1)調査、(2)コードの洗練とドキュメント整備、(3)ライセンス選定、(4)コミュニティとの連携、という4つのステップで進められた。
- オープンソース化は、限られたリソースで開発の影響力を最大化し、グローバルな協力関係を築くための有効な手段である。
- 成功のためには、技術的な準備だけでなく、外部の貢献者を迎え入れるための明確なガイドラインとオープンなマインドセットが不可欠である。
詳細解説
背景:なぜ国連機関がオープンソース化を目指したのか?
今回オープンソース化に取り組んだのは、国際電気通信連合(ITU)の中でも、情報通信技術の発展途上国への導入を支援する電気通信開発局(BDT)です。ITUは、無線周波数の国際的な割り当てや、国際電話の接続ルールなどを定める国連の専門機関であり、私たちの生活に深く関わっています。
多くの国連機関や非営利団体と同様に、BDTも限られた予算と少人数のチームで活動しています。このような制約の中で、開発したソフトウェアのインパクトを最大化するために、オープンソースという選択肢が浮上しました。ソフトウェアをオープンソース化することで、世界中の開発者やパートナーから協力を得て、組織内の能力をはるかに超える規模でプロジェクトを発展させることが可能になります。
ステップ1:徹底した調査
オープンソース化への第一歩は、既存のプロジェクトから学ぶことでした。BDTのチームは、成功しているオープンソースリポジトリと、そうでないリポジトリの両方を調査し、自分たちのプロジェクトに活かすべき点を洗い出しました。
特に重要視されたのが、READMEファイルの質です。訪問者がリポジトリを訪れた際に、そのプロジェクトが何を目指していて、なぜ貢献すべきなのか、そして貢献することでどのようなメリットがあるのかを迅速に理解できることが求められます。
また、他のプロジェクトがどのように課題(Issue)を管理し、コミュニティを運営しているかを参考にしました。貢献者になったつもりで様々なプロジェクトを見て回り、「どこでつまずいたか」「どうすればもっと分かりやすくなるか」を考えることで、自分たちのプロジェクトの改善点を見つけ出しました。
ステップ2:コードの公開準備とドキュメントの整備
次に、調査で得た知見を基に、自分たちのコードと向き合います。このステップでは、何を公開し、何を非公開のままにするかを慎重に判断する必要があります。
- 機密情報のサニタイズ: 組織内部の参照情報や、商用ライセンスや互換性のないライセンスを持つコードを削除・置換します。また、個人情報などが含まれるデータは、構造がわかるようなサンプルデータに置き換える必要があります。
- 貢献者向けドキュメントの整備: 外部の開発者がスムーズに参加できるよう、2つの重要なドキュメントを用意しました。
- Getting Started ガイド: 新しい開発者がゼロから開発環境を構築できるよう、必要なソフトウェアのインストール手順などを具体的に記したガイドです。
- CONTRIBUTING.md ファイル: プロジェクトに貢献する際のルールや期待されること、責任範囲などをまとめたガイドラインです。これにより、貢献の質を保ち、円滑な共同作業を促進します。
- コード品質を保つための自動テスト: 外部からのコードを受け入れる上で、品質を担保する仕組みは不可欠です。継続的インテグレーション(CI)などの仕組みを導入し、テストやコードの静的解析(リンティング)を自動化することが推奨されています。
ステップ3:適切なライセンスの選定
オープンソースプロジェクトとして公開するには、オープンソースライセンスを明記することが法的に不可欠です。ライセンスがなければ、他の人はそのソフトウェアを閲覧することしかできず、使用、改変、再配布といったことができません。
ライセンスの選定には、choosealicense.com というウェブサイトが非常に役立ちます。オープンソースライセンスには、利用者にほとんど義務を課さない緩やかなもの(例:MITライセンス)から、改変した場合もソースコードの公開を義務付けるもの(例:GPLライセンス)まで様々です。
選定にあたっては、プロジェクトが依存している他のライブラリのライセンスとの互換性や、自分たちのソフトウェアが将来どのように利用されるか(例:他のソフトウェアに組み込まれるか)を考慮する必要があります。
最終的に、ITUのチームは BSD 2-Clause “Simplified” License を選択しました。これは、ソースコードとバイナリの再配布時に著作権表示を義務付けるという条件のみを課す、非常に緩やかなライセンスです。
ステップ4:コミュニティとの関わりを始める
準備が整ったら、いよいよコミュニティとのエンゲージメントを開始します。外部の貢献者が最初の一歩を踏み出しやすくするために、「小さな修正」で完了するような簡単な課題を用意することが有効です。
GitHubでは、このような新規貢献者向けの課題に good first issue というラベルを付ける文化があります。これにより、プロジェクトに不慣れな開発者でも、貢献へのハードルが下がり、コードベースに慣れるきっかけを掴むことができます。
まとめ
国連機関であるITUの事例は、プライベートなソフトウェアをオープンソース化する際の、非常に実践的なモデルケースと言えます。この取り組みから学べる重要なポイントは以下の通りです。
- 入念な準備が成功の鍵: 他のプロジェクトから学び、公開するコードを慎重に精査し、貢献者向けのドキュメントを丁寧に作成することが不可欠です。
- ライセンスは法的な要件: プロジェクトの目的と将来の使われ方を考慮して、適切なライセンスを選択することが重要です。
- コミュニティを歓迎する姿勢: good first issue のような仕組みを活用し、新規貢献者が参加しやすい環境を整えることで、プロジェクトは成長していきます。
ソフトウェアをオープンソース化する道のりは、単にソースコードを公開するだけではありません。技術的な準備、法的な整理、そして外部のコミュニティを迎え入れるオープンな文化の醸成が伴います。本稿で紹介した4つのステップが、皆さんのオープンソース活動の一助となれば幸いです。