ai的的软件 【人工智能】生成式AI将改变软件开发的10种方式

AI资讯1年前 (2024)发布 fengdao
42 0

90 年代的编码通常意味着选择编辑器,将代码签入 CVS 或 SVN 代码存储库,然后将代码编译为可执行文件。 和 等集成开发环境 (IDE) 通过在软件开发生命周期 (SDLC) 中包括编码、开发、文档、构建、测试、部署和其他步骤来提高工作效率。云计算和 自动化工具带来了下一波开发人员功能,使更多组织能够更轻松地开发、部署和维护应用程序。

生成式人工智能是下一次范式转变的催化剂,有望改变组织创建和维护软件的方式,并实现新的开发工具和范式。对于许多开发人员和 IT 领导者来说,问题是 AI 是否意味着我们所知道的编码的消亡。一个相关的问题是,它将如何影响未来十年 SDLC 和 的发展。带着这两个问题,我开始寻找想法和预测。

genAI是一种新的工具还是一种新的开发方式?

“我是代码的忠实信徒,在我 25 年的职业生涯中,我看到很多人押注代码,他们总是输,” 首席执行官 Joe Duffy 说。“人工智能将自动化和增强编码,而不是取代它,从而提高我们人类操作的抽象水平,大大提高生产力和产出。

这是一种观点。为了考虑其他人,我回到了经典。

在弗雷德里克·布鲁克斯( )关于软件开发的经典著作《神话般的人月》(The Man-Month)中,他分享了一项关于软件开发生产力的研究,该研究显示“在生产力测量方面,最佳和最差表现之间的比例平均约为10:1,在程序速度和空间测量方面,平均为惊人的5:1。在 1995 年出版的该书的 20 周年纪念版中,他重新发表了 1986 年的文章《没有灵丹妙药:软件工程的本质和事故》,该文章预测“十年内不会看到任何编程技术本身能够为软件生产力带来数量级的提高。

我们还不知道副驾驶和其他生成式人工智能编码能力是否会超过这些基准。

“生成式人工智能正在颠覆软件交付生命周期,” 的负责人 说。“开发和团队将变得更有生产力,更高比例的团队成员可能会实现与10倍工程师相似的产出”。

随着genAI能力的成熟和开发人员重新调整他们的职责,这种生产力的提高和软件开发技能的民主化可能是可能的。“目前形式的副驾驶实际上是关于开发人员的生产力和消除繁忙的工作,” 的首席技术官 Ed 说。“那些认为副驾驶已经从根本上改变了工作的人,是在错误地假设开发人员的工作是编写代码,而不是解决问题。

生成式 AI 将改变软件开发的10种方式

生成式人工智能将如何改变未来十年的软件开发?以下是 10 个预测:

从自然语言提示生成代码是标准

代码验证是开发人员的一项关键责任

制造业作为新的发展范式

编码更少,但代码供应链风险更大

新范式加速集成

开发人员管理 AI 代理

AI 触及 SDLC 的多个阶段

GenAI和人类发展角色的出现

AI 提高了开发流程中的运维能力

ai的的软件_矢量绘图软件ai_软件爱加速

组织必须保护自己免受 AI 风险的影响

从自然语言提示生成代码是标准

的气流工程总监 Kaxil Naik 说:“随着 AI 生成的样板代码和 AI 辅助副驾驶将自然语言转换为函数式代码,简化对复杂代码库的理解并确保遵守最佳实践,编码将变得更加高效。

的 2023 年开发者调查显示,70% 的开发者正在使用或计划在他们的开发过程中使用 AI 工具。在那些已经在开发中使用人工智能的人中,超过82%的人使用它来编写代码。这些数字表明,开发人员在开发代码、重用现有代码和构建组件的方式方面发生了范式转变。

代码验证是开发人员的一项关键责任

