Open Source Summit Japan 2021 Report: OSPOの役割について／Roles of OSPO

---
##はじめに
(English is below)

OpenChain Japan WGのPlanning SG(subgroup)リーダを担当しています福地と申します。本日は、オープンソースイベントOpen Source Summit Japan 2021（OSS Japan 2021）にて発表したOSPO（Open Source Program Office）に関するセッションについて紹介します。


##Open Source Summit Japan

Linux Foundationが主催するオープンソースイベントで、毎年日本で開催されています。日本にいながら世界のオープンソースの最前線の情報を聞いたり、海外のエンジニアと直接議論したりできる貴重な機会を提供していますので、オープンソースに興味をお持ちの方にはお勧めのイベントです。

Open Source Summit Japan 2021では、OSPOに関する発表を集めたOSPOトラックが組まれるほど、OSPOは世界的に注目を集めています。本稿で紹介するのは以下になります。
”Open Source Program Office As an Engineering Role” - Kazumi Sato & Hiroyuki Fukuchi
https://sched.co/pee3

スライド資料：
https://static.sched.com/hosted_files/ossalsjp21/69/OSPOAsAnEngineeringRole_by_SatoFukuchi_rev1.0.pdf

##OSPO（Open Source Program Office）とは

OSPOの説明の前に、Open Source Programについて簡単に説明します。Open Source Programとは、オープンソース開発で最先端を行くアメリカのIT企業（Google等）のベストプラクティスから出てきたアイディアで、企業内のオープンソース開発活動を推進するフレームワークのことです。Open Source Programは、たとえば、オープンソースポリシー、プロセス、教育、それらに関わる人的リソースなどから構成されます。

我々Japan WGが活動するOpenChain Projectが策定した仕様は、オープンソースライセンスコンプライアンスに関するOpen Source Programについて規定したものです。

OSPOとは、Open Source Program Officeの頭文字からとった略称で、Open Source Programを推進する組織あるいは役割を指します。企業のオープンソースの成熟度に依存して、専任組織を置いている場合もありますし、役割を規定した上でバーチャルな組織になっている場合もあります。企業で組織的にオープンソース利用やコントリビューションを取り組んでいくために、OSPOによるイニシアティブが重要であると認識され、多くの企業がOSPOを立ち上げ、Open Source Programを構築し始めています。

また、OSPOは社内フレームワーク構築と推進だけでなく、社外コミュニティとの連携も担います。オープンソース開発を成功させるには、コミュニティやコミュニティに参加する他企業とのコラボレーションが必須ですので、こうした意味からもOSPOの役割は重要です。

なお、OpenChain仕様ではOSPOは必須ではないですが、これはOpen Source Programの作り方を限定しないためです。OpenChain仕様を満足するためにはいろいろなやり方があります。各企業で自分たちの成熟度にあったやり方を取るのが良いと思います。

##OSPOの役割

OSPOの役割ですが、一例といて以下のようなものが挙げられます。

・ポリシーを作成し、マネージメントの承認を受け、周知する
・オープンソースに関する教育を作成して実施する
・オープンソース利用に関してライセンスコンプライアンスのアドバイスをする
・コントリビューションを促進する
・社内コミュニティを形成してオープンソースカルチャーを醸成する
・オープンソースコミュニティと連携する

企業によっては、OSPOを法務・知財系の方がリードされている場合もありますが、上記の役割はエンジニアリングスキルが要求されるものですから、できれば法務・知財系の方とエンジニアの方が協力する体制を組まれるのが良いと思います。

##OSPOのエンジニアリング的役割

イベントの中では、OSPOのエンジニアリング的役割に焦点を当てて、以下の3点を紹介しました。

・ポリシー作成
・ポリシーと開発の橋渡し（ライセンスコンプライアンスのサポート）
・OSPO活動の展開

![OSPO_Fig1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422364/197128a7-a599-f01e-4354-6ee783031399.png)


####ポリシーの作成

オープンソースポリシーの作成に当たっては、自社の戦略、ビジネス的な目標、技術的な目標および技術的なトレンドなどを考慮する必要があります。
自社製品・サービスで利用するオープンソースの分野、今後の技術発展の予測、コミュニティとの連携、オープンソースライセンスに関する知識など、幅広い分野のことを理解した上でポリシーを策定していきます。エンジニアリング的な役割は不可欠です。

####ポリシーと製品開発の橋渡し（ライセンスコンプライアンスのサポート）

ポリシーは、企業内の様々なユースケースに適用するために、抽象的な記述とならざるを得ません。しかし、製品開発においては様々なユースケースが現れます。特にライセンスコンプライアンスでは、様々なケースがありえます。オープンソースを利用する際に、現場のエンジニアだけで解析できないケースや、不慣れなエンジニアが十分なOSSリストを作成できないケースもありえます。そういった場合には、ポリシーを補うために、OSPOがエンジニアにアドバイスします。

ライセンスコンプライアンスが難しいのはなぜでしょうか？大きく2点あると思います。すべてのOSSをリストするのが難しいことと、ライセンス条件をポリシー観点・ビジネス観点・技術観点で多面的に確認するのが複雑なことに由来すると思います。

