从去年 GitHub 推出 GitHub Copilot 技术预览版到今年正式上线,已过去了一年多。这款自称是“AI 编程助手”的工具,对开发者的帮助究竟有多大?GitHub Next 团队采用调查和实验的方式对该问题进行了研究,并表示得到了预期和意料之外的结果。
GitHub Next 团队表示,由于 AI 辅助开发是一个相对较新的领域,其研究人员没有可以参照的已有案例。所以,当他们想评估 GitHub Copilot 对开发者的影响时,不知从何入手。在对用户进行早期观察和采访后,他们对 2000 多名开发者进行了调查,以大规模了解他们使用 GitHub Copilot 的体验。研究人员在设计研究方法时考虑了三点:
- 从整体上看待生产力。在 GitHub,他们习惯广泛而可持续地思考开发者的生产力以及影响它的许多因素。他们使用 SPACE 生产力框架来选择要调查的方面。
- 参考开发人员的第一视角。研究人员设置了多轮研究,包括定性(感知)和定量(观察)数据,希望通过这种组合窥探全貌。他们想要验证:(a) 开发者的实际体验是否证实了他们从遥测数据中推断出的内容?(b) 他们的定性反馈是否适用于其庞大的用户群?
- 评估 GitHub Copilot 在日常开发场景中的效果。在设置相关研究时,特别招募了专业开发者,并围绕开发者在一天内可能完成的典型任务设计了测试。
基于此,研究人员得出了以下发现。
一、对开发者生产力的提升超过了开发速度
通过这些大规模调查,研究团队希望了解使用 GitHub Copilot 的开发者除了提升开发速度之外的其他收获。下面是值得关注的结果。
- 提高了开发者满意度。60% 到 75% 的开发者表示他们对自己的工作感到更加满意,在编码时感到不那么沮丧,并且在使用 GitHub Copilot 时能够专注于更令人满意的工作。对于对自己所做的事情感觉良好的开发者来说,这称得上是一个胜利。
- 有效保存精神能量 (mental energy)。开发者报告称,GitHub Copilot 可帮助他们一直处于“心流”状态 (73%),并在重复性任务期间保持脑力劳动 (87%)。这就是开发者的幸福所在,因为从之前的研究中知道上下文切换和中断会毁掉开发者的一天,并且某些类型的工作正在耗尽精力。
二、对开发速度的提升同样明显
在调查中,研究人员看到开发者报告说他们在使用 GitHub Copilot 时完成任务的速度更快,尤其是重复性任务。这是一个意料之中的发现(毕竟 GitHub Copilot 的写入速度比人类快),但超过 90% 的一致性仍然是一个惊喜。绝大多数开发者认为 GitHub Copilot 正在帮助他们更快地完成任务。
研究团队招募了 95 名专业开发者,将他们随机分成两组,并计算他们用 JavaScript 编写 HTTP 服务器所需的时间。一组使用 GitHub Copilot 完成任务,另一组没有。研究团队试图控制尽可能多的因素保持不变——比如所有开发人员都已经熟悉 JavaScript。
在实验中,团队平均测量了每组完成任务的成功程度以及每组完成任务所需的时间。
- 使用 GitHub Copilot 的小组完成任务的比率更高(78%,而没有使用 Copilot 的小组为 70%)。
- 显着的区别在于,使用 GitHub Copilot 的开发者完成任务的速度明显比不使用 GitHub Copilot 的开发者快 55%。具体来说,使用 GitHub Copilot 的开发者完成任务平均需要 1 小时 11 分钟,而未使用 GitHub Copilot 的开发者平均需要 2 小时 41 分钟。这些结果具有统计学意义 ( P=.0017 ),速度增益百分比的 95% 置信区间为 [21%, 89%]。
详情点此查看。