AI编程助手风靡全球,Github Copilot是其中老大。它不仅能提升你的生产力,更让你充满幸福感。别再犹豫!现在就让老板为你买单吧!
标题:研究:量化GitHub Copilot对开发者生产力和幸福感的影响
在我们日常生活中,我们常常利用工具和养成习惯来实现更高效的成果。在软件开发领域,出现了许多工具和技术,旨在提升工作效率,但这也带来了决策疲劳的问题。在2021年,GitHub发布了Copilot技术预览版,旨在提高开发者的生产力。经过早期用户的反馈,我们的假设得到了证实。为了更好地了解Copilot对开发者生产力的影响,我们计划进行定量和定性研究。然而,在开始之前,我们需要解决一个问题:什么是生产力的定义?
为什么开发者的生产力如此难以衡量?
在衡量开发者生产力时,我们没有共识,问题比答案多得多。例如:
- 什么是“正确”的生产力指标?
- 自我报告的生产力价值有多大?
- 传统的以产出为导向的生产力观点是否适用于开发工作中涉及复杂问题解决和创造力的场景?
在我们的2021年研究中,我们发现开发者对于生产力的看法与其每天是否过得愉快有关。专注于手头任务、取得有意义的进展以及工作结束时的满意度,对于开发者的满意度和生产力产生了真正的影响。
这一发现并非孤立存在,其他学术研究也表明这些结果对开发者非常重要,满意的开发者表现更出色。显然,开发者的生产力不仅仅与输入和输出相关。
我们如何看待GitHub的开发者生产力?
由于AI辅助开发是一个相对较新的领域,作为研究人员,我们几乎没有什么以前的研究可以借鉴。我们想要衡量GitHub Copilot的效果,但是怎么去做呢?经过早期的观察和与用户的访谈,我们对超过2000名开发者进行了调查,了解他们使用GitHub Copilot的经验。我们的研究方法设计考虑到了三个要点:
- 全面的看待生产力。在GitHub,我们喜欢广泛而持久地思考开发者生产力以及影响它的诸多因素。我们采用了SPACE生产力框架来选择需要研究的方面。
- 包括开发者的第一手视角。我们进行了多轮研究,包括定性(感知)和定量(实观)数据,以呈现完整的情况。我们希望验证:
- (a)用户的实际经验是否证实了我们从遥测数据中推断出来的信息?
- (b)我们的定性反馈是否适用于我们的大用户群?
- 评估GitHub Copilot在日常开发场景中的效果。在设立我们的研究时,我们特别注意招募专业开发者,并围绕开发者在一天内可能会工作的典型任务设计测试。 那么,让我们深入研究并看看我们发现了什么!
让我们深入探讨一下我们的发现!
发现1:开发者的生产力超越了速度
通过大规模调查,我们想看看使用GitHub Copilot的开发者在加快任务完成速度之外,是否在其他方面也看到了好处。以下是一些突出的发现:
-
提高开发者满意度。60-75%的用户报告说,当他们使用GitHub Copilot时,他们对自己的工作感到更满足,编码时感到的挫败感减少了,能够专注于更令他们满意的工作。对于开发者来说,这是对他们工作感到满意的一次胜利!
-
保持脑力。开发者们报告说,GitHub Copilot帮助他们保持“状态”(73%),并在重复任务中节省脑力(87%)。这对于开发者的幸福感很重要,因为我们从以前的研究中知道,上下文切换和中断会破坏开发者的一天,而某些类型的工作会消耗精力。
那些图表在表达什么,如何正确阅读它们
📝 背景:在我们的调查中, 我们包含了涵盖SPACE框架的所有维度的陈述。SPACE是一个多维度框架的首字母缩写词,它描述了开发者生产力的几个方面: (1)满意度和幸福感;;(2) 表现;(3) 活动;(4)沟通与协作;(5) 效率和流程。在这篇文章中,我们主要关注“满意度和健康状态”以及“效率和流程”的结果。这两个维度对开发者的生产力至关重要,却常常被忽视。我们还正在准备更多的研究结果和数据,所以我们今天不能分享全部内容!
📊 图表所要表达的内容:下面的图表显示了同意相应陈述的受访者的比例(非常同意+同意)。我们收到的>2000的回应来自于在技术预览中注册的开发者。他们主要包括专业开发人员(约60%),尽管我们也从学生(约30%)和将编程作为兴趣爱好的开发者(约7%)那里收到了反馈。
如果您想回顾一下我们如何将生产力结果与开发者使用GitHub Copilot的程度进行相关性分析,请查看我们以前的博客文章和学术论文。
表:度量开发者在使用GitHub Copilot时生产力维度的调查报告
所有问题都是根据SPACE框架 进行建模的。
开发者将GitHub Copilot视为提高生产力的辅助工具,但它不仅限于此。一个用户描述了整体体验:
“(使用Copilot)我不必思考那么多,当我需要思考时,那说明出现了有趣的事情。这小小的火花使编码更有趣,也更高效。”——资深软件工程师
我们定性调查的结论是,让GitHub Copilot承担开发的枯燥和重复工作减轻了认知负担。这提供了给开发者一个更有意义且省心的空间,去从事需要复杂性、批判性思维和解决问题的工作,从而增加幸福感和满意度。
发现2:...但速度也很重要
在调查中,我们发现开发者报告使用GitHub Copilot可以更快地完成任务,尤其是重复性任务。这是一个预期的发现,毕竟GitHub Copilot的写代码速度比人类更快。令人惊喜的是,超过90%的人同意这一点。开发者普遍认为GitHub Copilot在帮助他们更快地完成任务方面发挥了作用。为了在实践中观察和衡量这种效果,我们进行了一项控制实验。
图:实验过程和结果的总结
我们招募了95位专业开发者,随机分成两组,并且计时他们写一个JavaScript的HTTP服务器需要多久。一组使用GitHub Copilot来完成任务,另一组则没有。我们尽可能地控制了所有的因素——所有的开发者都对JavaScript很熟悉,我们给所有人都提供了同样的指导,并且我们利用GitHub Classroom自动对提交的答案进行正确性和完整性的评分。我们会在即将发表的一篇博客文章中分享关于我们如何搭建实验的幕后故事!
在实验中,我们平均测量了每组完成任务的成功率和用时。
- 使用GitHub Copilot的那一组任务的完成率更高(78%,与没有使用Copilot的组的70%相比)
- 与此同时,明显的差异在于,使用GitHub Copilot的开发者完成任务的速度明显更快——比没有使用GitHub Copilot的开发者快55%。具体而言,使用GitHub Copilot的开发者平均在1小时11分内完成任务,而没有使用GitHub Copilot的开发者则需要平均2小时41分。这些结果在统计上有显著性(P=.0017),并且速度提升百分比的95%置信区间是[21%,89%]。
我们还有更多要发掘的!我们正在进行更多实验,并对我们已经收集到的实验数据进行更深入的分析——研究异质效应,或者潜在的对代码质量的影响——我们还在计划进一步的学术出版,以分享我们的发现。
这些发现对开发者意味着什么?
我们帮助开发者构建软件,并帮助提升工作效率和满足感。在我们的研究中发现,GitHub Copilot能够有效减少任务完成时间,让开发者节省精力,并专注于更有满足感的工作,从而在编码工作中获得更多乐趣。
我们也听到了一些反馈,早期尝试使用GitHub Copilot的工程领导者们对其带来的实质性好处表示赞赏。在考虑如何保持工程师健康和提高生产力时,他们通过关注全面的开发者福祉和推广愉悦工具的角度来思考问题。
对我而言,工程师们对探索新奇事物的热情,以及他们对我们提供的尖端工具的满意度是非常重要的。Copilot使得工作变得更加有趣。
- 某大型软件组织的CTO
AI驱动的代码自动补全工具Github Copilot推出后,我们并不是唯一一群在探索其潜在影响的人!在生产力领域,我们最近看到了对24名学生的评估,以及谷歌对增强型机器学习代码补全的内部评估。更广泛地说,研究界正在尝试了解GitHub Copilot在许多领域的影响:教育、安全、劳动力市场以及开发者的实践和行为。我们目前正在尝试在各种环境中使用GitHub Copilot进行学习。这是一个正在发展的领域,我们对于研究社区——包括我们——将在未来的几个月中发现的心得感到兴奋。
致谢
我们非常感谢参与调查和实验的所有开发者,没有您的参与,我们将一筹莫展!GitHub Next团队与微软首席经济学家办公室合作进行了实验,特别感谢Sida Peng和Aadharsh Kannan的合作。