フューチャー技術ブログ

The Apache Wayのお話

はじめに

こんにちは、フューチャーOSS推進タスクフォースの藤野です。

私が現在参加しているThe Apache Software Foundation(ASF)の基本理念の1つであるThe Apache Wayについて紹介します。

The Apache Wayを通して、ASFのことを少しでも知ってもらえたらと思います。

The Apache Wayとは?

この記事を読んでいる多くの方は、開発者や利用者等、様々な立場でOSSに何らかの形で関わりを持っていると思いますので、The Apache Software Foundationやそこで開発されているのOSSについていくつか程度の差はあれどご存知かと思われます。

The Apache Software Foundation とは、HTTPDやTomcat等、数多くのOSSプロジェクトの開発を支援している非営利団体で、世界で成功しているOSSコミュニティの1つです。

The Apache Wayとは、このThe Apache Software Foundationがどのようにプロジェクトを統治するのか、コミュニティ運営の基本指針のようなもので、ASFプロジェクトで長年にわたって使用されているコミュニティの振る舞いや運用方法のガバナンスモデルを提供します。

そしてこのThe Apache Wayは、コミュニティメンバーによって其々捉え方が異なり、多くの解釈があります。
今日は、このThe Apache Wayの(私的な)解釈をまとめてみました。

The Apache Wayの主要コンセプト

The Apache Wayを紐解くと4つに分割できます。そしてそのコンセプトは其々次の通りです。

  • MERITOCRACY(成果・実績主義)
    成果・実績によって評価され、統治され、その影響力は、公的に獲得したMerit、つまりコミュニティに貢献することに基づいています。
  • Community
    組織ではなく、個人がASFに参加します。
    相互に信頼し、互いに尊敬します。
    BDFL(Benevolent Dictators For Life)は許可されません。
  • Collaborative Development
    ASFのProjectは共同開発によって行われます。
    コミュニティはコラボレーションなしでは成長できません。
    コミュニティ全体で技術的な方向性を決定します。
  • Open Communications
    Codeと意思決定に関連するすべての議論はPublicにアクセス可能でなければなりません。

この4つの主要コンセプトをそれぞれ深堀りしてみましょう。

MERITOCRACY

まずは、MERITOCRACY(成果・実績主義)です。

ASFでは、すべての個人に対して参加する機会が与えられますが、その影響力は、公的に得られたMerit、つまりコミュニティに貢献した実績に基づいています。

では、そのMeritとは何でしょうか? Meritとは、コミュニティにとって有用な目に見える作業の実績です。そして、そのMeritはコード実績だけではありません。ほとんどのコミュニティは、ドキュメント、Webサイト、インフラストラクチャ、メーリングリストのヘルプ、およびバグレポートの等の貢献も高く評価しています。つまり、様々なロールのユーザがコミュニティに貢献することが出来ます。

また、Meritには様々な側面があります。

  • Meritは所属に関係なく個人にあります
    重要なのは、「あなたが誰であるかではなく、あなたが何をするか」です。
    Meritは貢献者の所属する組織や企業には全く影響を受けません。
  • Meritには有効期限がありません
    貢献者が、コミュニティへの参加をしばらくの間やめていたとしても、そのMeritは消えることはありません。後でコミュニティに戻ってきても、通常はコミュニティ内でのMeritを維持します。
  • Meritは譲渡できません
    あるコミュニティで得られたMeritは、必ずしも別のコミュニティで評価されるとは限りません。Meritの認識は、コミュニティによって大きく異なります。
  • より多くMeritを持っている人は、より多くの責任を得ます
    これはMeritの最も重要な側面のひとつです。貢献者のMeritに対する最も明白な報酬は、そのコミュニティ内のコミッターになることです。また、コミッターは、プロジェクトのリポジトリへの書き込みアクセス権を持っているので、コード、Webサイト等に直接貢献することが出来ます。 Meritを提供し続けているコミッターは、PMCになれる場合があります。
    つまり、誰でもコミュニティに貢献することは出来ますが、全ての貢献者がコミッタになれるわけではありません。私自身もコミッタになる前は3桁以上のパッチを提出しています。コミッタからPMCになるにも2年以上活動を継続しました。
    今コミュニティにいるコミッタやPMCは皆それぞれコミュニティへの大きな貢献によって、その地位にいます。

Community

次は、Communityです。ASFでは、Communityの定義について厳格に定められています。

ASFでは、取締役会、他の役員、コミッター、およびメンバーを含むすべての参加者は、個人として参加しています。決して、企業からの参加であってはなりません。