如果生成的代码存在安全问题、缺陷或引入性能问题,则提示输入代码的功能会增加风险。希望如果编码更容易、更快捷,开发人员将有更多的时间、责任和更好的工具来验证代码,然后再将其嵌入到应用程序中。但这会发生吗?

“当开发人员采用人工智能来提高生产力时,有必要有责任检查它产生的东西,”Sonar 开发人员关系主管 Peter McKee 说。“代码时清理可确保通过在交付过程中执行检查和持续监控,开发人员可以将更多时间花在新任务上,而不是修复人工创建或 AI 生成的代码中的错误。”

首席信息官和首席信息安全官希望开发人员执行更多的代码验证,尤其是在人工智能生成的代码引入重大漏洞的情况下。McKee补充道:“如果开发人员不实施自动化来扫描和监控AI生成的代码,则意味着需要修复的代码呈指数级增长,并且需要更多的技术债务。

制造业作为新的发展范式

关于使用 Gen-AI 工具开发代码的一个问题是,它将如何影响大型组织的工具和标准,这些组织有许多开发团队支持数千个应用程序。如果开发人员编写更少的代码,但集成更多 genAI 开发的代码,那么大型组织的开发会是什么样子?

“跨团队的工具组合导致缺乏标准和复杂的入职培训,更不用说它增加了开发人员的认知负担,”红帽开发人员工具战略和布道部门 说。“将最佳实践与通过集中式开发人员门户轻松访问相结合,可以改变这种状况。再加上应用平台的丰富功能,这有可能消除摩擦,并有助于跨团队边界应用最佳实践。

这意味着IDE可能会演变成装配平台,类似于制造业中的计算机辅助设计(CAD)或建筑中的建筑信息模型(BIM)。重点从构建自定义组件转移到组装预先存在的组件,并利用内置工具来验证设计。

编码更少,但代码供应链风险更大

使用genAI开发的代码的另一个含义涉及企业领导者如何制定政策并监控企业应用程序中嵌入的代码的供应链。到目前为止,组织最关心的是跟踪开源和商业软件组件,但genAI增加了新的维度。

现场首席技术官Ilkka 表示:“从业者将在维护和管理AI供应链方面发挥重要作用:基于AI的模型的安全性、真实性和起源将在企业的日常运营中受到更多审查。实施评估 AI 风险并正确管理 AI 模型物料清单的策略将有助于确保任何组织的 基础设施中适当的 AI 卫生和管理。

预计 SAST、DAST 和其他安全和代码管理工具将增强代码扫描自动化功能,并在开发人员将代码集成到企业存储库之前帮助验证 genAI 代码是否符合策略。

新范式加速集成

开发人员可以期待集成方面的新功能,在过去十年中,通过 API、IFTTT SaaS 集成平台、集成平台即服务 (iPaaS) 和其他生态系统技术,这些功能已经得到了几个数量级的改进。也就是说,开发人员仍然需要做很多工作来映射数据字段、代码转换逻辑、确保可靠性以及调整性能考虑因素。

SAP 人工智能和创新团队 表示:“在集成方面,开发生命周期历来非常分散,涵盖设计、构建、测试、集成、部署、交付和审查等不同步骤。人工智能可以通过从不同应用程序的数据中挖掘图片来实现统一,从而加强开发人员之间的协作。

开发人员使用 genAI 构建具有自然语言要求和自动生成的视觉流的无代码、自我修复集成只是时间问题。

开发人员作为 AI 代理的管理者

矢量绘图软件ai_软件爱加速_ai的的软件

首席产品经理 认为,genAI将改变开发人员和质量保证工程师未来将要完成的任务。“在遥远的未来,自然语言可能会指导更多的代码生成和测试,以验证生成的代码。如果我们看到像 这样的 AI 功能发生另一次巨大转变,我们可以预期 AI 代理将完成大部分工作,开发人员会为这些代理编程目标和约束。

