|
メトリクスを使用してフリーおよびオープンソース ソフトウェア (FOSS) コミュニティを追跡する場合、「どのメトリクスを追跡すればよいのか」という疑問が生じます。 この質問に答えるには、どのような情報が必要かを把握する必要があります。例えば、プロジェクトのコミュニティの持続可能性、コミュニティが問題にどれだけ迅速に対応するか、コミュニティがどのように貢献者を引き付け、維持し、失うかなどについて知りたいと思うかもしれません。必要な情報がわかれば、どのコミュニティ活動から必要な情報が得られるかを特定できます。幸いなことに、フリーソフトウェアおよびオープンソースソフトウェア(FOSS)はオープンな開発モデルを採用しており、ソフトウェア開発リポジトリに豊富な公開データを残しています。これらのデータを分析することで、有用な知見を得ることができます。 この記事では、プロジェクト コミュニティを分析するための多面的な視点を提供するいくつかのメトリックを紹介します。 1. 地域活動 コミュニティ全体の活動とその経時的な変化は、コミュニティの質を測る上で非常に有用な指標です。コミュニティの活動は、コミュニティのワークロードを最もよく表し、様々なタイプのアクティビティを追跡するために活用できます。例えば、コミット数は開発ワークロードとの関連性を最もよく示しています。質問数(チケット開設数)は、バグ報告数や新機能提案数を大まかに把握するのに役立ちます。メーリングリストのメール数やフォーラム投稿数は、公開討論がどれだけ行われたかを示します。 OpenStack アクティビティ ダッシュボードには、時間の経過に伴うコードレビュー後のプロジェクト コード コミットとコード マージの数を示すトレンド チャート (週次データ) が表示されます。 2. コミュニティの規模 コミュニティの規模は、参加人数を指しますが、参加形態によって大きく異なります。幸いなことに、通常はアクティブな貢献者のみに注目するべきです。アクティブな貢献者はプロジェクトのリポジトリに手がかりを残します。つまり、Gitリポジトリに保存されているコードの「author」フィールドを確認するか、問題解決に積極的に参加している人数を確認することで、積極的にコードに貢献している人の数を数えることができます。 「アクティビティ」(一部の人々が特定のことを行う)という概念は、様々な方法で拡張できます。アクティビティを追跡する一般的な方法は、相当量の作業を行った人数を確認することです。例えば、プロジェクトのコードへの貢献者は、通常、プロジェクトコミュニティに属する少人数のグループです。この少人数のグループを理解することで、コアワーキンググループ(例えば、コミュニティを率いる人物)について基本的な理解が得られます。 Xen プロジェクト開発ダッシュボードには、プロジェクトのメーリング リストの作成者数とコミット数の傾向が時間とともに表示されます (月次データ)。 3. コミュニティのパフォーマンス これまでは、主にアクティビティ数と貢献者数に関する統計に焦点を当ててきました。プロセスやユーザーの行動を分析することもできます。例えば、プロセスの完了にかかる時間を測定できます。問題の解決またはクローズにかかる時間は、報告されたバグの修正や新機能の実装など、タイムリーな対応が求められるプロジェクトが新しい情報をどれだけ適切に処理しているかを示す指標となります。コードレビュー(コード変更の提出から承認まで)にかかる時間は、提案された変更がコミュニティの期待に応えるまでにどれくらいの時間がかかるかを示します。 その他の指標は、主にプロジェクトが保留中の作業をどれだけうまく処理しているかに関するもので、例えば新規課題とクローズ済みの課題の比率や、未完了のコードレビューのキューなどです。これらのパラメータから、これらの課題の解決に十分なリソースが割り当てられているかどうかなどがわかります。 2015 年第 3 四半期の OpenStack 開発レポートでは、解決済みの問題と未解決の問題の比率、承認された変更提案と放棄された変更提案と拒否された変更提案の比率が示されました。 4. コミュニティの人口統計 貢献者が参加したり離脱したりするにつれて、コミュニティは常に変化します。参加や離脱に伴い、メンバーの年齢(参加した時点から数える)も変化します。コミュニティのメンバー年齢チャートは、こうした変化を時系列で視覚的に表しています。チャートは複数の横棒で構成されており、それぞれの棒はコミュニティに参加した世代を表しています。各世代の「獲得数」バーは、その時点でコミュニティに参加した人数を示しています。「維持数」バーは、現在もコミュニティで活動している人数を示しています。 世代を表す2本の横棒の関係は、維持率、つまりその世代のうちプロジェクトに現在も参加している割合を表しています。「Attracted(引き付けられた)」の横棒は、プロジェクトが過去にどれほど人気があったかを示しています。「Retained(維持された)」の横棒は、コミュニティの現在の年齢構成を表しています。 Eclipse開発者ダッシュボードに表示されるEclipseコミュニティの年齢表。6ヶ月ごとに再定義されます。 5. コミュニティの多様性 多様性は、コミュニティの回復力を維持する上で重要な要素です。一般的に、コミュニティの多様性が高いほど(関与する人々や組織の多様性が高いほど)、回復力は高まります。例えば、企業がフリーオープンソースコミュニティから離脱することを決定した場合、従業員の貢献度が5%の場合に生じる潜在的な問題は、85%の場合に生じる潜在的な問題よりもはるかに少なくなります。 ダニエル・グルノ氏が定義したポニーファクターは、「最も少数の開発者がコードコミットの50%を占める」という現象を指します。ポニーファクターに基づき、エレファントファクターは、従業員がコードコミットの50%を占める企業が最も少ないことを指します。これら2つの指標は、コミュニティがどれだけの人や企業に依存しているかを示す指標となります。 2015 年のクラウド開発プロジェクト数に関する統計では、クラウド コンピューティング分野のフリーおよびオープンソース コミュニティ プロジェクトにおける「小さな問題」が示されています。 コミュニティを評価する指標は他にもたくさんあります。どの指標を収集するかを決める際には、コミュニティの目標と、他にどのような指標が役立つかを検討してください。 |