オープンソースにおける長期貢献者の予測
リサーチでオープンソースプロジェクトの開発者の維持に影響を与える重要な要因が特定された。
― 1 分で読む
長期貢献者(LTC)は、オープンソースプロジェクトに長期間積極的に参加する開発者のことだよ。彼らは知識やコードを共有することで、プロジェクトに価値をもたらしているんだ。でも、多くの開発者は早い段階でこうしたプロジェクトを離れちゃう。どの開発者がLTCになりそうか予測できれば、プロジェクトのメンテナーは早い段階でリソースや指導を提供できて、継続してもらいやすくなるんだ。
開発者は、特にプログラミング言語のスキルを学んで成長するためにオープンソースプロジェクトに参加することが多いんだ。彼らが身につけたスキルは、プロジェクトに関わり続けるかどうかに影響を与えることがあるよ。開発者のプログラミング言語スキルをマッピングして、プロジェクトがどのようにこれらの言語を利用しているかを理解すれば、どの開発者がLTCになりやすいかを特定できるんだ。これまでの研究は他の側面に焦点を当てていて、プログラミング言語スキルは考慮されていなかった。この研究は、Javaプログラミング言語の知識ユニット(KU)を調査してLTCを予測することを目指しているんだ。
知識ユニット(KU)の理解
KUは、プログラミング言語における主要な能力を表すんだ。Javaの場合、基本的な構文やAPIが提供する特定の機能、例えば同時実行のためのスレッド作成などが含まれるよ。各KUは、開発者がアプリケーションを構築するために使える関連スキルのグループなんだ。これらのKUに対する開発者の関与を分析することで、彼らの専門知識を洞察し、オープンソースプロジェクトへの貢献を予測できるんだ。
研究方法論
データ収集
この研究を行うために、GitHubから75のアクティブなJavaプロジェクトを選んだよ。フォロワーが多いプロジェクトに絞ったんだ。プロジェクトのコミットデータとプルリクエスト情報を集めることにフォーカスしたよ。
最初のステップは、これらのプロジェクトに貢献した開発者のデータを集めることだったんだ。正確性を保つために、GitHubのアカウント情報とコミットで使われた名前を慎重にリンクさせたよ。このステップで、研究対象のプロジェクトに確実に関与している開発者のみを考慮できたんだ。
長期貢献者の定義
開発者が大量のコードをコミットして、プロジェクトに長く関与している場合、その開発者はLTCと分類されるよ。この研究では、開発者の活動を1年、2年、3年という異なる時間枠で見たんだ。
特徴エンジニアリング
KULTCという予測モデルを作ったんだ。これは、KUベースの特徴を5つの異なる次元で使っているよ。これらの次元には次のことが含まれるんだ:
- 研究対象プロジェクトの開発者の専門知識:これは、研究対象プロジェクトへの貢献の初期段階で開発者が示すスキルを指すよ。
- 以前のプロジェクトでの開発者の専門知識:これは、研究対象プロジェクトに参加する前の他のプロジェクトから開発者が得たスキルを考慮しているよ。
- 研究対象プロジェクトでの協力者の専門知識:これは、同じプロジェクトで開発者が協力している仲間のスキルを捉え、経験豊富な開発者と一緒に働くことの影響を強調しているんだ。
- 研究対象プロジェクトの特性:これは、新たに参加した開発者とプロジェクトの属性を描写して、開発者の興味との整合性を示しているよ。
- 以前のプロジェクトの特性:これは、開発者の過去のプロジェクトと、それが研究対象プロジェクトで必要とされるスキルとどのように関係しているかを反映しているんだ。
モデルの構築
ランダムフォレストアルゴリズムを使って、研究中に収集した特徴に基づいてKULTCモデルを作成したよ。この機械学習アプローチは、分類タスクにおいて効果的だって知られているんだ。モデルのLTC予測能力を評価するために、曲線下面積(AUC)という指標を使ったよ。AUCのスコアが高いほど、予測性能が良いことを示すんだ。
主な発見
KULTCモデルのパフォーマンス
KULTCモデルは、中央値AUCが0.75以上に達することができて、強い予測性能を発揮したよ。既存のモデルと比較しても、特にプロジェクトへの初めの2年間のLTC予測においてKULTCはそれを上回ったんだ。
開発者の専門知識の重要性
分析結果は、プロジェクトに関与し始めてから最初の1ヶ月以内の開発者のスキルレベルが、彼らがLTCになるかどうかを決定する上で最も重要な要因だということを示したよ。プログラミング言語における専門知識の早期の示現が、彼らの継続的な貢献の可能性に大きな影響を与えたんだ。
より良い予測のための特徴の組み合わせ
KULTCの特徴と他のモデルの特徴を組み合わせることで、さらに強力な予測モデルであるKULTC+BAOLTCができたよ。この組み合わせたモデルは、さまざまな設定での予測をさらに向上させ、一部のケースではAUCが最大16.5%改善されたんだ。
コスト効率の良いモデル開発
さまざまな特徴を持つモデルを作るのは、リソースを多く消費しちゃうから、これに対処するために、KULTCDEVEXP+BAOLTCというよりコスト効率の良いモデルを開発したよ。これには、単一の特徴次元に焦点を当てながら、従来のモデルよりも優れた性能を発揮するんだ。このアプローチは特徴エンジニアリングプロセスを簡素化して、運用の負担を軽減しつつ、良好な予測能力を維持できるようにしてるんだ。
結論
この研究は、プログラミング言語のKUを使ってオープンソースプロジェクトでの長期貢献者を予測する効果的な方法を示しているよ。発見は、開発者のスキルやプログラミング言語における専門知識の重要性を強調していて、プロジェクトのメンテナーにとって貴重な洞察を提供してるんだ。潜在的なLTCを早期に特定することで、プロジェクトは彼らの成長と継続を支援するための積極的なステップを踏むことができるんだ。
今後の研究では、KUの使用を他のプログラミング言語に拡大したり、モデルの予測を向上させる追加の特徴を探求したりすることが目指されるべきだよ。このアプローチはオープンソースプロジェクトの持続可能性を向上させて、開発者コミュニティをより良くサポートする助けになるんだ。
タイトル: Predicting long time contributors with knowledge units of programming languages: an empirical study
概要: Predicting potential long-time contributors (LTCs) early allows project maintainers to effectively allocate resources and mentoring to enhance their development and retention. Mapping programming language expertise to developers and characterizing projects in terms of how they use programming languages can help identify developers who are more likely to become LTCs. However, prior studies on predicting LTCs do not consider programming language skills. This paper reports an empirical study on the usage of knowledge units (KUs) of the Java programming language to predict LTCs. A KU is a cohesive set of key capabilities that are offered by one or more building blocks of a given programming language. We build a prediction model called KULTC, which leverages KU-based features along five different dimensions. We detect and analyze KUs from the studied 75 Java projects (353K commits and 168K pull requests) as well as 4,219 other Java projects in which the studied developers previously worked (1.7M commits). We compare the performance of KULTC with the state-of-the-art model, which we call BAOLTC. Even though KULTC focuses exclusively on the programming language perspective, KULTC achieves a median AUC of at least 0.75 and significantly outperforms BAOLTC. Combining the features of KULTC with the features of BAOLTC results in an enhanced model (KULTC+BAOLTC) that significantly outperforms BAOLTC with a normalized AUC improvement of 16.5%. Our feature importance analysis with SHAP reveals that developer expertise in the studied project is the most influential feature dimension for predicting LTCs. Finally, we develop a cost-effective model (KULTC_DEV_EXP+BAOLTC) that significantly outperforms BAOLTC. These encouraging results can be helpful to researchers who wish to further study the developers' engagement/retention to FLOSS projects or build models for predicting LTCs.
著者: Md Ahasanuzzaman, Gustavo A. Oliva, Ahmed E. Hassan
最終更新: 2024-05-22 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2405.13852
ソースPDF: https://arxiv.org/pdf/2405.13852
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://shorturl.at/dpKU4
- https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
- https://drive.google.com/drive/folders/1uaN8IUjrkhxcAT0lTyJbo_d72CB7hs1F?usp=share_link
- https://github.com/eclipse-jdt/eclipse.jdt.core/blob/master/org.eclipse.jdt.core.compiler.batch/grammar/java.g
- https://api.github.com/users/github-user-name/repos?per
- https://scholar.google.ca/citations?hl=en&pli=1&user=7H2HIWgAA
- https://www.gaoliva.com
- https://sail.cs.queensu.ca
- https://docs.github.com/en/rest/reference
- https://api.github.come/repos/elastic/elasticsearch/pulls?state=all
- https://api.github.com/users/username
- https://github.com/awsm-research/Rnalytica