世界を動かす技術を、日本語で。

AIが経験豊富なオープンソース開発者の生産性に与える影響の測定

2025年7月11日原文(metr.org)

概要

  • 2025年初頭のAIツールが 熟練OSS開発者 の生産性に与える影響をRCTで調査
  • AI利用時、開発に19%長い時間 がかかったという予想外の結果
  • ベンチマークや自己申告と現実の乖離が明確化
  • 結果の解釈や一般化には 慎重な検討 が必要
  • 今後もこの評価手法でAI進化の影響を追跡予定

2025年初頭AIツールのOSS開発者生産性への影響:RCTによる実証

  • 経験豊富なOSS開発者 16名を対象に ランダム化比較試験(RCT) を実施
  • 各開発者が実際に価値ある バグ修正・機能追加・リファクタ 等246件の課題を提供
  • 各課題ごとに AI利用可/不可 をランダムに割り当て
  • AI利用時は Cursor Pro+Claude 3.5/3.7 Sonnet 等、当時の最先端ツールを自由に使用
  • 各タスクの 実装時間を自己申告+画面録画 で計測
  • AI利用時、課題解決に19%長い時間 が必要という結果
  • 開発者はAIが 24%効率化 すると予想、実際は逆に 20%遅くなった と認識の乖離

ベンチマークと現実のギャップ

  • コーディングベンチマーク は現実性を犠牲にしてスケール・効率を重視
    • 自己完結型で文脈不要、 自動評価 中心
    • AI能力を 過大評価 する傾向
  • 一方、 人間とのライブ対話なし でAIが進捗しても小さなボトルネックで失敗することも
    • AI能力の過小評価 につながる可能性
  • ベンチマークスコアと実際の現場影響 は直結しない場合が多い

RCTの意義とリスク評価

  • AIが AI研究開発(R&D) 自体に与える影響評価の重要性
  • 急速なAI進歩 による監督や安全策の崩壊リスク
  • ソフトウェア開発生産性の実測 は、AIの全体的なインパクト把握に不可欠

実験方法詳細

  • 大規模OSSリポジトリ (平均22,000+スター/100万行超)に長年貢献してきた開発者を採用
  • 各自の通常業務に近い 実課題 を対象
  • AI利用可否を課題単位でランダム割当
  • 1課題平均2時間、完了後に 自己申告+録画提出
  • 報酬は1時間あたり$150

主な結果

  • AI利用時、19%の作業遅延
  • 開発者の認識と 実態の乖離
  • 期待と逆の結果に驚き
  • AIの即時的な生産性向上効果は限定的

解釈の注意点

  • 本研究は「AIが すべての開発者他分野 で遅延をもたらす」とは主張しない
  • 対象開発者やリポジトリの代表性 は限定的
  • AIの進化や使い方次第 で今後の結果は変わる可能性
  • プロンプトやツール運用の最適化 で速度向上の余地

遅延要因と追加分析

  • 20の要因 を分析し、5つが遅延に寄与と推定
  • 実験手法・データ分析 の多角的検証で結果の頑健性を確認
  • AI利用・非利用でPR品質差はなし
  • 詳細は論文参照

ベンチマーク・自己申告・RCTの比較

  • RCT :現実的な大規模OSSコードベースでのPR提出
  • ベンチマーク :自動評価・スコープ限定の課題でAIが高スコア
  • 自己申告・アネクドート :AIは多くの人にとって有用との報告
  • 現実タスクでの遅延ベンチマークでの高成績自己申告での高評価 が並立

なぜ結果が食い違うのか

  • RCTがAI能力を過小評価 している可能性
  • ベンチマーク・自己申告が過大評価 している可能性
  • 評価手法ごとに異なるタスク分布を測定 している可能性
  • 「真の能力」と測定値の間に誤差やバイアス が存在

今後の展望

  • 今後も同様のRCTを継続 し、AIツールの進化と生産性への影響を追跡
  • 評価手法ごとの 長所・短所を理解し、多様な手法で包括的にAIの現状把握 が重要
  • AIツールの利用経験や学習効果 も今後の注視ポイント

要点まとめ

  • 2025年初頭のAIツールは 熟練OSS開発者の生産性を即時に高めなかった
  • AI活用の現実的な効果測定 の重要性
  • ベンチマーク・自己申告・現実測定 の差異を理解しながら、AIの進化を継続評価

Hackerたちの意見

開発者たちはAIが彼らの作業を24%速くすると期待していたけど、実際に遅れを経験した後でも、AIが20%速くしてくれたと信じているみたい。これには二つの課題があると思う。一つは、同じ人が同じ状況でAIなしでタスクをどれくらいの時間で終わらせたかを把握するのが難しいこと。もう一つは、PRがオープンされたりマージされたりするまでの時間を計測するのが魅力的だってこと。でも、AIのワークフローはエンジニアリングの時間を根本的に変えるから、リファクタリングやテスト、問題解決にかかる時間が増えるんだよね。初めにコードが承認されてマージされた後でも、そういう作業が続くから、開発者がAIがタスクをすぐに終わらせたって報告するのは簡単だと思う。PRが早くオープンされたからって、将来的にそのPRが生む作業量を無視しちゃうんだ。

