生成式AI将在十个方面改变软件开发( 二 )


【生成式AI将在十个方面改变软件开发】Sonatype的现场首席技术官Ilkka Turunen认为:“开发人员需要在维护和管理AI供应链方面发挥重要作用 。他们将会在企业的日常运营中,对AI模型的安全性、真实性和来源予以更严格的审查 。通过实施AI风险评估,并妥善管理AI模型物料清单,企业应确保开发基础架构拥有适当的AI安全和管理 。”
在实践中,SAST、DAST、以及其他安全与代码管理工具,能够提高代码扫描的自动化能力,并且可以在开发人员将代码集成到企业资源库之前,协助验证生成式AI的产出代码是否符合安全策略 。
5.新模式加速整合
在过去十年中,通过应用程序接口(API)、IFTTT的SaaS集成平台、集成平台即服务(iPaaS)、以及其他生态系统技术,开发人员的代码集成能力有了数量级的提升 。尽管如此 , 开发人员仍然需要做大量的基础性工作,来映射数据字段、编程逻辑转换、以确保可靠性与性能 。而利用生成式AI,开发人员可以构建出具备自然语言需求、可视化流程的无代码集成 。
供职于SAP AI与创新团队的Emmanuel Cassimatis认为:“过去 , 从设计、构建、测试、集成、部署、交付到审查,整个开发生命周期中的不同步骤向来是分散的 。而AI则可以从不同应用的数据中挖掘并实现一个统一的集成层面,从而加强开发人员之间的协作 。”
6.开发人员将成为AI代理的管理者
Honeycomb的首席产品经理Phillip Carter认为,生成式AI将改变开发人员和质量保证(QA)工程师未来的工作任务 。“将来,自然语言很可能会指导更多的代码生成和验证生成代码的测试 。其中,AI代理将完成大部分工作 , 而开发人员则需要为这些代理设定需要遵循的编程目标和约束条件 。”
Carter继续大胆地预测:“AI代理能够通过分析程序运行时的行为,检查未知的因素 , 以执行过去开发人员难以企及的QA、可观察性和安全任务 。”据此,开发人员可以高屋建瓴地从上层定义系统架构、非功能性、以及操作要求,从而指导生成式AI进行代码开发和自动测试,而非亲历亲为 。
7.AI被引入SDLC的多个阶段
虽然目前Copilots和许多生成式AI工具主要侧重于编程 , 但是其新的功能也会改变SDLC中的其他阶段 。Gigster的首席解决方案工程师Humberto Moreira认为:“随着生成式AI被纳入SDLC,不同的模型会有其最为适合的特定周期阶段 。例如,A模型可能会针对需求进行优化;B模型则是针对代码开发,而C模型却针对的是QA 。”
实际上,由于各类工具提供了更为强大的测试用例,并且能够对代码的更改提供更快的反馈,因此生成式AI模式的转变已经对QA产生了一定的影响 。Descope的联合创始人Gilad Shriki说:“随着AI的崛起,从SDK到测试、再到文档,所有围绕着软件工程的方方面面都会得到生成式AI的辅助 。开发人员甚至需要以特定的AI使用格式,来记录他们的工作 。”
8.生成式AI细分开发角色
生成式AI在软件开发中的角色可能会从目前传统的人类开发职能中分离出来 。也就是说 , 由机器扮演的不同代码生成器、编译器、以及其他开发细分角色会逐渐出现 。
Chainguard的工程副总裁Dustin Kirkland认为:“除了人类开发者熟悉的传统代码开发视角,另一种隐蔽的视角将会出现 。这种视角虽然对于人类的可读性较低,但是可以被由AI扮演的编译器和解释器完全领会 。它将作为另一种代码的中间层 , 提供所谓AI安全优化的防御视图 。”不过 , 也有人质疑:AI本身的安全识别能力是否准确、高效 。
9.AI提高开发过程的运营能力
LaunchDarkly的开发者体验总监Cody De Arkland提出了使用生成式AI、以及交互式学习,来协助提高软件应用的可靠性和操作性的用例 。其中包括:

  • 开发并生成符合已学到的、满足设计标准的Web应用组件
  • 在检测到开发人员创建了新的功能时,创建相应的功能标记
  • 启动新的软件部署(CI/CD) , 并能在发现问题时将其回滚
  • 通过定制运行而非部署后运行,为QA提供实时的反馈回路
当然,这些用例也伴随着一个问题:生成式AI将启用或增强哪些下一代开发和SRE能力 。
10.企业必须防范的AI风险
随着生成式AI更多地参与到整个SDLC中 , 一个新的问题可能会出现,即:生成式AI可能引发的知识产权(包括代码和数据)等风险 。为此 , 企业需要权衡其收益是否大于风险 。


推荐阅读