AI"哈哈镜":人工智能如何揭示软件管道的隐藏真相
微资讯
人工智能堪称"快速迭代,容忍失败"的典型代表。但是,Thoughtworks首席技术官Rachel Laycock质疑,严格性哪里去了?防护机制又在哪里?
人工智能或许被称为伟大的颠覆者,但它实际上只是你现有能力的加速器。2025年DORA报告将AI在软件开发中的主要作用定位为放大器——一面哈哈镜,反映出你整个管道中的优点、缺点和问题。AI已被证明对个人开发者的工作和代码编写速度具有影响力。但是,由于编写代码从来不是瓶颈,如果传统的软件交付最佳实践尚未到位,这种速度乘数就会变成技术债务加速器。
"AI已被证明对个人开发者的工作具有影响力……但是,由于编写代码从来不是瓶颈……这种速度乘数就会变成技术债务加速器。"
"当然,你可以让一个智能体或一群智能体为你构建大量软件,但这些软件安全吗?它们是否针对成本进行了优化?它们是否完全按照你的预期运行?它们是否有任何意外行为或后果?"Laycock担心技术工作者忽略了AI的横向关注点。
"构建一个应用很容易。如果你是程序员,这一直都很容易。现在即使你不是程序员,这也很容易。但应用不是分布式、复杂的商业软件。"
一代人之前,一小群技术专家聚集在犹他州的山区,制定了敏捷宣言。今年二月,其最著名的签署者之一Martin Fowler、Thoughtworks团队和企业工程领导层回到那座山上,回应AI原生开发的下一个重大转变。
在最近接受The New Stack采访时,Laycock回顾了这次技术思想的聚会,正值软件开发激增之际。提示:这从来不仅仅是技术问题。
消除技术精英主义
软件行业一直在设置门槛,所以AI允许更多人参与塑造我们的未来应该是件好事。但如果我们不小心,精英主义和保护主义会点燃定时炸弹。
"人们倾向于:哦,我需要更多高级工程师而不是初级工程师。这是一个不同的问题,因为你必须随着时间培养工程师,"Laycock说,不赞同一些公司使用AI替代初级工程师的策略。
"我们不应该说:嘿,他们不知道自己在做什么,阻止他们。我们应该思考:我们如何成为好的管理者?我们如何拥有同理心?我们如何帮助他们学习?我们能做什么来向他们解释原因并为这些系统建立更好的防护机制?"
一如既往,区分高效团队和低效团队的是DevOps、微服务、持续集成和持续交付最佳实践的采用,以及防护措施、安全性、测试、自动化、版本控制、可观察性、渐进式交付和回滚等等。
"我们不应该说:嘿,他们不知道自己在做什么,阻止他们。我们应该思考:我们如何成为好的管理者?我们如何拥有同理心?我们如何帮助他们学习?"
"编写良好、架构良好的软件。这就是为什么存在模块化系统的原因:它们让人类更容易理解,让我们更容易改变和适应。我们不断回到软件工程基础为什么如此重要这个问题,"Laycock回顾Thoughtworks非会议时说。"我们正在向上移动一个抽象层,我们还不信任智能体会按照我们的预期行事,因为我们看到它们犯的错误就像不成熟的开发者会犯的错误。"
AI允许更多人参与创造我们的未来并不是问题,但她说,防护机制的存在是有原因的,尤其是现在不能忽视。
"无论是你的CI/CD管道,还是告诉你它按预期运行、成本符合预期的适应性函数,"Laycock说。"所以当软件以更高的抽象级别出现时——比如Java——我们有一整群新人进入这个行业,他们必须学习分布式系统的所有艰难教训。"
越来越多的人将进入我们的行业,但没有构建复杂分布式系统所需的固有知识,这并不新鲜,因为大学和训练营总是过度倾向于绿地项目。
"作为行业中的高级技术专家,我们不应该抱怨这个——'哦,这些人不知道自己在做什么'——我们应该成为人们的管理者,"Laycock说。"因为我们确实知道为什么这些事情很重要。"
这确实需要高级架构师对新来者表现出同理心和耐心,包括那些不是在技术行业长大但能为目标用户带来重大价值的主题专家。
"我们不谈论原因。我们只是有这样的假设:当然,你必须关心那个东西,因为我们已经学到了,"她警告说,"但那些新进入行业并且现在也能构建软件的人,他们还没有学到这些教训。"
针对智能体优化的编程语言
当前流行的编程语言是否支持AI和这些最佳实践?这个行业正处于重新考虑编程语言的边缘。
语言目前是为英语母语者阅读而存在的,但代码现在必须针对人类和AI智能体进行优化,或者可能针对特定智能体的语言。我们可能很快会看到支持更结构化方法的语言增加。
"我们可能会看到新类型的语言,也许是重类型语言,更倾向于采用结构化的编程方法,"Laycock说,指的是非会议参与者的辩论。"还有一个概念是,我们还关心代码吗?显然,我们关心围绕它的严格性和架构原则,关心测试它是以某种方式构建的。但我们在未来实际上会对代码进行多少调整?"
随着人类阅读代码需求的减少,编程语言可能会变得更高效,使它们更容易被AI智能体而非人类阅读。
"对人类有益的东西对智能体也有益吗?"Laycock继续说,"如果它是可解释的、经过充分测试的,那对双方都有好处。我认为可能会出现分歧,一些人会说:让我们以最人性化的方式来做,而其他人会说:让我们开始以不同的方式构建软件,也许只是为智能体。"
还有一种观点认为我们的开发方式会完全改变。Simon Wardley和Tudor Girba倡导可塑开发将为软件决策带来上下文方法——想想通过Wardley映射进行编程。结果工程宣言的签署者同意他们的观点,认为这从来不是关于代码的。O16g,正如其缩写,优先考虑期望的业务结果和可衡量的用户影响,而非软件交付。
Thoughtworks甚至推出了自己的产品,AI/works智能体开发平台,它利用AI和领域驱动设计来规划企业现代化所需的业务能力——考虑到AI的模块化和规模,这现在比以往任何时候都更加必要。
"世界上已经有很多我们不理解的软件,"Laycock评论说,随着智能体创建软件,这只会增加。Laycock补充说,"从风险和业务价值的角度来看,并非所有软件都是平等的。"
没有人从这次会议中呼吁AI智能体很快取代人类。但有些领域需要更多人类参与。
这将指导企业在哪里允许更多代码生成和智能体自愈,相对而言,她继续说,"还有其他软件,具有极高的业务价值、高影响、面向客户,我们希望在那里有更多人类,我们希望软件更人性化、更模块化、更好理解、更强的防护机制、更强的事故响应能力。"
Q&A
Q1:AI在软件开发中的主要作用是什么?
A:根据2025年DORA报告,AI在软件开发中的主要作用是放大器——像哈哈镜一样反映出整个软件管道中的优点、缺点和问题。AI已被证明对个人开发者的工作和代码编写速度具有影响力,但由于编写代码从来不是瓶颈,如果缺乏传统软件交付最佳实践,这种速度乘数就会变成技术债务加速器。
Q2:为什么需要对新进入软件行业的人员建立防护机制?
A:因为越来越多的人通过AI进入软件行业,但他们缺乏构建复杂分布式系统的固有知识。这些新来者没有学过分布式系统的艰难教训,可能会忽略安全性、成本优化、性能监控等重要的横向关注点。因此需要资深技术专家作为管理者,建立防护机制并提供指导。
Q3:编程语言会如何适应AI发展趋势?
A:编程语言正在重新考虑优化方向。目前的语言主要为人类阅读而设计,但代码现在需要同时针对人类和AI智能体进行优化。可能会出现新的重类型语言,采用更结构化的编程方法。随着人类阅读代码需求减少,编程语言可能变得更高效,更易于AI智能体而非人类阅读。