Skip to main content

成功するオープンソース コミュニティの構築:調整と円滑化はプロジェクトのスケーリングと成熟にどのように役立つか

なぜプログラム管理がオープンソース プロジェクトの一部として必要なのでしょうか? Linux Foundationのプログラム マネージャー数人に、彼らがどのようにそのタスクにアプローチしているのか尋ねてみました。

調整と円滑化はプロジェクトの向上にどのように役立つか?

わたしたちは、Linux Foundationのプロジェクトの主要な目標を、オープン ソフトウェア、オープン ハードウェア、オープン スタンダード、またはオープン データ アーティファクトを生み出すこと(つまり参加しているプログラマー、エンジニア、システム アーキテクトのような技術的貢献者の領域)と考えがちです。

しかし、より広範な商業組織のエコシステムに関与して成功しているプロジェクトは、特に資金調達の面では、純粋な技術貢献だけでなく、アクティブなリーダーシップの恩恵を受けています。貢献者はプロジェクト以外の仕事を持っていることが多く、そちらに多くの時間をとられています。商用エコシステムの構築・調整、利害関係者の参画確保、メンバーの採用・参加促進、中立的なガバナンス文化の構築(多くの場合、競合他社もあり)、およびエコシステムの各種側面(エンドユーザーの参加開始時期など)の調整には、時間がかかります。

多くのLinux Foundationプロジェクトが、コミュニティにリソースを提供するための資金調達活動を行っています。ビジネス エコシステムが集まって投資し、コミュニティやエコシステムを繁栄させるためのリソース獲得を支援してくれれば、技術コミュニティはとても助かります。わたしたちのコミュニティの典型的な資金調達モデルは、プロジェクトの年次資金を賄う年間メンバーシップ構造を提供することです。

Linux Foundationのガバナンス アプローチは、資金やビジネスに関する意思決定と、技術プロジェクトのガバナンスとを切り離しています。プロジェクトの基金に資金を拠出する企業は、その資金の使われ方や関連するビジネス決定事項を決定することができます。技術コミュニティは、オープンソースのベストプラクティスを使用して独立して活動でき、どのようなコードを受け入れるか、どのようにリリースをビルドするかなどについては、資金提供に貢献した企業ではなく、目前にある技術的な決定メリットをベースにして常に決めることができます。

わたしたちは、予算や事業の決定に関与する技術コミュニティの代表者を常に配置し、資金調達の決定が十分に通知されるようにします。Linux Foundationモデルは、このようにして、オープンソースの開発のベストプラクティスを維持しながら、コミュニティが彼らの仕事に依存する商業エコシステムから利益を得られるようにしています。

コミュニティのためのガイダンス

技術プロジェクトには、リリースのビルド方法を体系化する役割があります。通常、コミッターは受け入れるコードを決定し、メンテナーはリリースに何を入れるかを決定します。プロジェクトをスケーリングして周囲にエコシステムを作成する場合、プロジェクトが順調に進み、スケーリングを続けるために必要な、このほかの重要な役割と責任があります。それは以下のようなものです。

  • 計画と構築。一貫性のある戦略を構築することは、プロジェクトの成功に不可欠であり、主要な利害関係者が実現を望み、優先したいと考えている結果への投資が必要です。
  • KPIの測定。プロジェクトのミッション、目標、目的を追跡しながら、それらをスイムレーンに移動させることは、うまくいくものに繰り返し取り組み、うまくいかないものに対処するための鍵となります。
  • 円滑化。円滑化を成功させるためには、コーディネーターが状況を理解し、中立を保つ必要があります。これは難しく、多くの場合最も困難な業務です。
  • アドバイス。コーディネーターは、専門知識によってこれらの事がらを判断するボードです。組織を成熟させるには、自己統治と持続可能性を実現するためのメカニズムを作成する必要があります。
  • 繰り返しと振り返り。コミュニティの利害関係者が何かを成し遂げたいと思っていても、振り返りのないまま進行していると、道に迷います。森も木も見ること、特に、俯瞰することが大切です。

