Github Copiolt 提升生产力

349 阅读8分钟

为什么开发者生产力难以衡量?

关于开发者生产力如何衡量,达成共识挺困难的 —— 这方面的问题甚至比答案都多。例如:

1、什么是 “正确的” 生产力指标?[1,2]
2、开发者自我感觉良好,就真的是高生产力吗?[3]
3、传统的生产力观念(投入产出比)在涉及复杂问题解决和创造力的开发工作中是否还是适用的?[4]

我们在 2021 年的研究中发现,开发者对生产力的看法更多体现为 “幸福感”。也就是说,能够专注于手上的任务,获得有意义的进展,在一天工作结束时,感觉良好,会对开发者的满意度和生产力产生实质性的影响。

这不是偶然的,其他学术研究也表明,这是对开发者很重要的 [5],满意的开发者的绩效更好 [6,7]。开发者生产力,绝不仅仅是简单机械的投入产出比。

在 GitHub,我们如何思考开发者的生产力?AI 辅助开发是一个新领域,没有太多既有研究可以借鉴。我们期望能衡量 GitHub Copilot 的效果,但这个效果是什么呢?首先我们对用户做了一些早期观察和访谈,然后,我们调研了 2000 多名开发者,以了解他们在大规模使用 GitHub Copilot 过程中的经验。我们从三个方面定义了我们的研究:

1、整体看待生产力。

在 GitHub,我们倾向于从广泛的、可持续的角度思考开发者生产力及其影响因素。我们基于 SPACE 生产力框架来选择要调研的方面。

2、要包含开发者的第一视角。

我们进行了多轮研究,通过定性(感知)和定量(观察),以绘制一个全景图。我们希望验证:(a)用户的实际经验是否能证实了我们 “遥感” 视角的推断?(b)我们的定性反馈是否能泛化到我们庞大的用户群?

3、基于日常开发场景,评估 GitHub Copilot 的效果。在设计这个研究时,我们特别注意招募专业的开发者,并围绕开发者在一天内可能处理的典型任务进行设计和检验。

现在让我们深入了解这些发现!

发现 1:开发者的生产力不仅仅是速度

通过大规模调研,我们希望了解,使用 GitHub Copilot 的开发者,是否在任务加速之外,还有其他领域的好处。以下是一些显著的发现:

1、提高开发者满意度

60-75% 的用户表示,在使用 GitHub Copilot 时,他们对工作更加满意,编码时挫败感更少,能够专注于更有价值的工作。让开发者对自己所做的事情感觉良好,显然很棒!

2、节省精力

开发者报告称:GitHub Copilot 能帮助他们保持心流(73% 占比),并在重复任务中节省心力(87% 占比)。基于以前的研究,上下文切换和中断会破坏开发者的感受,而有些类型的工作则会消耗精力 [8,9]。从这个角度,这提升了开发者的幸福感。

下面是数据统计:

image.png

说明:上述调研涵盖 SPACE 框架的所有维度。SPACE 是一个多维框架的首字母缩写,描述了开发者生产力的几个方面:

  • 满意度和幸福感;
  • 绩效;
  • 活动;
  • 沟通和协作;
  • 效率和心流。

在本文中,我们关注 “满意度和幸福感” 和 “效率和心流” 的结果。这是对开发者生产力至关重要但往往被忽视的两个维度。图表展示的是受访者在多大程度上同意(非常同意 + 同意)对应的陈述。我们回收了超过 2000 份问卷,其中约 60% 是专业开发者,还有约 30% 是学生,约 7% 属于业余开发者

开发者认为 GitHub Copilot 是一种有效的生产力辅助工具,但并不仅限于此。一位用户这样描述他的体验:

(使用 Copilot)我不需要考虑那么多,我只需要思考其中最有趣的部分。它激发了创意,让编码变得更有趣和更高效。—— 来自一位高级软件工程师

我们从定性调研中得出的结论是,让 GitHub Copilot 承担开发中枯燥和重复的工作,可以减轻认知负担。这为开发者节省了更多精力,专注于需要复杂、关键性思考和问题解决的更有意义的工作,从而带来了更大的幸福感和满意度。

发现 2:速度提升也是显著

在调研中我们发现,开发者也同样认为,通过使用 GitHub Copilot,他们可以更快地完成任务,尤其是重复性的任务。这个发现是预期之中的(毕竟 GitHub Copilot 比人类写得更快),但高达 90% 的同意度,仍然令人惊喜。开发者普遍认为 GitHub Copilot 帮助他们更快地完成任务,我们能在实践中观察和测量这种效果吗?为此,我们进行了一项受控实验。

我们招募了 95 名专业开发者,随机将他们分为两组,并计时他们编写 JavaScript HTTP 服务器所需的时间。一组使用 GitHub Copilot 完成任务,另一组则不使用。我们尽可能控制了各种因素 —— 所有开发者都已经熟悉 JavaScript,我们给每个人相同的指导,利用 GitHub Classroom 自动对 commit 进行正确性和完整性的评分。在实验中,我们测量了每组平均完成任务的成功率和完成任务所需的时间。

image.png

结果显示,使用 GitHub Copilot 的组,在完成任务方面成功率更高(78% vs 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

随着 GitHub Copilot 的问世,不仅仅是我们在探索 AI 驱动的代码补全工具的影响!在生产力领域,我们最近看到了一项针对 24 名学生的评估,以及谷歌对机器学习增强代码补全的内部评估。更广泛地说,研究界正试图了解 GitHub Copilot 在多种背景下的影响:教育、安全、劳动力市场,以及开发者的实践和行为。我们目前都在尝试,在各种场景下使用 GitHub Copilot。这是一个不断发展的领域,我们为学术界(包括我们自己)在未来几个月里将揭示的发现感到兴奋。

总之,我们的研究发现,GitHub Copilot 在很大程度上提高了开发者的生产力,从而使他们在完成任务时更加迅速。此外,它还有助于节省开发者的心力,让他们能够专注于更令人满意的工作,从而提高工作满足感。

随着 GitHub Copilot 和其他 AI 驱动的代码补全工具的不断发展和完善,我们有理由相信这些工具将对软件开发行业产生深远的影响。在未来,我们将继续关注这一领域的研究发现,以了解这些工具如何在各个方面改变开发者的生产力和工作体验。