Gen AI 使软件开发人员的生产力大幅提高 - 但并不适合所有人
生成式人工智能带来了生产力优势,但 IT 专业人员必须对这些工具在当前版本中的大规模采用保持警惕。
对于任何构建软件的人来说,生成式人工智能(Gen AI)——尤其是像 GitHub Copilot 这样的工具——是一种快速创建、测试、记录和调试代码的方法,这可以带来巨大的生产力提升。
这种提升释放了软件开发人员和运营专业人员的时间、资源和脑力,以加强并填补组织内的咨询和领导角色。
然而,虽然生产力的优势显而易见,但人工智能可能不会让所有人受益,行业专家建议谨慎涉足自动化领域。
首先,一些背景。微软、麻省理工学院、普林斯顿大学和宾夕法尼亚大学的研究人员进行的一项多方研究表明,Gen AI 代码建议工具可以提高软件开发人员的工作效率。
该研究分析了 3 家公司的 4,867 名软件开发人员的产出,他们都可以访问 Copilot,发现每周完成的任务数量提高了 26%,代码更新数量增加了 14%,并且每周完成的任务数量增加了 26%,代码更新数量增加了 14%,并且每周完成的任务数量增加了 38%。代码编译次数增加的百分比。
整个行业的其他高管和专业人士一致认为,Gen AI 可以极大地提高软件开发人员的生产力。
“Gen AI 和 copilot 工具正在显着影响开发速度,”SAS 杰出软件开发人员 Brett Smith 告诉 ZDNET。
“人工智能可以帮助编写样板代码、单元测试和文档,使开发人员能够加速解决实际解决方案。生成式人工智能无疑彻底改变了软件开发游戏,成为全球开发人员的结对程序员。”
LexisNexis Risk Solutions 全球首席信息安全官 Flavio Villanustre 表示,生成工具可用于各种开发任务,例如“向现有代码库引入新功能或将代码库移植到新的编程语言”。
“这些人工智能工具还有助于软件考古学,这对于理解记录不足的代码库是必要的。此外,当必须创建测试用例时,人工智能可以作为有用的资源——尤其是在测试驱动的软件开发环境中。最后,但并非最不重要的一点是,人工智能工具可以帮助识别对特定项目有用的第三方库和框架。”
然而,这并不全是好消息——微软/麻省理工学院/普林斯顿大学/宾夕法尼亚大学的研究人员强调了一个重要的警告:对于经验丰富的开发人员来说,Gen AI 的好处会减弱。
他们表示:“经验较少的开发人员表现出更高的采用率和更大的生产力提升。” “Copilot 显着提高了新员工和初级职位人员的任务完成率,但不适用于任期较长和高级职位的开发人员。”
数字通讯服务 beehiiv 的增长主管 Edward White 同意,人工智能驱动的工具“对于经验不足的开发人员来说非常有用”。
“它们提供重构和优化的实时建议,指导初级开发人员在编码时采用最佳实践。这些工具可以识别效率低下或重复的模式并提出改进建议,使代码更干净、更高效。即时反馈可以帮助开发人员学习如何编写可维护的代码,遵循正确的命名约定,并使用更好的结构。”
然而,史密斯表示,尽管重点关注经验不足的开发人员,但长期的专业人士也可以看到 Gen AI 的好处。 “根据我的经验,经验丰富的开发人员从人工智能的帮助中受益匪浅,”他说。
“人工智能在编写样板代码方面非常高效,它使开发人员可以自由地做人工智能不擅长的复杂的定制事情。一般来说,经验较少的开发人员很难解决复杂的问题,而人工智能通常无法帮助他们解决问题。”那个方面。”
行业专家的证据表明必须实现平衡。无论 Gen AI 是由经验丰富还是缺乏经验的开发人员部署的,IT 专业人员和管理人员都必须对这些工具在当前版本中的大规模采用保持警惕。
Villanustre 表示:“虽然助手通常能够编写某些常用函数、与现有库合理交互、编写测试用例并解释现有代码,但它确实会犯一些熟练程序员会避免的错误。”
“这些基于人工智能的工具在处理更复杂的算法时也面临挑战,并且可能编写不安全或不安全的代码。在我看来,当前的人工智能工具与入门级程序员相当,但仍然需要更有经验的软件专业人员进行监控。 ”
史密斯还表示,Gen AI 工具提高的速度是一把双刃剑。 “开发人员编写糟糕的代码;人工智能帮助他们更快地编写糟糕的代码,”他说。
“团队生成的代码量的增加可能会带来比平常更多的错误和漏洞。这波新代码可能会很快压垮测试和安全团队。团队将需要自动化检查点、测试和安全扫描,以跟上战斗的步伐生成人工智能向前发展的邪恶方面。”
生成代码的质量也是一个问题。 Mendix 专家 David Brault 表示:“人工智能的好坏取决于它的训练。”训练数据可能包括“编写良好和不合格代码的组合”。这种混合可能会导致代码质量和一致性参差不齐,甚至可能会产生技术债务。
人工智能生成代码的另一个挑战是与现有系统不兼容的风险,尤其是复杂或遗留架构。
“虽然人工智能工具可以为特定任务生成有效的代码,但它们可能并不总是考虑旧系统的独特依赖性、框架或结构,”怀特警告说。
“如果人工智能生成的代码在没有经过彻底测试的情况下实施,这种不匹配可能会导致意外行为等问题,甚至导致中断。”
IT 专业人员还必须警惕在此过程中可能出现的法律问题。软件评论提供商 SoftwareHow 的首席营销官米拉·纳塔利亚 (Mira Nathalea) 表示:“使用人工智能生成的代码需要谨慎对待重复、知识产权和潜在的许可问题。”
“开发人员和公司应注意与未经验证的代码建议相关的风险。存在不知不觉中合并可能与项目许可要求不符的代码的风险,可能导致知识产权冲突。开发人员应仔细审查人工智能生成的建议,以维护代码质量和法律合规性。”
软件专业人员和管理人员还必须仔细管理基于人工智能的代码生成可能产生的道德问题。
“忽视道德考虑可能会导致意想不到的问题,例如隐私风险、数据滥用或算法偏差,”技术友好型日常携带物品制造商 Axwell Wallet 的首席执行官乔尔·波波夫 (Joel Popoff) 表示。
“当人工智能生成的代码未经仔细评估时,它可能不完全符合法规或道德标准,特别是在用户隐私和公平待遇等领域。”
波波夫表示,实施针对人工智能生成代码的道德审查程序以减轻此类风险非常重要。他说:“这包括定期审核人工智能输出,确保负责任地处理数据,并积极检查自动化决策中的偏见。”
“建立人工智能如何处理和使用数据的透明度有助于维持信任并使开发过程符合道德原则。”
因此,必须考虑一系列问题和关切。然而,如果负责任地使用人工智能,人工智能可能会彻底改变开发行业。
布劳特说:“在开发中使用人工智能的最大优势之一是能够自动执行开发人员讨厌的乏味和重复性任务,因为它们浪费时间并且几乎没有为解决方案增加任何商业价值。”
“相反,通过使用人工智能自动化这些低级例程,开发人员可以花更多时间寻找创造性的方法来解决影响其公司的复杂业务问题。如果有的话,开发人员将变得更有价值,因为他们的专业知识将需要验证和保护人工智能生成的代码,并构建可重用的组件、模板和框架,以建立将人工智能与现有系统集成的治理标准。”
