你好,欢迎您来到福建信息主管(CIO)网! 设为首页|加入收藏|会员中心
您现在的位置:>> 新闻资讯 >>
开发者从人工智能编码助手那里收获甚少(如果有的话)
作者:CIO.com睿观 来源:CIOCDO 发布时间:2024年09月29日 点击数:

人工智能编码助手具有巨大的潜力,但其对开发效率的影响还需更多研究和实践验证。开发者应根据具体项目和团队情况,选择适合的工具,并合理利用AI辅助开发。

图源:Roman Samborskyi / Shutterstock


代码分析公司在衡量关键编程指标时未发现人工智能开发工具带来重大益处,尽管其他人报告称编码助手在强调代码审查方面带来了渐进式的收益。

在生成式人工智能的热潮中,编码助手显然是一个早期的明显用例,但承诺的生产力提升却未能达到预期——如果真的有提升的话。

许多开发者表示人工智能编码助手使他们的工作效率更高,但最近一项旨在衡量他们产出的研究却发现没有显著的提升。根据来自Uplevel(‌是一个专注于提升工程师及其经理效率的企业服务公司,通过数据驱动的方法来提高团队的工作效率,使其能够做出最佳的工作表现。该公司利用机器学习和组织科学,通过综合用户在日常工作流程中的见解,支持行为改变,所有这些基于最佳实践和日历、GithubJiraSlack和参与度调查等工具中的数据。其目标是通过数据驱动的方式,帮助团队提升效率,从而更好地完成工作任务。的研究,使用GitHub Copilot(微软与OpenAI共同推出了一款AI编程工具,能够基于 GitHub 及其他网站的源代码,可根据上文提示为程序员自动编写下文代码。)还引入了41%更多的错误。Uplevel是一家从编码和协作数据中提供见解的公司。

该研究测量了pull request/PR(拉取请求,是两个仓库或同仓库内不同分支之间提交变更的一种途径,同时也是一种非常好的团队协作方式,常用于团队的代码审查等场景。)周期时间,即代码合并到存储库的时间,以及PR吞吐量即合并的拉取请求数量。研究发现使用Copilot(是微软在Windows 11中加入的AI助手,该AI助手是一个集成了在操作系统中的侧边栏工具,可以帮助用户完成各种任务。)的开发者没有显著的改进。

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

一、测量倦怠

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

Uplevel的研究是出于对人工智能编码助手变得无处不在时关于重大生产力提升说法的好奇,该公司的产品经理和数据分析师Matt Hoffman马特·霍夫曼说。GitHub(一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。)8月份发布的一项调查发现,97%的软件工程师、开发者和程序员表示使用了人工智能编码助手。

我们看到了不同的研究,有人说,这对我们的生产力很有帮助他说,“我们也看到一些人说,你知道吗?我有点需要更像一个代码审查员。’”

GitHub Copilot的一位代表对该研究没有评论,但指出最近的一项研究称开发者使用编码助手能够以快55%的速度编写代码。

Hoffman(霍夫曼说,Uplevel团队在进行研究时也期望看到一些生产力的提升。

我们团队的假设是认为PR周期时间会减少。”Hoffman(霍夫曼说,“我们认为他们能够编写更多的代码,并且我们实际上认为缺陷率可能会下降,因为你在使用这些生成式人工智能工具在代码发布之前帮助你审查代码。

Hoffman(霍夫曼承认,比起PR周期时间和PR吞吐量,可能有更多的方法来衡量开发人员的生产力,但Uplevel将这些指标视为开发人员输出的可靠衡量标准。

【睿观:PR周期时间和PR吞吐量是什么?



  • PR周期时间: 从开发人员提交代码变更请求(Pull Request,简称PR)到该变更被合并到主代码库所花费的时间。

  • PR吞吐量: 在一定时间内,成功合并到主代码库的PR数量。

  • 为什么它们是可靠的指标?

    • 直接反映代码交付: 这两个指标直接反映了开发人员将代码从开发阶段转化为生产阶段的速度和效率

    • 体现团队协作: PR周期时间还反映了代码审查和合并的效率,这涉及到团队成员之间的协作。

    • 数据可量化: 这些指标是可量化的,便于跟踪和比较。】



二、稍后再看

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

“我们听说人们最终比过去更多地成为这些代码的审查者,并且你可能会对代码会按照你期望的那样运行有一些错误的信心,”Hoffman(霍夫曼补充道,“你只需要密切关注正在生成的东西;它是否做了你期望它做的事情?”

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

定制软件开发公司Gehtsoft USA(是一家位于美国北卡罗来纳州罗利的定制软件开发公司,成立于2000年,专注于提供敏捷研发软件解决方案,公司提供的服务包括软件开发、Web应用开发和外包服务。拥有超过20年的成功创新经验,并且有着按时、按预算交付项目的可靠记录。的首席执行官Ivan Gekht(伊万·格赫特)表示,该公司的开发人员还没有看到基于large language model/LLM(大型语言模型。是使用深度学习算法处理和理解自然语言的基础机器学习模型。这些模型在大量文本数据上进行训练,以学习语言中的模式和实体关系。LLM可以执行多种类型的语言任务,例如翻译语言、分析情绪、聊天机器人对话等。)人工智能的编码助理的生产力大幅提高。Gehtsoft一直在沙盒环境中测试编码助手,但尚未在客户项目中使用它们。

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

——Ivan Gekht(伊万·格赫特),Gehtsoft首席执行官

使用大型语言模型来提高你的生产力需要大语言模型在其能力上与实际的人类具有竞争力,并且实际用户要知道如何最有效地使用大语言模型”他说,“大型语言模型不具备批判性思维、自我意识或思考能力。

Gekht(格赫特)补充道,编写几行代码和软件开发之间存在差异。他认为,编码就像写句子,而开发就像写小说。

软件开发90%是脑力活动——理解需求、设计系统以及考虑限制和约束,”他补充说,“将所有这些知识和理解转换为实际的代码是工作中更简单的部分。

Uplevel研究一样,Gekht(格赫特)也看到人工智能助手在编写代码时会引入错误。当使用不同的提示开发代码的不同部分时,人工智能生成的代码的每次新迭代最终都变得不太一致。

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

三、看到收益

云服务提供商Innovative Solutions(‌是一家专注于成长型企业领域的云服务提供商,这家公司专注于提供系统集成服务,为改装应用和原始设备制造商设计、制造、销售和服务航空数据设备、发动机显示系统、备用设备、主飞行制导和驾驶舱显示系统。其产品包括集成的飞行管理系统、平板显示系统、集成的备用装置、先进的全球定位系统接收器和自动油门,旨在减少飞行员的工作量并增强安全性。该公司向原始设备制造商和改造市场出售其产品,致力于提供集成的飞行管理系统和先进的导航解决方案,以优化航空操作的效率和安全性。此外,其还宣布推出基于亚马逊云科技和Anthropic技术构建的Tailwinds这使得企业领导者和软件工程师能够在应用程序中使用生成式AI技术,避免了传统软件开发所涉及的复杂操作、高成本和长周期的问题。的编码助手体验则大不相同。该公司的首席技术官Travis Rehl(特拉维斯·雷尔表示,使用Claude Dev(‌是一个集成了Claude 3.5 SonnetVSCode插件,旨在大大增强编程和开发体验。它具备处理复杂任务的能力,包括读写文件、从头创建整个项目以及在授予许可后执行终端命令。其功能包括代码生成、项目管理、自动化脚本执行、文件操作、交互式开发辅助、跟踪API使用情况、显示代码差异、流式显示命令执行输出等。GitHub Copilot等编码助手,公司看到了显著的生产力提升。该公司还使用自主开发的Anthropic(是一家人工智能初创公司,由前 OpenAI 员工创立,成立于2021年,总部位于旧金山,致力于构建可靠、可解释和可控的人工智能系统。)集成来监控拉取请求并验证代码质量。

Rehl(雷尔看到开发者的生产力提高了两到三倍,这是基于开发者完成工单的速度、客户可交付成果的周转时间以及工单的质量(通过代码中的错误数量来衡量)。

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

尽管如此,Rehl(雷尔表示,关于编码助手的一些炒作——比比如它们将取代整个开发团队而不仅仅是补充或重塑团队的说法——是不现实的。编码助手可以用来快速替换代码或通过重新处理代码段来优化代码路径他补充说。

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

作者:Grant Gross格兰特·格罗斯

Grant Gross(格兰特·格罗斯)CIO的资深撰稿人,是一名长期的科技记者。他曾担任华盛顿记者,后来担任IDG新闻服务的高级编辑。在他职业生涯的早期,他曾担任Linux.com的总编辑和科技职业网站Techies.com的新闻编辑。在遥远的过去,他曾在明尼苏达州和达科他州的报纸担任记者和编辑。

译者:宝蓝

【睿观:人工智能编码助手具有巨大的潜力,但其对开发效率的影响还需更多研究和实践验证。开发者应根据具体项目和团队情况,选择适合的工具,并合理利用AI辅助开发。



(一)研究结论不一,潜力仍待挖掘

近期,人工智能编码助手在软件开发领域掀起了热潮,但其对开发效率的影响却存在争议。

  • Uplevel研究: 一项针对800名开发者的研究发现,使用GitHub Copilot等编码助手并未显著缩短PR周期时间或提高PR吞吐量,甚至可能引入更多错误。

  • 其他研究与实践:

    • GitHub的一项调查显示,97%的开发者使用过AI编码助手,并认为其提高了编码速度。

    • Innovative Solutions等公司表示,编码助手显著提升了开发效率,甚至将项目周期缩短了数倍。

    • Gehtsoft等公司则认为,AI生成的代码质量不稳定,调试成本高,且AI无法替代开发人员的创造性思维和决策能力。

(二)影响因素与挑战

  • 衡量指标: PR周期时间和PR吞吐量并非衡量开发效率的唯一指标,代码质量、创新性等因素也需考虑。

  • 工具成熟度: AI编码助手仍处于发展初期,其能力和可靠性有待提升。

  • 使用方式: 开发者对工具的熟练程度、团队协作方式等因素也会影响效率。

  • 代码复杂度: 对于复杂项目,AI生成的代码可能难以理解和维护。

(三)未来展望

  • 持续优化: AI编码助手将不断发展,在代码生成、代码补全、代码审查等方面提供更强大的功能。

  • 人机协作: 人工智能将成为开发人员的助手,而非替代品。开发者需要掌握如何有效利用AI工具,提高工作效率。

  • 关注质量: 在追求效率的同时,开发者应重视代码质量,避免因过度依赖AI而引入错误。

(四)关键点

  • 争议性结论: 不同研究对AI编码助手效果的评估不一致。

  • 影响因素多元: 除了工具本身,开发者、团队、项目等因素都会影响效果。

  • 未来可期: AI编码助手有望在未来成为开发人员的得力助手。

(五)建议

  • 谨慎选择工具: 根据项目需求和团队特点,选择适合的AI编码助手。

  • 加强培训: 对开发人员进行AI工具使用培训,提高其熟练度。

  • 关注代码质量: 在使用AI辅助开发时,应加强代码审查和测试。

  • 持续评估: 定期评估AI工具的使用效果,并根据反馈进行调整。

关键词: 人工智能,编码助手,开发效率,PR周期时间,PR吞吐量,GitHub Copilot,Claude Dev

适合人群: 软件开发人员、项目经理、技术管理人员、对人工智能在软件开发领域应用感兴趣的人士。】