继续大胆地预测,他说:“通过让 AI 掌舵的新转型,编程代理有可能能够分析 QA、可观测性和安全任务的运行时行为,以检查已知的未知数,这是开发人员经常陷入困境的。

我发现这个预测很有趣,因为它意味着开发人员和工程师将向上移动以定义架构、非功能和操作要求——指导 genAI 进行开发和测试,而不是编写代码和自动化测试。

不相信没有开发人员的未来,他继续说道,“人类将始终处于循环中,更关心目标、约束和分析独特情况。

AI 触及 SDLC 的多个阶段

虽然如今的副驾驶和许多 genAI 工具都专注于编码,但预计新功能将改变 SDLC 中的其他阶段和职责。 的首席解决方案工程师 表示:“随着将 genAI 整合到 SDLC 中的最佳实践不断发展,不同的模型可能最适合周期的特定阶段,例如,一个模型针对需求进行了优化,一个模型用于代码开发,另一个模型用于 QA。

genAI 范式转变已经影响了 QA,因为工具可以实现更强大的测试用例和更快的代码更改反馈,

“随着人工智能的兴起,我认为一个较少讨论的方面是,围绕编码的所有设施将如何见证一场翻天覆地的变化,”的联合创始人Gilad 说。“SDK、测试和文档是人工智能生成或辅助的,这只是时间问题,这意味着开发人员将需要以特定的人工智能消费格式对他们的工作进行编码和记录。”

的最后一个预测表明,开发人员可能不得不调整他们的语言,类似于人们必须学会说虚拟助手被编程为可以理解的语言。我希望这个预测不会成为现实,因为它可能意味着genAI只能提供便利,而不一定是生产力或质量的提高。

GenAI和人类发展角色的出现

GenAI在软件开发中的角色可能会从目前由人类开发人员承担的角色和责任中分离出来。代码生成器、编译器和其他开发工具等工具将同时服务于人类和机器角色。

“有趣的是,我认为最终可能会出现一种新的代码视图:一种观点是传统的人类代码视图,开发人员经过训练并习惯于阅读和写作的观点,但还有第二种有点隐藏的观点,即人工智能安全优化的防御观点,” 工程副总裁 说.“这种观点对人类来说不太可读,但对编译器和解释器来说却是完全可读的,这样一来,它就变成了代码的另一种中间格式。

问题在于,替代观点是否会提高机器学习更准确、更高效地识别缺陷、安全问题和其他问题的能力。

AI 在开发过程中提升运维能力

的开发人员体验总监 Cody De 建议 genAI 可以帮助提高应用程序可靠性和运营的用例。“我们可以看到开发工具将如何从交互中学习的早期迹象,关键将是直观的帮助。

De 提出了以下例子:

这些想法提出了一个问题,即genAI将启用或增强哪些下一代和SRE功能。

组织必须保护自己免受 AI 风险的影响

最后一个预测涉及将genAI暴露于该组织的知识产权(包括代码和数据)的风险。随着genAI在整个SDLC中启用新功能,将会出现新的问题,即收益是否大于风险。

生态系统和业务开发副总裁 Jung 表示:“随着我们努力实现端到端 AI 软件开发流程的愿景,各行各业的技术专业人员都希望确保生成的任何代码都具有最高质量,并且不会损害应用程序的整体可靠性或可维护性.“通过敏锐地关注进入模型的数据(包括您的数据和训练集),您可以花时间和精力来评估、选择和部署 AI,以保护您的策略和最有价值的资产(您的代码和数据)。”

问题在于,genAI算法和实现这些算法的工具是否会建立保护措施来保护企业的资产,以及这些保护措施在多大程度上也将依赖于genAI的能力。

虽然我们仍处于软件开发的 genAI 时代的早期阶段,但越来越明显的是,代码生成和副驾驶只是开发、测试、部署和维护软件的新 AI 支持方式的开始。

© 版权声明

相关文章

暂无评论

暂无评论...