DUICUO

オープンソースプロジェクトを定義するための3つのコア要素

オープンソースは過去30年間で大きく発展し、今やオープンソース文化の象徴となっています。オープンソースプロジェクトについて語るとき、人々は次のような点を思い浮かべます。管理体制、製品プラットフォームの種類、プログラミング言語、ツール、技術的な詳細、企業がスポンサーとなっているか独立したプロジェクトかなどです。

しかし、オープンソース プロジェクトを真に定義し、他のプロジェクトと区別するものは何でしょうか? オープンソース プロジェクトを定義し、差別化するために使用できるのは、コード、コミュニティ、そしてブランドという 3 つの中核要素であると私は考えています。
1. 高品質なコード

コードこそが重要です。製品の機能はコードによって実装されます。これはオープンソースプロジェクト構築の第一歩、つまり有用なコードの作成でもあります。技術者はコードで何ができるのか、どのように実装されているのかに着目し、マーケティング担当者は製品が顧客の課題をどのように解決するのかに重点を置きます。そして、人々がオープンソースプロジェクトを探す際、まず最初に探すのはコードです。

シンプルに聞こえますが、なぜオープンソースプロジェクトをコードだけで定義できないのでしょうか?ソフトウェア開発者は、コードが動的かつ短命であることを知っています。オープンソースプロジェクトでは、コードの追跡が難しく、企業主導のプロジェクトほど制御できません。オープンソースコードは無限に変化します。コードが公開されライセンスされたオープンソースリポジトリに提出されると、誰でもアクセスして独自の目的で変更できるようになります。誰かがコードを使用して変更を加えると、そのコードはもはや当初のプロジェクトの一部ではなくなります。
2. 結束力のあるコミュニティ

コードがプロジェクトの「何」かを表すとすれば、コミュニティはプロジェクトの「誰」か、つまりそれを構築した人々を表します。コアコミュニティは、主に、コードを書くエンジニアや、フィードバックや改善のための具体的な提案を提供するエンドユーザーなど、プロジェクトを積極的に推進する人々で構成されます。より広いコミュニティには、管理者/進捗管理担当者、広報/マーケティング担当者、トレーニング担当者、財務担当者、採用サポート担当者など、コードを書くのではなくサポートを提供する人々も含まれます。コミュニティのガイドライン、エチケット、そして雰囲気は、オープンソースプロジェクトを区別するのに役立ちます。

一部のオープンソースプロジェクトへの参加は有償となる場合もあります(例えば、企業に雇用されているソフトウェアエンジニアが一定の割合の時間をオープンソースプロジェクトに費やすなど)。しかし、オープンソースコミュニティのメンバーのほとんどは、自発的に、無報酬で参加しています。したがって、メンバーの参加継続や離脱は、関心の高さ、担当業務の変更、あるいは雇用主の方針変更などによって左右されます。コードと同様に、コミュニティは常に進化し続けています。

特定のスキルを持つ人材を特定の業務に雇用できるエンタープライズソフトウェア開発プロジェクトとは異なり、オープンソースコミュニティへの参加は予測不可能で、プロジェクトの管理は困難です。有料プロジェクトと比較すると、個人的な対立が原因でメンバーがオープンソースコミュニティを離れてしまう可能性が高くなります。しかし、オープンソースコミュニティには、メンバーの熱意とモチベーション、成功したプロジェクトコミュニティの永続性、そして全員によるコードの同期と継続的な改善といった利点もあります。
3. プロモーション力のあるブランド

外部の世界は、ブランドを通してオープンソースプロジェクトについて自然に学びます。個人や企業がプロジェクトの利用や投資を選択する際、ブランドは類似プロジェクトとの差別化や参照に役立ちます。もちろん、他の詳細も考慮しますが、ブランドを通して理解する方が容易です。例えば、「Cloudera版、Hortonworks版、それとも新しくリリースされた他のODPのどれをサポートする必要があるのか​​」と考えるのではなく、「Hadoopをサポートする必要があるのか​​」と考えるでしょう。現在、Hadoopには主に3つの無料バージョンがあります。Apache(すべてのディストリビューションのベースとなり、改良されているオリジナルバージョン)、Cloudera版(Cloudera's Distribution Including Apache Hadoop、略称CDH)、Hortonworks版(Hortonworks Data Platform、略称HDP)です。

「ブランド」には、プロジェクトの正式名称、プロジェクトや製品のロゴ、さらにはプロジェクトのウェブサイトや製品のユーザーインターフェースの外観など、多くの要素が含まれます。ブランド化されたコンポーネントの中には、法的拘束力のある商標を使用しているものもあります。これには、公式ソフトウェア製品の名称やロゴも含まれます。

コードやコミュニティとは異なり、プロジェクトのブランドは不変です。商標は法的許可なしに恣意的に使用することはできず、コミュニティのメンバーが変わってもプロジェクトのブランドは変わりません。ブランドと商標は、ある程度まで管理と維持が最も容易です。しかし、プロジェクトの独自性を定義する重要なツールである商標の使用は、プロジェクト自体の中で見落とされ、軽視されることがよくあります。誰でもコードにアクセスでき、コミュニティメンバーが入れ替わることを考えると、プロジェクトのブランドと商標は、プロジェクトの長期的な存続と独立性を維持し、新しいプロジェクトメンバーがプロジェクトに引き続き参加できるようにする上で重要な要素となります。