ソフトウェア工学研究の日々

ソフトウェア工学の学術研究を紹介しています。ソフトウェア開発に関する調査と実験が大好きです。

オープンソースソフトウェアプロジェクトの人口ピラミッド

オープンソースソフトウェア開発において、開発者の人数は非常に重要です。最近は企業に雇われてフルタイムで働く開発者も多くなっていますが、一時的にプロジェクトに関わってくれる人たち、単発で貢献してくれる人たちの貢献度も無視できません。

あるプロジェクトに参加している人たちの人数が今後も安定しているのか、増加あるいは減少するのか、ある程度でも予測できれば、プロジェクトの中の人にとってはプロジェクトの運営方針に、ユーザにとっては安心して利用し続けられるかどうか、考えやすくなる可能性があります。

そんな用途に、人口統計の可視化に使われる「人口ピラミッド」を使うことを試してみた研究がこちらです。

doi.org

通常の人口ピラミッドは男女別、年齢別での人数を可視化しますが、オープンソースソフトウェアプロジェクトでは、「最初にプロジェクトに関わったとき」出生という扱いにします。プロジェクトへの関わり方は色々ありますが、GitHub 上のアクティビティとして、コミットや Issue へのコメントなどを調べています。そして、最後の貢献から3か月以上経過したら、そのプロジェクトから去ったとみなして人口ピラミッドから取り除くことにします。このルールで実際に作ってみた例を以下に示します。

f:id:ishiotakashi:20190215221658p:plain

JQuery プロジェクト(2015年)の人口ピラミッド、上記論文から引用

左右は男女の別のかわりに、左側がコーディング以外で関わっている人、右側がコーディングで関わっている人という形で2つのグループに分けています。右側の白い部分は「以前はコーディング以外で貢献していた」人たち、黒は元々開発者として加わった人たちになります。

この図を見ると、少数の人たちが長期間に渡ってプロジェクトを支える一方で、多数の新しい人たちもプロジェクトに参加していることが分かります。プロジェクトによっては、1人の開発者だけがずっと頑張っていて、その人がやめた瞬間にプロジェクトが終わるというものもありますが、そういう状況を可視化できたら、誰かが(もし重要なプロジェクトであれば)終了前に引き継ぐことができるかもしれません。プロジェクトごとにそれぞれ事情もあるので、この可視化手法が常に有用であるとは主張しにくいのですが、プロジェクトがどんな状態かを考える方法の1つとして提案しています。

なお、この人口ピラミッドを使うと各年齢での人口の生存率が計算できるので、コーホート要因法という人口推計の手法が適用できます。論文では、やや単純ではありますが、「3か月後どうなっているか」をこの手法で予測してみて、「今と同じ人数がそのままいる」という単純な予測よりは、少し正確に予測ができることを確認しています。以下は、人口ピラミッドに、推計した値の線を書き入れたものです。

f:id:ishiotakashi:20190215222454p:plain

プロジェクト参加人数予測(線)と人口ピラミッドを重ねたもの、上記論文から引用

この手法ですぐに具体的な問題が何か解決できるようになるというわけではありませんが、ソフトウェア開発の社会的な側面を科学的に分析するという方法もあるのだということは示していると思います。