“哈哈镜”效应:AI如何映照出软件管道的深层真相

6 阅读7分钟

AI是软件开发的放大器,揭示现有问题。它加速编码而非解决瓶颈。面对AI引入的新手,需严谨、护栏与同理心。未来编程语言或为人机代理优化。

译自:The "funhouse mirror": How AI reflects the hidden truths of your software pipeline

作者:Jennifer Riggins

AI 是快速行动和打破常规的缩影。但 Thoughtworks 首席技术官 Rachel Laycock 问道,严谨性何在?护栏又在哪里?

AI 可能被称为伟大的颠覆者,但它实际上只是你现有事物的一个加速器。2025 年 DORA 报告将 AI 在软件开发中的主要作用定位为放大器——一个哈哈镜,它能反映出你整个管道中的好、坏和丑陋。AI 已被证明对个人开发者的工作和代码编写速度具有影响力。但是,既然 编写代码从来不是瓶颈,如果传统的软件交付最佳实践尚未到位,这种速度倍增器就会变成债务加速器。

“AI 已被证明对个人开发者的工作具有影响力……但是,既然编写代码从来不是瓶颈……这种速度倍增器就会变成债务加速器。”

Laycock 问道:“当然,你可以让一个或一群代理为你构建大量软件,但这些软件安全吗?它们是否针对成本进行了优化?它们是否完全符合你的预期?它们是否有任何意外行为或后果?”她担心技术人员忽视了 AI 的交叉关注点。

“构建一个应用程序很容易。如果你是程序员,一直都很容易。现在,如果你不是程序员,也很容易。但应用程序不是分布式的、复杂的商业软件。”

一代人以前,一小群技术专家聚集在犹他州的群山中,制定了《敏捷宣言》。今年二月,其中最著名的签署人之一 Martin Fowler、Thoughtworks 团队和企业工程领导层回到了那座山,以应对 AI 原生开发 的下一次剧烈转变。

在最近接受 The New Stack 采访时,Laycock 回顾了在软件开发激增期间的这次技术思想会议。提示:这从来不仅仅是关于技术。

AI 带来大量新手

软件行业一直存在“看门人”现象,所以 AI 允许更多人参与塑造我们的未来应该是一件好事。但如果我们不小心,精英主义和保护主义将点燃一颗定时炸弹。

Laycock 说:“人们倾向于:哦,我需要更多的资深工程师而不是初级工程师。这是一个不同的问题,因为工程师需要随着时间的推移而培养。”她不赞同一些公司利用 AI 取代 初级工程师 的策略。

“我们不应该说:嘿,他们不知道自己在做什么,停止。我们应该思考:我们如何才能成为好的管理者?我们如何拥有同理心? 我们如何帮助他们学习?我们能做些什么来向他们解释原因,并为这些系统建立更好的护栏?”

一如既往,区分高绩效团队和低绩效团队的因素是 DevOps、微服务以及持续集成和持续交付最佳实践的采用,以及护栏、安全性、测试、自动化、版本控制、可观测性、渐进式交付和回滚等等。

“我们不应该说:嘿,他们不知道自己在做什么,停止。我们应该思考:我们如何才能成为好的管理者?我们如何拥有同理心?我们如何帮助他们学习?”

Laycock 在 Thoughtworks 的非正式会议上反思道:“编写良好、架构良好的软件。这就是模块化系统存在的原因:它们使人类更容易理解,也更容易让我们进行更改和适应。我们不断回到软件工程基础的重要性。”“我们正在向上抽象一层,我们还不相信代理会按照我们期望的方式行事,因为我们看到它们正在犯不成熟开发者会犯的错误。”

AI 允许更多人参与创造我们的未来并不是问题,但她说,护栏的存在是有原因的,尤其现在不能被忽视。

Laycock 说:“无论是你的 CI/CD 管道,还是你的性能函数告诉你它是否按预期运行,成本是否按预期。”“因此,当软件以更高的抽象级别出现时——就像 Java 一样——我们有一大批新人进入这个行业,他们不得不学习分布式系统的所有艰难教训。”

越来越多的人将进入我们的行业,却没有构建复杂分布式系统所需的固有知识,这并非新鲜事,因为大学和训练营总是过于偏向于绿地(Greenfield)项目构建。

Laycock 说:“我们作为行业中的资深技术专家。与其抱怨——‘哦,这些人不知道他们在做什么’——我们应该成为这些人的管理者。”“因为我们确实知道这些事情的重要性。”

这确实要求资深架构师对新人表现出同理心和耐心,包括那些并非在科技行业成长起来但能为你的目标用户带来重要价值的领域专家。

她警告说:“我们不谈论为什么。我们只是想当然地认为:当然,你必须关心那件事,因为我们已经学到了。但那些刚刚进入行业并且现在也能构建软件的人,他们还没有学到这些教训。”

迷失在代理翻译中

当前流行的编程语言是否支持 AI 和这些最佳实践?该行业正处于重新考虑编程语言的边缘。

现有语言是为了母语为英语的人类阅读而存在,但代码现在必须为人类和 AI 代理进行优化,或者可能是针对代理的特定语言。我们可能很快会看到支持更结构化方法的语言增加。

Laycock 在谈到非正式会议参与者的辩论时说:“我们可能会看到新型语言,也许是非常强类型的语言,它们更倾向于采用结构化的编程方法。”“还有一种概念是,我们甚至还关心代码吗?显然,我们关心围绕它的严谨性和架构原则,以及测试它以特定方式构建。但未来我们究竟会做多少代码修改?”

随着人类阅读代码的需求减弱,编程语言可能会变得更高效,使 AI 代理比人类更容易阅读。

Laycock 继续说:“对人类有益的事物对代理也有益吗?如果它易于解释、经过充分测试,那对双方都有好处。我认为可能会出现分歧,一些人可能会说:让我们用最人类可读的方式去做;而另一些人则会说:让我们开始以不同的方式构建软件,这可能只适用于代理。”

还有一种观点认为,我们的开发方式将彻底改变。Simon Wardley 和 Tudor Girba 提倡 可塑性开发 将为软件决策带来一种情境化方法——想象一下通过 Wardley 地图 进行编程。 成果工程宣言 的签署者同意他们的观点,即代码从来不是关键。O16g(其简称)优先考虑预期的业务成果和可衡量的用户影响,而不是软件交付。

Thoughtworks 甚至推出了自己的产品 AI/works 代理开发平台,该平台利用 AI 和领域驱动设计来规划企业现代化所需的业务能力——考虑到 AI 的模块化和规模,这比以往任何时候都更加必要。

Laycock 评论道:“世界上已经有很多我们不理解的软件。”随着代理创建软件,这种情况只会增加。Laycock 补充说,“并非所有软件在风险和业务价值方面都是平等的。”

没有人从这次静修中出来就呼吁 AI 代理立即取代人类。但有些领域需要更多人类参与。

Laycock 接着说,这将指导企业在哪些地方允许更多的代码生成和代理修复,而在另一些软件中,这些软件具有极高的商业价值、高影响力、面向客户,我们希望有更多人类参与其中,希望软件更具人类可读性、更模块化、更容易理解、具有强大的护栏和强大的事件响应能力。