← 最新论文
💻 computer science

GitHub Copilot and Developer Productivity: An Observational Dose-Response Analysis

通过使用 16,223 名微软工程师在 43 周内的观测数据,并采用工程师内固定效应设计以控制个人技能与投入程度,本研究发现 GitHub Copilot 的使用与在等效编码时间内拉取请求(pull request)完成率 40.5% 的单调增长相关联,这表明存在真实的效率提升,而非仅仅是与本质上更繁忙的工作时段相关。

原作者: Alex Heilman, Alex Kyllo, Emerson Murphy-Hill

发布于 2026-06-02
📖 1 分钟阅读☕ 轻松阅读

原作者: Alex Heilman, Alex Kyllo, Emerson Murphy-Hill

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在试图弄清楚一双新型高科技跑鞋是否真的能让人们跑得更快。

最显而易见的方法是比较两组人:穿着这些鞋的人和穿着普通运动鞋的人。但问题在于,也许那些选择穿高科技鞋的人本身就是职业运动员,而穿运动鞋的人只是业余慢跑者。如果穿鞋的人跑得更快,那是鞋子的功劳,还是因为他们本身就是更优秀的跑者?

这正是微软研究人员在面对 GitHub Copilot 时所面临的难题,这是一款能帮助软件工程师编写代码的 AI 工具。他们想知道:使用 AI 真的让工程师更高效了吗?还是说那些使用 AI 最频繁的人,本身就是天生更高效的人?

更糟糕的是,这里还有第二层困惑。也许一名工程师在特定的一周内大量使用 AI,并不是因为 AI 有魔力,而是因为那一周正处于“冲刺期”,他们正在为一个巨大的项目每天工作 80 小时。如果是这样,他们完成更多工作(拉取请求/Pull Requests)仅仅是因为他们工作时间更长,而不是因为 AI 帮助他们工作得更

解决方案:“自我比较”实验

由于研究人员无法随机强制某些工程师停止使用该工具(这既不符合伦理,也会干扰他们的工作),他们使用了一个巧妙的技巧,称为**“工程师内部”(Within-Engineer)分析**。

可以这样理解:与其比较工程师 A(使用 AI)和工程师 B(不使用 AI),他们是将工程师 A 与他自己进行比较

他们观察了同一名工程师共 43 周的表现。

  • 第 1 周: 该工程师几乎没怎么使用 AI。
  • 第 2 周: 该工程师大量使用了 AI。

通过将工程师与自己进行比较,他们自动抵消了使工程师 A 不同于工程师 B 的所有因素(如天赋、职位角色或团队文化)。他们是在问:“当这个特定的人使用 AI 更多时,与他使用较少时相比,他的产出是否更高?”

“效率”测试:他们是在更努力地工作,还是更聪明地工作?

仍然存在一个棘手的变量:投入程度(Effort)
如果一名工程师大量使用 AI,他们可能也只是在电脑前写代码的时间从 5 小时变成了 10 小时。如果他们完成的工作更多,那可能仅仅是因为他们在桌前待的时间更长。

为了解决这个问题,研究人员使用了一个统计学“过滤器”(一种被称为 PPML 的模型),将编写代码所花费的时间保持恒定。

  • 问题是: “如果工程师 A 恰好编写了 8 小时的代码,那么在大量使用 AI 的周与不怎么使用的周相比,他完成的代码量是否更多?”

结果: 是的。即使在编写代码的时间完全相同的情况下,大量使用 AI 的工程师完成的代码项目(拉取请求)比完全不使用 AI 的周要多出约 40%

“证伪”系列测试:排除各种借口

研究人员知道怀疑论者会提出其他理由来解释这一结果。因此,他们运行了七种不同的“测谎仪”测试,以查看结果是否仅仅是偶然。

  1. “通用 AI”测试: 也许经常使用 AI 的工程师本身就很“精通技术”,并且会使用其他 AI 工具(如 Word 或 Excel 中的 AI),这让他们感觉自己很有生产力?

    • 测试: 他们检查了在非编程应用(如 PowerPoint)中使用 AI 是否能预测更多的代码产出。
    • 结果: 没有。在 Word 中使用 AI 并不能帮助编写代码。只有专门用于编程的 AI 才起到了作用。
  2. “团队热度”测试: 也许整个团队都处于一个“热度周”,所以每个人都在使用 AI,且每个人的代码量都增加了?

    • 测试: 他们检查了一名工程师的 AI 使用情况是否能预测其队友的代码产出。
    • 结果: 没有。如果仅仅是团队热度,你的 AI 使用情况应该能预测你邻座同事的产出。但事实并非如此。
  3. “任务切换”测试: 也许在 AI 使用密集的周里,工程师们只是停止了审查他人的代码,而将全部精力集中在了编写自己的代码上?

    • 测试: 他们检查了编写更多代码是否意味着审查了更少的代码。
    • 结果: 没有。工程师在使用 AI 时,编写的代码更多,同时也审查了更多的代码。他们并没有进行任务置换;他们是做的事情更多了。
  4. “切片”测试: 也许工程师们只是把大的项目拆成了许多微小的、容易处理的部分,从而让数据看起来很好看?

    • 测试: 他们观察了代码项目的规模。
    • 结果: 没有。最大的提升实际上出现在规模最大、最复杂的项目(7 个以上文件)中,而不是微小项目。
  5. “简单工作”测试: 也许他们只是在做一些简单的文书工作(比如更新文本文件),而不是进行硬核编码?

    • 测试: 他们将“简单的”配置文件与“困难的”代码文件分离开来。
    • 结果: 没有。生产力的提升在硬核代码文件中反而更加显著。
  6. “时效性”测试: 也许第 1 周的 AI 使用情况只是一个信号,表明工程师处于一种会持续到第 2 周的“高效状态”中?

    • 测试: 他们检查了上周的 AI 使用情况是否能预测本周的产出。
    • 结果: 没有。这种提升只发生在与使用 AI 完全相同的那个周

结论

这项研究得出结论:GitHub Copilot 确实提高了工程师的效率。

当一名工程师更密集地使用该工具时,他们在相同时间内完成的工作量大约增加了 40%。这不仅仅是说有生产力的人在使用工具,而是该工具本身似乎起到了“力量倍增器”的作用,帮助工程师在不需要延长工作时间的情况下完成更多工作。

然而,研究人员谨慎地指出:这项研究衡量的是效率(单位时间内的产出)。它并没有衡量总节省的时间。如果 AI 帮你把一项任务从一小时缩短到了 30 分钟,你的“效率”上升了,但你也可能因此提前结束工作。这项研究证明了速度的提升,但并未告诉我们工程师们究竟如何利用省下来的那部分时间。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →