DUICUO

優れたオープンソースプロジェクトを構築するための12の原則

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

https://ost..com

この記事は、51CTOオープンソース基本ソフトウェア学習シーズンのライブコース「優れたオープンソースプロジェクトを構築するための12の原則」から抜粋したものです。詳細については、リンクをクリックしてご覧ください。

10年以上にわたりオープンソース分野に注力し、ClickHouse、Dolphin、SeaTunnelといったコミュニティの開発に携わり、現在はApache FoundationメンバーおよびApache Incubatorメンターとして活動する中で、プライベートでもパブリックでも、「あなたの視点から見て、どのようなオープンソースプロジェクトが成功しやすいと思いますか?」「成功するオープンソースプロジェクトを構築するにはどうすればいいですか?」といった質問をよく受けます。最近、私がこれまで蓄積してきたオープンソースに関する断片的な知識を基に、優れたオープンソースプロジェクトを作成するための12の原則をまとめましたので、このライブストリームで皆さんと共有したいと思います。

I. 世界のオープンソース動向の分析

優れたオープンソース プロジェクトを構築するための 12 の原則を紹介する前に、OpenLogic の 2022 年グローバル オープンソース レポートから抜粋した 3 つのグラフを通じて、世界的なオープンソースのトレンドを見てみましょう。



上の 2 つの図に示されているように、オープンソース ソフトウェアを使用する際にユーザーが直面する明確な傾向と課題がいくつか見られます。

  1. 過去 12 か月間で、回答者の 77% が組織内でのオープンソース ソフトウェアの使用が増加し、回答者の 36.5% が使用量が大幅に増加したと回答しています。
  2. 回答者の 79% がオープンソース組織を支援しています。
  3. オープンソースソフトウェアを利用する主な理由はイノベーションの促進であり、コスト削減はそれに次ぐものです。セキュリティとパッチの可用性も高い評価を得ています。
  4. オープンソース ソフトウェアを導入する際の最大の障害は、それをテスト、使用、統合、サポートするための社内スキルの不足です。
  5. あらゆる業界でオープンソース ソフトウェアをサポートする上での最大の課題は、担当者の経験と熟練度です。
  6. 全体的な使用量の増加が最も大きかったのは、オープンソースのDevOpsツールです。クラウドネイティブのCI/CDツールの導入も大幅に増加しました。
  7. 最も魅力的な新技術はコンテナとKubernetesです。現在、Kubernetesを使用している回答者はわずか18%、クラウド戦略を策定している回答者は39%、コンテナ化戦略を策定している回答者は29%です。
  8. あらゆる規模の組織の中で、オープンソース戦略を採用している小規模組織の割合が最も高く、41% となっています。
  9. 銀行、保険、金融サービス部門には、Innersource プロジェクトが最も多く存在します。
  10. オープンソース ライセンスに精通した法務チームを持つ組織はわずか 13% です。
    OpenLogicの2022年版グローバルオープンソースレポートは非​​常に包括的で、様々なグローバルオープンソーストレンドに関する洞察を提供しています。詳細については、こちらをクリックしてください:[2022年の国際的なオープンソーストレンドとは? - 「2021年版グローバルオープンソーストレンドレポート」の簡単な概要]

II. 優れたオープンソースプロジェクトを構築するための12の原則

海外のオープンソースの動向をある程度理解した上で、優れたオープンソースプロジェクトを構築するために必要な12の原則を見ていきましょう。これらの原則は過去の経験に基づき、綿密な調査を経て、オープンソースの初期計画、オープンソース製品、オープンソースプロジェクトの推進、そしてオープンソースプロジェクトの持続的な発展という4つの側面にまとめられています。以下では、それぞれの原則について詳しく説明します。

オープンソース計画の当初の意図

オープンソースプロジェクトの成功率は非常に低く、プロセス全体が多くの課題を伴います。最初の動機を明確に定義することが重要です。オープンソースプロジェクトを計画する前に、それが見過ごされることを覚悟しておきましょう。諦めそうになった時こそ、最初の動機が原動力となるのです。

オープンソースは、プロジェクトが世界規模で車輪の再発明を避け、世界トップレベルの英知を結集してプロジェクトの研究と構築に集中できるようにする高度なプロジェクト開発ツールであると信じています。

したがって、オープンソースを創り出す最初の動機は、こうした世界をリードする知見を集め、より多くの人々に知ってもらうことにあると私は考えています。これは非常にやりがいのあることです。オープンソースを創り出す最初の動機は人それぞれ異なるかもしれませんが、必ずそれが必要です。そうして初めて、私たちは最初の動機を貫き、挫折や困難に直面しても粘り強く取り組むことができるのです。

オープンソース初期計画合意

オープンソースを初期段階で計画する際には、ライセンスが最も重要です。適切なオープンソースライセンスを選択するには、慎重な検討が必要です。オープンソースライセンスはクライアントとの契約と捉えることができ、オープンソースプロジェクトの種類によってライセンスは異なります。

上図に示すように、合意は大きく分けて2つの観点に分けられます。1つは、誰かがコードを使用し、変更を加えた際にオープンソース化するか否かです。もう1つは、サービスやライブラリを誰かが使用する際にオープンソース化するか否かです。どちらの観点を採用するかによって、結果が大きく異なるため、最初から慎重に検討することが重要です。

オープンソースの初期計画サイクル

ClickHouseコミュニティは中国で6年間活動を続けてきましたが、初期の成長には1年半から2年という時間がかかることが実証されています。例えば、ClickHouseがユーザー数をゼロから500人に増やすまでには1年以上かかりました。その後、ユーザーベースが拡大するにつれて、様々なスキルを持つ多様なユーザーを惹きつけ、適切なシナリオを見つけ、最終的には雪玉が丘を転がるように、津波のようにユーザーが押し寄せ、どんどん大きく成長していきました。

技術のイテレーションサイクルもあります。過去の有名なオープンソースプロジェクトの成長傾向を見ると、次の図が示されています。

このデータから、5年ごとに新しいオープンソースプロジェクトが登場する一方で、その技術が習得されていない場合、約5年で他のプロジェクトに置き換えられてしまうことがわかります。コア原則、製品理念、コアテクノロジー、そしてコアチームは、オープンソースプロジェクトが主導的な地位を維持できるかどうかを直接左右し、関連するコミュニティの存続にも直接影響を与えます。

オープンソース製品の位置付け

オープンソース化の初期計画段階では、当初の意図を明確にし、適切なライセンスを選択し、タイムラインを決定しました。次に、ポジショニング、トーン、チームという3つの原則に沿って、オープンソース製品の構築を開始しました。

製品の位置付けは明確でなければなりません。どのような問題や問題点を解決しようとしているのか、そしてそれが疑似的なニーズなのか、それとも真のニーズなのかを明確に理解する必要があります。自信過剰は禁物です。ユーザーがいなければ、コミュニティは成長しません。ここでは、オープンソースプロジェクトを一文で説明し、ターゲット市場、解決する問題、そしてその境界を明確に理解する必要があります。明確に定義された問題点と境界があって初めて、オープンソースプロジェクトは成長します。すべてを網羅しようとするオープンソースプロジェクトは、ほぼ確実に失敗に終わります。

オープンソース製品のトーン

オープンソース製品のトーンとは、オープンソースプロジェクトが現実世界の課題を解決する際に、ユーザーがどのような価値を認識できるかを指します。簡単に言えば、オープンソースプロジェクトが実際に何を実現するかということです。「私はXXXXXの次世代であり、YYYYYYYを破壊する」と宣言することから始まるオープンソースプロジェクトは、明確な製品トーンと価値提案が欠如しているため、成功する可能性は低いでしょう。オープンソースに必要なのは「退化」ではなく、人類全体によるイノベーションです。

