はじめに
OpenChain Japan WGのPlanning SG(subgroup)リーダを担当しています福地と申します。本日は、オープンソースイベントOSPOCon Japan 2022にて発表した、企業のコントリビューションについての分析を紹介します。
OSPOCon Japan
OSPOConは、Linux Foundationが主催する、OSPO(Open Source Program Office)やオープンソース推進のベストプラクティスにテーマを絞ったイベントです。昨年までは、毎年日本で開催されているOpen Source Summit Japanの1トラックでしたが、2022年から独立して同じ場所での同時開催イベントとなりました。
OSPOに関する発表を集めたOSPOConが独立同時開催になるほど、OSPOは世界的に注目を集めています。
日本にいながら世界のオープンソース推進の最前線の情報を聞いたり、海外のOSPOと直接議論したりできる貴重な機会を提供していますので、OSPOに興味をお持ちの方にはお勧めのイベントです。
OSPO(Open Source Program Office)とは
Open Source Progam
OSPOの説明の前に、Open Source Programについて簡単に説明します。Open Source Programとは、オープンソース開発で最先端を行くアメリカのIT企業(Google等)のベストプラクティスから出てきたアイディアで、企業内のオープンソース開発活動を推進するフレームワークのことです。Open Source Programは、たとえば、オープンソースポリシー、プロセス、教育、それらに関わる人的リソースなどから構成されます。
我々Japan WGが活動するOpenChain Projectが策定した仕様は、オープンソースライセンスコンプライアンスに関するOpen Source Programについて規定したものです。
OSPO (Open Source Program Office)
OSPOとは、Open Source Program Officeの頭文字からとった略称で、Open Source Programを構築・維持し、オープンソースを推進する組織あるいは役割を指します。企業のオープンソースの成熟度に依存して、専任組織を置いている場合もありますし、役割を規定した上でバーチャルな組織になっている場合もあります。企業で組織的にオープンソース利用やコントリビューションを取り組んでいくために、OSPOによるイニシアティブが重要であると認識され、多くの企業がOSPOを立ち上げ、Open Source Programを構築し始めています。
また、OSPOは社内フレームワーク構築と推進だけでなく、社外コミュニティとの連携も担います。オープンソース開発を成功させるには、コミュニティやコミュニティに参加する他企業とのコラボレーションが必須ですので、こうした意味からもOSPOの役割は重要です。
ToDo GroupとOSPO成熟度モデル
Linux FoundationのToDo Groupは、組織のOSPOが世界的に集まってベストプラクティス共有や課題の議論をオープンソース的に行うコミュニティです。全ての議論はオープンです。
https://todogroup.org/
そのToDo Groupが作成したOSPO成熟度モデルがあります。OSPOが成熟するにつれて、組織のオープンソース活動も成熟していくことを表現したモデルです。組織がOSSコンプライアンス順守しながら利用する段階から、コミュニティへのコントリビューションするだんっ会、オープンソースの戦略的利用する段階へと次第に成熟していくこと表したモデルです。
詳しくは以下のレポートをご覧下さい。
セッション紹介:コントリビューション分析
本稿で紹介するのは以下のコントリビューション分析に関するセッションになります。
”A Data Analysis Approach for Contribution-Centric Open Source Strategy Planning” - Kazumi Sato & Hiroyuki Fukuchi
https://sched.co/1D11F
コントリビューション活動分析の重要性
組織が成熟してコミュニティ連携を行う段階に達した時、どのオープンソースプロジェクトと連携するのか、オープンソースの技術的なトレンドはどうなっているのかなどを知ることが重要になってきます。
世界全体での企業の動向と、その中で自社の位置づけを知ることは特に重要です。しかし、オープンソースは全世界的に非常に多くの人や組織が活発に開発を行い、技術もものすごいスピードで発展していますので、技術動向は複雑かつ変化しており、俯瞰的に技術動向を把握するのが非常に困難です。
OSCIベースの分析手法
EPAM System社が開発したOSCI(Open Source Contributor Index)という指標を利用した分析手法を検討しました。
OSCIは、GitHubのコミットログを解析し、組織の活発なコントリビュータ数を計算した指標で、組織のコントリビューション活動の活発度を測る一つの指標になります。指標とツールはオープンソースとして公開されています。
OSCI: https://opensourceindex.io/
OSCI(GitHub): https://github.com/epam/OSCI
オープンソースの技術動向を把握する方法として、OSCIをベースにし、さらに独自にGitHubのコミットログを解析する手法を提案しました。
一部の例外はありますが、オープンソースプロジェクトのほとんどはGitHub上でホストされています。GitHubのコミットログにはコントリビュータのコミット履歴が残りますので、メールドメインを解析することで、組織の活動(コントリビュータ数、コミット数、コミット先プロジェクトなど)を知ることが可能です。
これらのデータを集計すると、多くのコントリビューションを受けているオープンソースプロジェクトや、技術領域が見えてきます。
適用結果
セッションではいくつかの適用結果がグラフと共に紹介されました。以下の観点でデータ分析が紹介されました。
・自組織のコントリビューションのうち、自組織のオープンソースプロジェクト向け(Inner Contribution)と、他組織のオープンソースプロジェクト向け(Outer Contribution)の割合はどの位か。
・自組織のオープンソースプロジェクトが受け取ったコントリビューションのうち、他組織分(Outer Contribution)の割合はどの位か。
・組織がコントリビューションしているプロジェクトや技術分野はどこか。
観察と考察
・コントリビューションのパターンは、組織によって大きく異なります。
・InnerとOuterの比率を見ると、Inner中心の組織とOuter中心の組織があります。
・Inner中心の組織は、自分のソフトウェアをオープンソースとして開示しながら開発しているのかもしれません。
・Outer中心の組織は、自社製品・サービスが依存する多くのプロジェクトにコントリビューションしているのかもしれません。
・自組織が受け取るOuterの比率を見ると、リーディング組織でも数パーセントしかOuterを受け取っていないことがわかります。オープンソースプロジェクトを育てるのは難しいことがわかります。
・調査した多くの組織が中立組織のプロジェクトを活用しています。自組織のオープンソースプロジェクトを育てるのが難しいことから、中立組織のプロジェクトを活用するのは良い方法だと思われます。
詳しくは、公開されている資料をご覧下さい。
終わりに
OSPOCon Japanで発表した組織によるコントリビューションの分析について紹介しました。
明日は富士通株式会社 大内さんから、Japan WG FAQ Subgroupの今年のトピックについて紹介してもらいます。
Summary
OSPOCon Japan 2022 Report:
”A Data Analysis Approach for Contribution-Centric Open Source Strategy Planning” - Kazumi Sato & Hiroyuki Fukuchi
https://sched.co/1D11F
This session introduces a data analysis method that an OSPO can use to plan an open source strategy on contributions, as well as the results of an analysis of applying this method.
As the maturity model suggests, companies often move from a compliant open-source usage stage to a contribution-driven business application stage. When a company is in the contribution stage, a major challenge for an OSPO is to know OSS trends and choose OSS projects that are useful to the company from among many projects.
We propose an analysis method to address the issue using the Open Source Contributor Index(OSCI).
OSCI, developed by EPAM, is an index of a company's active contributors. The data for calculating OSCI is the commit log on GitHub, and the commit log collection tool is open source. We propose to use OSCI in the first stage to find the leading companies and in the second stage to look at the commit log to see how often companies contribute to which projects.
We used this method to identify leading companies and analyze where they contribute. We contributed the modification to the upstream, so our approach is verifiable.