これまで、いくつかのコミュニティには、こうした役割を果たし、尊敬され、中立的なリーダーがいました。たとえばXen Projectは、長年この役割を果たすことを申し出てきたコミュニティ メンバーの一例です。これを機能させるために、コミュニティのリーダーらは多大な時間を費やしています。それは、この機能に時間を費やすことができ、その意欲がある人物をコミュニティが持つためには非常に有益です。

しかしコミュニティ内で支援者を見つけられないプロジェクトも少なくありません。そこで、Linux Foundationはサポート プログラムを作成し、中立的な調整や円滑化の専門家を得るための助けを必要としているプロジェクトを支援しているのです。そしてこのサポートを行う人々を、プログラム マネージャー(PM)と呼んでいます。多くの場合、PMはコミュニティの参加者や潜在的なメンバーの最初の連絡窓口であり、通常は以下のような活動に携わっています。

  • プログラム マネージャーは、運営委員会と技術委員会がプロジェクトの方向性や目標を形成するのを支援します。
  • プログラム マネージャーは、プロジェクトの技術リーダーらと協力して、技術的な目標を理解します。
  • 彼らはメンバーと協力して議長や会計などの役職に就き、投票プロセスに関与します。
  • 彼らは、管理委員会と技術委員会の両方がプロジェクトの憲章の合意されたガイドラインの範囲内で行動することを保証します。
  • プロジェクトコミュニティへの新規メンバーの参加を支援します。
  • Linux Foundationのマーケティング、PR、イベント、およびトレーニング チームのリソースを活用し、プロジェクトに提供されるサポート プログラムを調整します。
  • さらに、Linux Foundationによる他のサポート プログラムの提供、およびベンダーや請負業者によるサービスの提供を監督します。
  • プログラム マネージャーは、The Linux FoundationのITサービス チーム メンバーを招き、プロジェクト コミュニティのニーズやロードマップに基づいて適切な開発インフラストラクチャ、ツール、およびマネージドITサポート プログラムについて協議します。
  • プログラム マネージャーはコミュニティの管理に積極的に取り組み、プロジェクトのリーダーによる会合・デベロッパー ハックフェスト・イベント参加などの調整を助けます。

コミュニティの戦略的目標を設定する

オープンソース プロジェクトでは、プロジェクトのミッションを特定して明確にすることが不可欠であり、これはビジネス活動と同じです。具体的な目標を設定することにより、プロジェクトの参加者は、自分たちの活動を導き、決定を知らせることができるストーリーを議論し、調整することができます。

プログラム マネージャーは、プロジェクトのメンバーや技術リーダーらと協力し、プロジェクトの目標・マイルストーン・指標を使用して戦略を定義します。技術コミュニティのニーズに対応し、プロジェクト戦略にも沿っている予算について、運営委員会で合意が得られるよう、議論を調整します。

オープンソースの目標には、通常、多くの人々を助けるためにプロジェクトのフットプリントを最大化することが含まれています。多くの場合、目標は詳細なレベルで明確に示されます。つまり、貢献者がより容易に関与できるようにしたり、エコシステムの特定分野のメンバーシップを拡大したり、エンドユーザーの貢献を増やしたりするなどです。

CHAOSSプロジェクトは、関与やリスクといったコミュニティの測定基準を定義することに重点を置いたコミュニティです。これらの基準は、プロジェクト リーダーがエコシステムをある程度改善するための目標を設定および確立するのに役立ちます。

コミュニティにプロジェクト ライフサイクルを適用する

オープンソース プロジェクトには、公式リリースに含めたり、独立したリリースにできない新しいアイデアを生み出すために、しばしばサブプロジェクトやさまざまな取り組みが含まれています。これらのコミュニティは、コミュニティ内で調整された複数サブプロジェクトを持つ「アンブレラ」モデルを使用している、と呼ばれます。アンブレラ コミュニティ内にあるプロジェクトは通常、1つのライフサイクルに従います。ライフサイクルは、一般的に、想像から始まり、計画、最初の実行、拡張、そして最終的には保守と最終的廃棄という道をたどります。

プログラム マネージャーは、多くの場合、技術リーダーらと協力し、このライフサイクルをマイルストーンに従って体系化し、プロジェクトの参加者がプロジェクトの成熟度とリソースの状況を即座に理解できるようにします。たとえばCNCFには、Sandbox、Incubation、Graduation(サンドボックス、インキュベーション、卒業)などのプロジェクト フェーズがあります。OpenJS Foundationには、Incubation、At-Large、Growth、Impact、Emeritusなどのプロジェクト フェーズがあり、コミュニティのニーズに対応しています。

プロジェクト ライフサイクルは、財団にとって不可欠なツールで、複数のプロジェクトの成熟度がわかり、完全に成熟したプロジェクトへの道のりに何が必要かをコミュニティに教えます。それは、プロジェクトが成長して変化していることや、コミュニティはプロジェクトが自らを導くために何を頼りにすべきだと考えているかを示す、道筋でもありシグナルでもあります。

ほとんどのプロジェクトには、入門レベル、中間レベル、卒業レベル(entry-level、mid-level、graduate level)があります。入門レベルのプロジェクトとは、新しいプロジェクトの幸先よいスタートと考慮すべき何かを示しています。中間レベルのプロジェクトとは、このプロジェクトの使用を検討する可能性のあるユーザーに対して成長と発展を証明するもので、卒業プロジェクトとは、完全に成熟し、エコシステムの多くが依存しているプロジェクトであることを示します。

「Cloud Native Computing Foundationでは、さまざまなプロジェクト段階が、開発の観点からだけでなく、コミュニティの観点からも、プロジェクトの成長を促すのに有益でした。卒業を目指すプロジェクトは、強力なコードベースと強力なコミュニティの両方を実証しなければなりません。」

Amye Scavarda Perrin (CNCF プログラム マネージャー)

Linux Foundation Networking (LFN) プログラム マネージャーのTrishan De Lanerolleは、テクニカル アドバイザリー カウンシル(技術諮問委員会)がプロジェクトのライフサイクル管理においてどのように積極的な役割を果たすかについて述べています。

「Linux Foundation Networking プロジェクト (LFN) の技術リーダーシップ (テクニカル アドバイザリー カウンシル) は、さまざまな成熟段階のプロジェクトに関する基準とチェックポイントを示すモデルを開発・公開しました(たとえば、LFNアンブレラ プロジェクト候補に対するLFNエントリーのレビューや評価など)。このエントリー プロセスは、これから発足するプロジェクトを友好的かつ公正に評価するためのメカニズムを提供します。LFNでは、提案されたプロジェクトが「LFNのスコープに含まれるかどうか」、「コミュニティのステータスや健全性のスナップショットを提供するかどうか」、「プロジェクトの文書化されたガバナンスが明確で完全であり、簡単にアクセスできるかどうか」を問われることになります。」

Continuous Delivery Foundation (CDF) のプログラム マネージャーDan Lopezは、その戦略サブコミッティ (Strategy Subcommittee:CDFの戦略的計画を策定・実施して理事会を支援することをおもな目的とする) の作業を促進することで、CDFを持続可能で長期的な戦略目標へと導くことができました。

「プログラム マネージャーの計り知れない価値は、進歩を実現するためのスペースを育てる能力にあります。彼らの役割は、必ずしも困難な決定を下すことではなく、むしろプログラムの「接着剤」となって、困難な質問を投げかけ、利害関係者グループの中でインスピレーションや批判的思考(このケースでは、CDFの長期的な価値を生み出す持続可能な目標)を喚起することです。

Danは、CDFの状況を理解した中立的な立場で戦略計画にアプローチし、理事会による適切な目標の策定を助けることができました。この目標は、長期間にわたって測定・管理が可能な、主要なパフォーマンス指標に対応しています。

コミュニティにおけるオープン ガバナンスの重要性

プログラム マネージャーは、リーダーシップ チームの重要なメンバーでもあり、管理団体の要望、ニーズ、優先事項を促進・運用するために協力して作業します。Linux Foundationのプログラム マネージャーは、各プロジェクト コミュニティと協力し、技術コミュニティのための透明でオープンなガバナンス モデルを確立します。