生産性の向上や低下を特定の技術やプラクティスに結びつけるのは本当に難しい。自己報告の逸話には慎重にならざるを得ない、簡単に自分を欺けるからね。どちらの方向にも主張はしないけど、著者たち自身も研究の限界を認識しているし、みんなもっと大きな誤差範囲を持つべきだと思う。この技術は、私の人生で見た中で一番変なもので、逸話や疑わしいベンチマークから生産性を推測するのは、まるで茶葉を読むようなものだよ。

図21を見ると、初期の実装時間(PRまでの時間)は増加しているけど、レビュー後の時間はさらに増えているね(でも、トータルには大きな影響はなさそう)。でも、図18では、実際にコーディングに費やす時間が減っているのがわかる(これがスピードアップを感じる理由かも)。その分、AIの出力を促したり、待ったり、レビューしたり、全体的に待機している時間に取られているから、5分以内で自分でできるタスクにLLMを使うのはあまり良くないかもね。

質的には、AIが許可された条件と許可されていない条件の間でPRの質が落ちているのは見られないよ。参加している開発者たちは一般的に優秀で、自分のリポジトリの基準をよく理解しているし、「悪いPRを出す」雰囲気にはあまり興味がないみたい。研究のPRの中央値レビュー時間は約1分だよ。ただ、開発者たちの時間の使い方は全然違うから、これはいい指摘だね!論文の10ページ目[1]には、AIがある時とない時で開発者がどう時間を使っているかの内訳が見られるよ。一般的に、AIがあるときはコーディングに使う時間の割合が少なくなって、AIと作業する時間の割合が増える(これは…納得できるね)。[1] https://metr.org/Early_2025_AI_Experienced_OS_Devs_Study.pdf

また80/20の法則だね。20%の時間で80%のところまで行けるけど、残りの20%を終わらせるのに80%の時間を使うことになる。いつもほぼ完成している感じがするから、埋没費用の誤謬も働いて、諦めたくなくなるんだよね。最近試したアプローチは、解決策を提供するのではなく、摩擦を取り除くために使うこと。プログラミングは自分でやるけど、忘れた小さな構文を取り除くために使って、速度を保つ感じ。ただ、提供される全体のコードは見ないようにしてる。アクティブに考えることで、自分が理解できるコードが生まれて、スキルの衰えも防げると思う。

そして残りの20%を終わらせるのに80%の時間を使う これは私のAI導入前の経験でもあったから、最初の部分の時間を取り戻すのは助かる。関連して、経験豊富な開発者がAIについて言っていた良い意見の一つは、「私のスキルの90%が無価値になり、残りの10%が1,000倍価値が上がった」ってこと。ちょっと誇張はあるけど、言いたいことは分かる。

基本的にスタックオーバーフローのステロイド版が必要な時に一番役立つと思う。やりたいことは分かってるけど、この環境でどうやって実現するかが分からない時に使える。デバッグやラバーダッキングにも一般的に役立つよ。

既存のコードベースに何かを追加するのはめっちゃうまくいくよ。「この検索パラメータがあるから、fooも追加して」みたいな感じで。xに関するものは全部削除して…

以前は逆パレートみたいな感じで、80%の作業に80%の努力が必要で、残りの20%の作業にも80%の努力がかかってた。AIコーディングでやるべきことが分かれば、作業がすごく早くなるってのは確かだと思う。昨日、JavaのストリームAPIを使ってListオブジェクトから何かを削除しようとしてたんだけど、ConcurrentOperationsExceptionsに何度もぶつかってさ。これは複数のスレッドが同時にリストオブジェクトを変更しようとするから起きるんだよね。どのスレッドも他のスレッドによって変更されていない最新のリストのコピーを持ってるとは限らないから。リストをディープコピーして変更を加えてからそのコピーを返すメソッドを書こうと1時間くらい奮闘してたけど、AIにスレッドセーフなリスト変更メソッドを作ってもらったら、「もちろん、こうやってやるけど、君が使ってるAPIにはもうこれをやるメソッドがあるよ」って言われた。こういうケースこそ、AIがめちゃくちゃ役立つんだよね - 複雑だけど明確な問題。

古い開発者として、これが本当に欲しいものなんだよね。文法エラーを自動で修正してくれる機能があれば、コンパイルと編集のサイクルを少し減らせるんだ。

同意!「いつももう少しでできそう」って感じが時間を無駄にするよね。AIは特に、何か役立つことをしているように感じさせるのが得意だから、真実を見極めるのはかなりのスキルが必要だよ。

技術的負債の破産寸前のオープンソースのメンテナーとして、AIは救世主のように感じてる。依存関係やビルドシステム、リリース手法、イディオムの急速な変化についていくのを助けてくれるから。

Hacker Newsで議論の続きを見る