OSSの工数見積りを変える方法 — OSS effort estimation using software features similarity and developer activity-based metrics

田中専務

拓海さん、最近部下に「OSSのデータで開発工数が見積れる」と言われて不安なんです。要するに、うちの試作品を作るのにどれくらいお金がかかるか、もっと正確に知れるという話ですか?

AIメンター拓海

素晴らしい着眼点ですね!大丈夫、一緒に整理しますよ。今回紹介する研究は、オープンソースソフトウェア(OSS)を大量に分析して、ソフトウェア説明の類似度と開発者の活動データから工数を推定する方法です。要点は三つです:データを集めること、説明文の類似度で参考プロジェクトを見つけること、そして実際のコミットやコード追加を基に数値化することです。

田中専務

なるほど。データを使うとは聞くけれど、うちみたいな小さなプロジェクトにも使えるのですか。データ収集にどれほどコストがかかるのか心配でして。

AIメンター拓海

大丈夫です。ここがこの研究の良い点ですよ。研究チームはGitHub上の約13,000リポジトリから自動的に情報を集めています。つまり、既存の公開データを活用するため、特別なセンサーや高額なライセンスは不要です。費用対効果で考えると、最初に整備する工数はありますが、見積精度の向上で回収できる可能性がありますよ。

田中専務

説明文の類似度というのは、要するに書かれた言葉を比べて「似ている」プロジェクトを探すということですか。それで過去の実績を参考にする、と。

AIメンター拓海

そのとおりです!研究ではParagraph Vectorsという文章を数値化する手法でリポジトリの説明をベクトル化しています。身近なたとえを使うと、商品カタログの説明文を数値に変えて「似た商品」を自動で探すイメージです。似た説明のプロジェクトの開発活動データを集めて、あなたの構想に必要な工数を推定できますよ。

田中専務

これって要するに、過去に似たような説明を書いたプロジェクトの「作業履歴」を借りてくるということですか?

AIメンター拓海

まさにその理解で合っていますよ。良い着眼点ですね!加えて、単にリポジトリ数だけを見るのではなく、コミット数やコードの追加・削除といった開発者の活動(developer activity)を数値化することで、より実態に近い工数の推定を目指しています。短い時間で概算を出したい時に適しています。

田中専務

ただ、GitHubのデータってバラバラじゃないですか。品質の違いとか、開発スタイルの違いが結果に影響しそうで。うちの現場で信頼して使えるかどうかが気になります。

AIメンター拓海

鋭いご指摘です。研究でも同様の懸念を扱っており、約13,000リポジトリという大規模データと統計的手法でノイズの影響を低減しています。さらに、Standard Accuracyという評価指標で87.26%という高いスコアを達成しており、単純な線形基準より改善しています。つまり、適切に使えば現場の意思決定に役立つ情報が得られるのです。

田中専務

なるほど。投入すべき投資はあるが、見積の精度が上がれば意思決定が早くなるということですね。では、これを社内で導入する際、最初に何をすればいいですか?

AIメンター拓海

良い質問ですね。まずは試しに一件、社内の企画書や要件定義の説明文を1件用意してください。それを基に、公開リポジトリで似た説明を自動検索して類似プロジェクトを抽出し、得られる活動指標を見る。最初は小さく試して、成果が見えたら運用に組み込む。要点は三つ:小さく試す、説明文を整える、現場の経験と照らすことです。

田中専務

分かりました。自分の言葉でまとめると、公開されている似たプロジェクトの説明を機械で探して、そのプロジェクトのコミットやコード増減を参考におおよその工数を出す。まずは一件で試して、結果を現場と比べて調整する、という流れですね。

AIBRプレミアム

関連する記事

AI Business Reviewをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む