これは、ASFの強みの1つであり、完全なベンダーの中立性を保障します。しかしながら、実際、一部の企業には雇われコミッタのような方もいますが、そうったコミッタに関しても企業として参加しているのではなく、あくまで個人参加となります。その貢献実績は個人にのみあります。前述したMERITOCRACYにあるように、個人の貢献実績によってコミュニティ内の役割が決まるので、一部の企業が自由にそのプロジェクトのコミッタを追加することはできません。

では、あるOSSプロダクトをASFに寄与する場合(Apache Incubator)はどうでしょうか? この場合、開発者が特定の企業から構成されていることは良くあることです。そのような場合においても、Apache Incubatorの卒業要件(TLPへの昇格要件)としてコミッタの多様性、つまり、コミッタが様々な企業からであることを示さなければなりません。

また、コミュニティ内では参加者全員が相互に信頼し、互いに尊敬することを期待します。そして、その行動規範も明確に定義しています。

ASFのフラットな構造は、役職に関係なく参加者は同じ発言力を持ち、平等であるべきとされています。専門知識は高く評価されている一方で、BDFL(Benevolent Dictators For Life)は許可されていません。

そして、このCommunityにおいて、もっとも重要なコンセプトは「Community over Code」です。「Community over Code」とは、ASF内で非常に良く引用される格言で、健全なコミュニティが優れたコードよりもはるかに重要であることを明言しています。

優れたソフトウェアを創造することを目的とするASFが、その作り出されたプログラムコードそのものよりも、コミュニティ自体を大事にするASFの最も重要な特徴として強調されています。

Collaborative Development

ASFの各プロジェクトは共同開発によって行われています。

コミュニティ全体によって方向性を決定しするため、主要な決定事項については、コンセンサスを得ようと努めています。この際に行われる意思決定は怠惰なコンセンサスアプローチ(lazy consensus approach)で行われます。これは以下のような数字による投票で行います。

  • +1 賛成票
  • 0 棄権、意見なし
  • -1 反対票

コンセンサスは100%の合意を意味するものではなく、 コミュニティの合意には、-1の投票が無く、いくつかの+1の投票を獲得するだけで十分です。反対票には代替案または反対票の理由の詳細な説明を含める必要があります。また、投票は通常72時間(3日)ルールで行われます。

これはさまざまなタイムゾーンのプロジェクト参加者が意思決定に参加できるように、十分な時間(少なくとも72時間)の投票が可能であることを保障します。

Open Communications

ASFでは、その技術的な仕事はオープンに行われなければなりません。つまり、コードや技術的決定に関連するすべてのコミュニケーションが公開メーリングリストで行われる必要があります。メーリングリスト外の対談や会議でのディスカッションはすべての参加者がディスカッションして決定できるように、適切なメーリングリストに戻す必要があります。

コードや技術的決定に関連するプライベートな決定は許可されていません。私自身もApacheCon(ASF主催の国際カンファレンス)で他のコミッタ達とF2Fで議論することがあるのですが、そこで決めたことは、必ずその後開発用のメーリングリストに共有することを行っています。

もちろん、プロジェクトに非公開なメーリングリストはあります。しかしながら、ASFのすべての非公開メーリングリストには、セキュリティ問題など非公開にする特定の理由があります。

パブリックの場でできるだけ多くの仕事をするという概念は、The Apache Wayの基本であり、 オープンコミュニケーションは、誰もが自由にコミュニティに参加することを保障します。技術的な議論、コンセンサス、コードとドキュメントの作業をすべてオープンに行うことで、新しいユーザはメーリングリスト、アーカイブからプロジェクトの過去、現在、そして未来の方向性を知ることが出来ます。

まとめ

The Apache Wayの主要なコンセプトを述べました。

これまでをまとめると、The Apache Wayとは、

「ASFの各プロジェクトでは、個人参加の原則により、ベンダーの中立性を促進し、特定の企業からの過度の影響を防ぎます。メンバーはその貢献実績により評価され、影響力は完全に平等です。プログラムコードや技術的な意思決定等の議論は全てのオープンで透過的でコンセンサスベースで行われます」

と言い表せます。

さいごに

今回は私の解釈によるThe Apache Wayを述べました。

The Apache Wayは常に変化しフレキシブルで成長しています。

「There is no “one way” to The Apache Way. 」という言葉があります。

The Apache Wayは基本的な原則ではありますが、どう解釈するかは人それぞれです。このThe Apache Wayからも分かるように、ASFはコミュニティのガバナンスがしっかりしています。

そのため、これからコミュニティに参加しようと思っている人にとっては入り易いコミュニティだと思います。

ぜひ、参加してみてはいかがでしょう。