使用AI编码助手的真实收益

代码分析公司认为,在衡量关键编程指标时,AI 开发工具并没有带来重大好处,但其他公司报告称,编码助手在代码审查方面取得了增量收益。

编码助手是生成式 AI 淘金热中一个明显的早期用例,但承诺的生产力改进并未达到标准——如果它们真的存在的话。

许多开发人员表示,AI 编码助手使他们的工作效率更高,但最近一项旨在衡量其产出的研究发现,并没有显著的收益。根据 Uplevel 的研究,使用 GitHub Copilot 还引入了 41% 以上的错误,Uplevel 是一家提供编码和协作数据洞察的公司。

该研究测量了拉取请求 (PR) 周期时间,即将代码合并到存储库的时间,以及 PR 吞吐量,即合并的拉取请求数量。它发现使用 Copilot 的开发人员没有显著的改进。

Uplevel 使用其客户生成的数据,将大约 800 名开发人员在三个月内使用 GitHub Copilot 的产出与采用前三个月的产出进行了比较。

1、测量开发人员的倦怠情况

除了测量生产力之外,Uplevel 的研究还研究了开发人员倦怠(burnout)的因素,发现 GitHub Copilot 在这方面也没有帮助。使用编码工具的对照组和测试组在标准工作时间之外的工作时间都减少了,但当开发人员不使用 Copilot 时,工作时间减少得更多。

Uplevel 的产品经理兼数据分析师 Matt Hoffman 表示,随着AI编码助手变得无处不在,人们声称生产力大幅提高,因此他们进行了这项研究。 GitHub 于 8 月发布的一项调查发现,97% 的软件工程师、开发人员和程序员表示使用了人工智能编码助手。

“我们看到不同的研究表明,人们说‘这对我们的生产力确实有帮助’,”他说。“我们还看到一些人说,‘你知道吗?我有点不得不成为一名 [代码] 审阅者。”

GitHub Copilot 的一位代表没有对这项研究发表评论,但指出最近的一项研究表明,使用编码助手,开发人员能够将代码编写速度提高 55%。

Hoffman 说,Uplevel 团队也参与了这项研究,希望看到一些生产力的提高。

“我们团队的假设是,我们认为 PR 周期会缩短,”Hoffman 说。“我们认为他们将能够编写更多代码,我们实际上认为缺陷率可能会下降,因为你正在使用这些新一代 AI 工具来帮助你审查代码,甚至在你将代码发布出去之前。”

Hoffman 承认,衡量开发人员生产力的方法可能比 PR 周期时间和 PR 吞吐量更多,但 Uplevel 认为这些指标是衡量开发人员产出的可靠指标。

2、稍后再回来查看

此外,Uplevel 并没有建议组织停止使用编码助手,因为这些工具正在迅速发展。

“我们听说,人们最终会比过去更多地成为这些代码的审阅者,你可能会错误地认为这些代码正在按照你的预期运行,”霍夫曼补充道。“你只需要密切关注正在生成的内容;它是否按照你的预期运行?”

在实际工作中,开发团队报告的结果好坏参半

定制软件开发公司 Gehtsoft USA 的首席执行官 Ivan Gekht 表示,该公司的开发人员尚未看到基于大型语言模型 (LLM) AI 的编码助手带来显著的生产力提升。Gehtsoft 一直在沙盒环境中测试编码助手,但尚未将其用于客户项目。

“理解和调试 AI 生成的代码变得越来越具有挑战性,故障排除变得非常耗费资源,因此从头开始重写代码比修复它更容易。”

—Ivan Gekht,Gehtsoft 首席执行官

“使用 LLM 来提高工作效率,既需要 LLM 在能力上与人类相媲美,也需要实际用户知道如何最有效地使用 LLM,”他说。“LLM 不具备批判性思维、自我意识或思考能力。”

Gekht 补充说,编写几行代码和成熟的软件开发是有区别的。他认为,编码就像写一个句子,而开发就像写一本小说。

“软件开发 90% 是大脑功能——理解需求、设计系统、考虑限制和约束,”他补充道。“将所有这些知识和理解转化为实际代码是这项工作中比较简单的一部分。”

与 Uplevel 的研究一样,Gekht 也发现人工智能助手会在代码中引入错误。当使用不同的专业开发代码的不同部分时,人工智能生成的代码的每次新迭代最终都会变得不那么一致。

“理解和调试 AI 生成的代码变得越来越具有挑战性,故障排除变得如此耗费资源,以至于从头重写代码比修复代码更容易,”他说。

3、看到收益

云服务提供商 Innovative Solutions 的编码助手体验大不相同。该公司的首席技术官 Travis Rehl 说,使用 Claude Dev 和 GitHub Copilot 等编码助手,该公司的生产力显著提高。该公司还使用自主开发的 Anthropic 集成来监控拉取请求和验证代码质量。

Rehl 看到开发人员的生产力提高了两到三倍,这是基于开发人员完成工单的速度、客户交付物的周转时间和工单的质量(以代码中的错误数量衡量)。

Rehl 的团队最近通过使用编码助手在 24 小时内完成了一个客户项目,而过去同样的项目需要大约 30 天的时间,他说。

不过,Rehl 表示,一些关于编码助手的炒作——比如说它们将取代整个开发团队,而不是简单地补充或重塑它们——是不切实际的。他补充说,编码助手可以通过重新编写代码段来快速替换代码或优化代码路径。

“对编码助手的期望应该有所缓和,因为它们不会在第一次尝试时编写所有代码,甚至不会编写所有正确的代码,”他说。“这是一个迭代过程,如果使用得当,开发人员可以将编码速度提高两到三倍。”


原文链接:Devs gaining little (if anything) from AI coding assistants

汇智网翻译整理,转载请标明出处