私たちの製品には独自の個性が必要です。オープンソースは火鍋のように捉えるべきです。なぜ火鍋のようなアプローチなのでしょうか?人々があなたの製品について考えるとき、何を思い浮かべるでしょうか?火鍋といえば、湯気が立ち上る鍋、ゴマダレ、様々な肉や野菜をすぐに思い浮かべます。美味しく、簡単に作れて、魅力的です。そして、誰もが参加したくなるような強い魅力があります。あなたの製品も、火鍋のように、独自の個性、独自の機能、そして魅力を持つべきです。

オープンソース製品チーム

オープンソース製品チームの編成は繊細な問題です。例えば、経験豊富な技術専門家と一般の人々が協力して作業するグループでは、一般的に後者の方がチームに適しています。これは、経験豊富な技術専門家はエネルギーに限りがあり、他の業務に追われている場合はプロジェクトを中断せざるを得ない可能性があるためです。オープンソースプロジェクトには多くの参加者が必要であり、そのほとんどが熱心にプロジェクトに貢献し、真にプロジェクトに溶け込むことで、プロジェクトの活力を維持する必要があります。オープンソースに対するチームの理解と、その回復力も、オープンソース製品の成功にとって重要な要素です。

オープンソースにおけるイノベーションは、1、2人のトップレベルの技術専門家に頼るのではなく、ユーザーからのフィードバック、開発者、そしてコミュニティ外の専門家など、コミュニティ全体の知恵と努力から生まれることがほとんどです。オープンソースでは、中堅からシニアレベルのコミュニティユーザーと貢献者の数が、1、2人のトップレベルの技術専門家の数を上回ることがよくあります。そうでなければ、コミュニティは不安定になってしまいます。

オープンソースプロジェクトの推進の勢いを活用

オープンソース製品が完成したら、どのようにプロモーションと運用を行うかを検討しましょう。主な原則は3つあります。既存のトレンドを活用すること、自己伝播すること、そして影響力です。

このトレンドをどのように活用できるでしょうか?ClickHouseとSeaTunnelコミュニティの台頭を例に挙げてみましょう。ClickHouseは現在、海外よりも中国で人気が高まっていますが、これは初期のプロモーションで当時台頭していた「ユーザー行動分析」というトレンドをうまく活用したためです。こうした顧客増加のトレンドを考えると、ClickHouseはこのシナリオに非常に適しています。

SeaTunnelがApacheインキュベータに参加できたのは、当初ClickHouseの勢いに乗れたからです。ClickHouseはコンピューティングエンジンですが、データの読み込み中にエラーが発生するという欠点がありました。SeaTunnelはこの問題を解決し、現在もClickHouseへのデータ読み込みを非常に便利にするバルクロードモードを構築しています。

既存の勢いを活用することは、新しい勢いを生み出すよりもはるかに簡単な場合が多いです。一般的には、Apache Foundation、CNCF Foundation、そして様々なOpen Atom Foundationといった財団の影響力を活用することもできます。

では、これらの基盤の強みは何でしょうか?まとめると、次のようになります。

  1. 第三者保護の中立性:財産権中立性、貢献中立性、ブランド中立性、合意確認。
  2. 基盤内のエコシステム: Apache Foundation と Big Data & AI、CNCF と Cloud Native。
  3. 財団内のメンター: 問題発生時の経験豊富なガイドやキー オピニオン リーダー (KOL)。
  4. さらに、複数のプロジェクトがMeetupを通じて連携し、互いにサポートし合い、発見し合い、助け合います。

オープンソースプロジェクトの自己増殖

優れたプロジェクトは、マーケティングPRではなく、有機的に広がります。なぜなら、有機的な広がりは、小さなサークル内で爆発的に広がる可能性が大きいからです。ここで重要な要素は3つあります。製品の評判、個人の評判、そしてコミュニティの評判です。

製品の評判は、それが本当に使いやすく、便利で、スタイル、問題解決、実用性の点で独自の特徴を持っているかどうかを反映します。

