この内容は、FOSSA社のブログ記事を元に日本語に翻訳・再構成した内容となっております。
はじめに
企業は、オープンソースソフトウェア(OSS)の管理と戦略を監督するために、オープンソースプログラムオフィス(OSPO)を設立します。これには、企業のOSSライブラリの選択、ライセンスコンプライアンスのワークフロー、広範なOSSコミュニティとの関係などの監督が含まれます。
OSPOの台頭は、今日のアプリケーション開発の世界においてOSSを使用しない企業または製品はめったにないという事実に起因しています。実際、現代のアプリケーションのコンポーネントの90%以上がOSSであると言われています。OSSを利用することで、企業はコスト削減やコード品質の向上など、多くのメリットを得ることができます。
もちろん、OSSの使用を管理することは、プロプライエタリなソースのそれとはまったく異なります。OSSのユーザーは、特定のライブラリの開発ロードマップに対する可視性やコントロールを持たないことが多く、また、OSSにはさまざまなライセンス要件があり、その中には混乱を招くようなものもあります。
OSPOは、組織におけるこれらの課題に対処し、OSSから得られる価値を最大化するための包括的な戦略を実装するのに役立ちます。本記事では、スタッフの配置や戦略など、成功するOSPOを構築するためのポイントをご紹介します。
OSPOの構成要素
Microsoft、Google、Twitter、Netflixなどは、OSPOを持つグローバル企業のほんの一例です。組織やOSPOの運営方法はそれぞれ異なりますが、多くは「Comply(遵守)」と「Contribute(貢献)」という2つの戦略を採用しています。
ここでは、それぞれについてご紹介します。
Comply(遵守):OSSは無料で使用できますが、ライセンス要件を遵守するという重要な責任があります。ライセンスの種類の多さや深い依存関係を明らかにすることの大変さを考えると、これは口で言うほど簡単なことではありません。また、ライセンス要件を遵守していない組織は、潜在的な訴訟や風評被害のリスクを負う可能性があります。
OSPOは、ライセンスコンプライアンスを管理するプロセスの開発と実装を任されることがよくあります。これには、どのプロジェクトでどのライセンスを使用できるかの決定から、チームがOSSコンポーネントや依存関係を追跡する方法の監督まで、さまざまな要素が含まれます。また、コンプライアンスのワークフローやプロセスを簡素化するためのソフトウェア構成分析(SCA:Software Composition Analysis)のツール評価や導入も担当することがあります。
Contribute(貢献):OSSが近年繁栄している主な理由の1つは、それをサポートする大規模なコミュニティです。下の図が示すように、何十万人ものアクティブなOSS貢献者がさまざまなプロジェクトに取り組んでいます。
多数のドメインにまたがる何千ものOSS貢献者が存在します。
OSSコミュニティには、個人の開発者からプロジェクトを支援する大企業まで、さまざまな方が参加しています。そして貢献は、OSSコミュニティの柱となる中心的な考え方です。この点において、エンジニアがOSSプロジェクトに貢献するためのプロセスを確立することは重要です。これには主に2つの理由があります。
- エンジニアリングチームは、OSSプロジェクトをプロプライエタリなソフトウェアにうまく統合するために、貢献したり適応させたりする必要があるかもしれません。また貢献は、特定のOSSコンポーネントを活用し続けられるようにすることを支援する方法でもあります。
- 優秀なエンジニアリング人材は、強力なOSPOを持つ企業に引き付けられます。優秀なエンジニアはOSSのような優秀なコードに惹かれるのです。
エンジニアにOSSプロジェクトへの貢献を促すことは、OSSコミュニティと良好な関係を築くことにもつながります。貢献のほかの方法としては、オープンソース管理プログラムの公開、OSSプロジェクトのイベントのスポンサー、OSSプロジェクトへの寄附などが含まれます。
OSPOのスタッフ
OSPOを構成する社員の数や役割は、組織の規模や優先順位によって異なることがよくあります。しかし一般的には、OSPOには以下のような役割と機能があります。
- プログラムマネージャー
- 法務・コンプライアンスサポート
- デベロッパーアドボケイト・コーディネーター
- エグゼクティブスポンサー
プログラムマネージャー:OSPOのプログラムマネージャーは、その名のとおり、プログラムの監督、リソースの確保、組織のOSS戦略の管理を担当します。この担当者は、OSS戦略が、収益目標、採用活動、ブランド認知度、エンジニアリングの卓越性など、組織の広範なビジネス目標とどのように関連しているかを特に意識する必要があります。
法的サポート:社内弁護士、社外弁護士、またはその両方のいずれであっても、法的サポートはOSPOの重要な要素です。法務担当者は、プログラムマネージャーと密接に連携して、企業の各製品に許可されるOSSライセンス、既存のOSSへの貢献方法(または貢献するかどうか)、社内製品をOSSとして公開する際に利用すべきライセンスなど、OSSに関するポリシーを定義します。
デベロッパーアドボケイト・コーディネーター:OSPOにおいて、製品やエンジニアリングのチームが果たす役割は、企業によって異なります。しかし、具体的な内容に関わらず、これらのチームはOSSプログラムを成功させるために重要な役割を果たします。これには多くの理由があります。まず、OSPOのプログラムマネージャーは開発のワークフローに新しいツールやプロセスを導入することがあります。このとき、製品やエンジニアリングのチームと協力して、ワークフローをつなぎ、ポリシーやツールがエンジニアにとって使いやすい形で実装されるようにしなければなりません。また、開発チームはOSSのコンプライアンスやセキュリティの取り組みに伴うコードの変更を実際に実行することになりますので、プログラムマネージャーおよび法務担当者からエンジニアへの直接の指示が重要になります。
エグゼクティブスポンサー:ほとんどの戦略と同様に、OSPOは、会社のリーダーシップのサポートがあってこそ、その影響を最大限に高めることができます。そのため、役員の賛同は非常に重要です。企業内におけるOSPOの性質上、VPoE、CTO/CIO、Chief Compliance/Risk Officerなどが、この役割を担う実質的な候補となります。