オープン ガバナンスにおいては、プロジェクトは、プロジェクトの利害関係者を代表する人々のグループによって管理されます。利害関係者とは通常、プロジェクト メンバーと、プロジェクトの技術的取り組みのリーダーです。「すべての利害関係者のニーズに対処する必要があり、人々が協力して仕事を遂行する必要がある」というオープン ガバナンスを使用して主要な技術的取り組みを実施するという概念は、民主主義の基本概念に基づいています。コンセンサスを得るためには透明性と調整が必要である点で、クローズド ガバナンスやプロプライエタリ ガバナンスとは一線を画します。

オープン ガバナンスには、プロプライエタリの限定的な環境では決して見られないバランスがあります。つまり、その活動の原動力が創造性と革新性を促進し、開発速度を大幅に向上させます。プログラム マネージャーとコミュニティ マネージャーは、これらのプロセスをガイドし、統治機関が相互に順調に進むのを助けます。

DPDKのプログラム マネージャーであるTrishan de Lanerolleは、彼のプロジェクトが同等の責任を持つ2組織にどのように分割されているかを説明しています。

「DPDKはオープン ガバナンスの1つのモデルであり、同等の統治機関を備えています。統治委員会(Governing Board)は、予算、マーケティング、ラボ リソース、管理、法務、およびライセンスの問題に関する所有権を持ち監督します。技術委員会(Technical Board)は、新しいサブプロジェクトの承認、古いサブプロジェクトの非推奨、プロジェクトの技術ロードマップ、メンテナーの採用、貢献・テスト・セキュリティ管理のプロセスの定義など、技術的な問題に対する所有権を持ち監督します。技術委員会は、さまざまな組織に属する人々で構成されています。彼らは技術的な貢献が認められた人々であり、彼らの所属組織がプロジェクトの企業メンバーである必要はありません。運営委員会は、プロジェクトを財政的に支援するメンバー組織の代表者で構成され、プロジェクトのミッションを実現するために協力しています。」

LF Energyのような他のプロジェクトは、ガバナンスの構成に関しては若干異なる経路をとっています。

LF Energyは、急成長しているオープンソース財団の中にあるオープンで代表的なガバナンスの例を表しています。LF Energyには、多くの財団と同様に、プレミア メンバーで構成された理事会(board of directors)があります。理事会は、一般メンバーの代表と、プロジェクトの技術リーダーからなる技術諮問委員会(TAC)の代表とで構成されています。単一企業が理事会に複数の代表者を置くことはありません。理事会は、企業や文化の多様性と業界全体の意見を提供するもので、特定のものにフォーカスするものではありません。

プログラム管理サポートが支えるLinux Foundationの中立

アクティブなプログラム管理サポートこそ、各種のオープンソース プロジェクトがLinux Foundationのような組織に参加する大きな理由の1つです。わたしたちのプログラム管理プロフェッショナルはユニークな運用スキル&機能セットを提供し、ほぼすべてのプロジェクトがこれを活用しています。これが運用や円滑化の作業をコミュニティから解放します。

要約すると、プロジェクトを成功させるには、コミュニティの調整とプログラム マネージャーが必要です。プログラム マネージャーは計画と構築を実行し、プロジェクトのパフォーマンスを測定し、主要なファシリテーターとして行動して助言し、プロジェクトの利害関係者が繰り返しと振り返りにより経験から学ぶことでプロジェクトを前進させられるよう支援できます。

「オープンソース プロジェクトを管理することは、若木を育成して成熟した健全な木に成長させるようにコミュニティを育てることでしょう。わたしたちの仕事は、成長を成功させるための栄養と条件を適切なバランスで供給することです。戦略的なプログラム管理を備えた実証済みのガバナンス モデルに従うことにより、健全なコミュニティを育成できる可能性が高まります。プログラム マネージャーがその道筋を明らかにするのを助けることで、コミュニティがコードに集中でき、技術的な目標が達成されます。わたしたちは園芸家で、裏方でこつこつ働いています。わたしたちが正しく仕事をしていれば、誰にも気づかれないでしょう。」

Trishan de Lanerolle(LF Networking テクニカル プログラム マネージャー兼コミュニティ アーキテクト)

The Linux Foundation
Follow Us