製品の背後には、人の評判が支えています。製品の信頼性は、その関係者の間で良い評判を得ているかどうかにかかっています。コアチームとプロジェクトマネジメントチーム(PMC)の評判も非常に重要です。

コミュニティの評判、コードよりもコミュニティを重視する姿勢、コミュニティの雰囲気がオープンかクローズか、多様な意見を受け入れられるか、それとも少数の有力者だけが発言する独裁体制か。コミュニティの評判は、オープンソースプロジェクトの最終的な成果に直接影響を及ぼします。

オープンソースプロジェクトの推進の影響

影響力には、人、ユーザー、コミュニティという 3 つの側面があります。

一般的に、特定の分野に特化した専門家は、より多くのユーザーにリーチし、十分なリソースを見つけるのに十分な影響力を持っているため、オープンソース プロジェクトで成功する可能性が高くなります。そのため、初期段階でプロジェクトを急速に発展させることができます。

関連分野の専門家の影響力だけでは十分ではありません。ユーザーのレベルも重要です。ユーザーの大部分が大企業出身者であったり、ある程度の知名度を持つ人であれば、彼らの影響力を合わせることで驚くべき成果を上げることができます。

コミュニティが財団に参加するかどうか、そして主要メンバーとユーザーのレベルは、その影響力を直接左右します。コミュニティが適切に管理されておらず、閉鎖的で、人気がなく、十分に活発でなければ、たとえ最高のコードであっても最終的には無駄になってしまいます。

オープンソースプロジェクトの持続可能な開発の閉ループロジック

オープンソースプロジェクトが発展し続けるためには、情熱に溢れる開発者だけに頼ることはできません。フルタイムの開発者がさらに必要です。熱心な開発者の貢献だけに頼るだけでは到底足りません。結局のところ、誰もが生計を立てなければなりません。

オープンソースプロジェクトが持続可能な開発を実現できるかどうかは、ソフトウェア保証システム、営利企業のエコシステム、そしてビジネスモデルに左右されます。これらの領域におけるクローズドループロジックを理解する必要があります。

オープンソースプロジェクトの持続的発展のための商業化

オープンソースプロジェクトの持続的な発展には、商業化が不可欠です。世界的に、オープンソースプロジェクトの商業化の実現可能性は実証されており、その答えは「イエス」です。一般的に、商業化は主に4つのモデル、すなわちオープンコア、プロフェッショナルサービス、ホスティング、そしてマーケットプレイスで構成されています。もちろん、実際には、企業は複数のモデルを組み合わせることがよくあります。

今日、オープンソース企業が成功するための最も一般的なモデルは、コア製品をオープンソース化し、ホスティングやサービスを第二、第三の収益源として活用することです。この組み合わせがあなたの製品に有効であれば、良い選択肢となるかもしれませんが、商用製品とオープンソース製品を明確に区別する方法を検討する必要があります。

もちろん、これらのモデルが当てはまらない場合もあり、製品独自のビジネスモデルを見つける必要があるかもしれません。企業のスケールアップを可能にするモデルを見つけることに加え、選択したモデルが製品の特性と合致することが重要です。同様に、起業家とコミュニティ全体の目標とビジョンも重要です。

オープンソースプロジェクトの持続可能な開発のためのコミュニティ

持続可能なオープンソースプロジェクトでは、人や仕事は変化しますが、コミュニティは永遠です。持続可能な発展のためには、コミュニティは一人や少数の個人、あるいは単一の企業に頼ることはできません。コミュニティが活力と生命力を維持するためには、波のように盛衰に耐えられる必要があります。

要約すると、これは優れたオープンソースプロジェクトを構築するための12の原則の概要です。プレゼンテーションの終盤では、SeaTunnel、ClickHouse、DolphinSchedulerといった代表的なケーススタディを用いて、これらの原則を検証しました。より詳細な情報については、ライブオンラインコース「優れたオープンソースプロジェクトを構築するための12の原則」の録画をご覧ください。

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​。