OSSをすべてリストするには、いくつかのポイントを注意する必要があります。
・利用しているOSSのリポジトリを特定します。
・OSSの依存関係を確認します。
　依存関係は非常に複雑な場合があります。
　　OSSが他のOSSを利用している。
　　開発ツールが（エンジニアが知らないうちに）OSSを利用している。
　　コンパイラがランタイムライブラリのような形でOSSを追加している。
　　ディストリビューション（Debianなど）やContainer環境（Dockerなど）にはOSSが含まれている。

OSSをリストできたら以下を特定します。（一例です。）
　OSSの名前、バージョン
　OSSのダウンロードURL
　OSSのライセンス
　OSSへの変更の有無（自社エンジニアが変更を加えたか）

OSPOは、製品開発の現場にこうしたアドバイスを行っていきます。

![OSPO_Fig3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422364/e6207218-5b16-9f58-2d05-f60ec9d767af.png)


OSSリストを確認する際には、ポリシーと一致しているか、ビジネス観点で問題が無いかをチェックするとともに、すべてのOSSが網羅されライセンス条件が満たされているかをチェックしていきます。たとえば、ソースコード開示がライセンス条件となっているときに、ビジネス的に問題が無いかの確認をしていきます。場合によっては、商用ライセンスを選択することもありえます。



![OSPO_Fig4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422364/26ef2a9c-8645-7de7-d3b4-f14b26fb4fb3.png)



####OSPO活動の展開

OSPOの役割は広範囲で多岐に渡りますが、OSPOのサイズはそれほど多くないことが多く、企業規模が大きくなると個別のプロジェクトへの細かいアドバイスができないこともありえます。小さな人数で活動を企業内全体へ展開する方法としては、トレーニング、ベストプラクティスの共有、企業内コミュニティ形成などが挙げられます。

トレーニングは、企業内全体へメッセージ、ルール、ノウハウを伝えるのに有効な手段です。ポリシーの内容に加えて、ポリシーが作られた背景やオープンソースコミュニティのことを説明すると、ポリシーがよりよく理解できます。オープンソースについて規定されたルールを説明して理解してもらうのも重要です。また、OSSリストの作成方法などを伝えるのもよいでしょう。すべてをトレーニングで伝えることは難しいですが、ポリシーとポリシーの背景、ルールや問い合わせ窓口の存在など基本的なことを理解してもらうのが重要です。

ベストプラクティスですが、たとえば、企業内でのOSSリスト作成方法やOSSリスト確認の事例の紹介があります。また、コミュニティへのコントリビューションの事例を共有するのもよいかもしれません。

また、これらのベストプラクティスを企業内のコミュニティで共有していくのも有効です。ノウハウが蓄積されると同時に、コミュニティメンバーがお互いに教え合う状況を作り出せれば、オープンソースカルチャーを企業内に定着させることができます。

##さいごに

本稿では、Open Source Summit Japanで紹介したOSPOの役割について紹介しました。少しでも皆様のお役に立てれば幸いです。


##English
My name is Hiro Fukuchi and I am the leader of the Planning SG of the OpenChain Japan WG. Today, I would like to introduce the session on OSPO (Open Source Program Office) announced at the open source event Open Source Summit Japan 2021 (OSS Japan 2021)


## Open Source Summit Japan

An open source event organized by the Linux Foundation, held annually in Japan. This is a recommended event for those who are interested in open source, as it provides a valuable opportunity to listen to information on the front lines of open source in the world and discuss directly with overseas engineers while in Japan. is.

At the Open Source Summit Japan 2021, OSPO is attracting worldwide attention so much that an OSPO track that collects announcements about OSPO is assembled. The following are introduced in this article.
"Open Source Program Office As an Engineering Role" --Kazumi Sato & Hiroyuki Fukuchi
https://sched.co/pee3

Slide material:
https://static.sched.com/hosted_files/ossalsjp21/69/OSPOAsAnEngineeringRole_by_SatoFukuchi_rev1.0.pdf

## What is OSPO (Open Source Program Office)?

Before explaining OSPO, let's take a brief look at the Open Source Program. The Open Source Program is an idea that emerged from the best practices of American IT companies (Google, etc.) that are at the forefront of open source development, and is a framework that promotes open source development activities within the company. The Open Source Program consists, for example, open source policies, processes, education, and the human resources involved.


The specifications developed by the OpenChain Project, in which we, the Japan WG, work, stipulate the Open Source Program for open source license compliance.

OSPO is an abbreviation taken from the abbreviation of Open Source Program Office, and refers to the organization or role that promotes the Open Source Program. Depending on the maturity of the company's open source, it may have a dedicated organization, or it may be a virtual organization with defined roles. Recognizing the importance of OSPO initiatives in order for companies to systematically engage in open source use and contributions, many companies have launched OSPO and are beginning to build the Open Source Program.

## Roles of OSPO

Regarding the role of OSPO, the following are examples.

・ Create a policy, receive management approval, and disseminate it.
・ Create and implement education on open source
・ Provide license compliance advice regarding open source usage
・ Promote contributions
・ Form an in-house community and foster an open source culture
・ Collaborate with the open source community

Depending on the company, OSPO may be led by legal / IP-related people, but since the above roles require engineering skills, cooperation between legal / IP-related people and engineers are recommended.