返回资讯中心
外部精选
软件工程
#开发者实时流

文章反驳将AI智能体开发比作软件工厂的隐喻

来源标题:The Agentic Software Factory Is the Wrong Metaphor

一篇评论文章反驳了将AI智能体驱动的软件开发称为「软件工厂」的说法。作者指出,2019年他就曾论证程序员是创作者而非工厂工人,如今Factory、Warp CEO Zach Lloyd和BCG Platinion等公司和个人又用工厂语言描述AI智能体开发流程,但这种隐喻是错的。

Hacker News 最新emersonmacro2026/11/4 · 今天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

2019年,我写过一篇文章,说程序员是创意工作者,不是工厂工人。道理很简单:写软件意味着钻研一个问题并为其设计解决方案,而那些把开发者当成生产线上操作员的组织,得到的软件更差,还会流失最优秀的人才。七年之后,工厂这个说法又回来了,只不过这回流水线上的工人是 AI agent。

这套话语传播得极快。2026年6月,Factory 发布了《Factory 2.0:从编码 agent 到软件工厂》,描述了一套系统,它“始于来自外部世界的信号:缺陷报告、内部对话、客户反馈、业务需求”,并让这些信号流经自主 agent。“这个系统就是软件工厂。”同一周,Warp 的 CEO Zach Lloyd 发表了一篇题为《我们现在是工厂工程师,而非产品工程师》的文章,描述了一个由分诊、规格说明、实现、评审、验证、CI/CD 和监控组成的循环,每个阶段的工作都由 agent 完成。BCG Platinion 把“Agentic Software Factory”描述为一种新的运营模式,在这种模式下,“自主 AI agent 全天候构建、测试并交付软件解决方案,而人类负责定义业务意图并评审结果。”

这一切背后的技术确实是新的,这些团队所做的某些事情也令人印象深刻。让我感触最深的是,用来解释它的心智模型有多么陈旧。我认为“agentic software factory”是个错误的隐喻,而且这很重要,因为软件工程是一门设计工程的学科。编码 agent 让这一点更加成立,而不是相反;而那些能从中获益最多的组织,将是把它们用于更好地设计、而非更多地制造的组织。

人们很容易把这当作抠字眼而不屑一顾。每个行业都会借用隐喻,没人会以为软件“架构师”真的在浇混凝土。问题在于,“工厂”并不是一个无辜的标签。它隐含了一套关于工作本质的理论:输入通过可重复的生产流程变成输出,而改进意味着提高吞吐量、减少变异、让生产线自动化。

隐喻会塑造管理行为。如果领导者相信自己拥有一座工厂,某些动作就会变得自然而然:优化利用率、标准化输入、统计输出、提高吞吐量、消除变异性、把规格说明当作沿管道向下流动的原材料。这些动作在工厂里都合情合理。但如果你实际拥有的是一套高度加速的设计与探索系统,其中好几个动作就是有害的。

所以值得追问的是:哪一种工作理论才是对的。在这一点上,这个行业有一个出奇悠久的答案。

1992年,Jack Reeves 为《C++ Journal》写了一篇题为《什么是软件设计?》的文章。他的论点是,我们搞错了软件开发中哪一部分对应制造业。在实体工程中,先产出设计,然后建造,而建造是昂贵的。Reeves 指出,软件的设计就是它的源代码,而构建是由工具完成的:

由此他得出结论:编程是一种设计活动,测试和调试也是设计活动,相当于对设计进行验证和细化。他指出,软件构建起来如此便宜,几乎等于免费。

Martin Fowler 在《新方法论》中接过了这个观点,这篇文章是阐述敏捷背后思想的文章之一。如果构建便宜到近乎免费,那么软件中所有的功夫都在设计上,而设计需要富有创造力、有才华的人。创造性过程不容易被计划,因此传统工程方法论所承诺的可预测性可能是个无法企及的目标。这就是组织层面的结论:不要再试图把软件当作建筑项目来管理。

Dave Farley 在《现代软件工程》中提出了同样的论点,而且比任何人都说得更直白:

Farley 的意思是,实体工程有两个截然不同的问题。如果你想造一种新式的桥,首先得弄清楚什么样的桥可行,然后还得承担昂贵、缓慢且有风险的建造工作。软件只有第一个问题。一旦设计以源码的形式存在,生产就只是触发构建而已。因此,软件工程纯粹是一门设计工程的学科。

顺着这个思路想下去,工厂隐喻就会发生一件有意思的事。如果 Reeves 是对的,我们早就有一座软件工厂了。它从源代码到编译器、到打包、到部署。过去二十年我们一直在用构建系统、持续集成、基础设施即代码和部署流水线把它自动化,而在一个管理良好的组织里,它恰恰应该像工厂一样枯燥、可重复、标准化。

编码 agent 所自动化的,位于这条边界的另一侧。它们产出并修改源码,也就是说,它们产出并修改设计。agent 不是装配线上的又一个机器人。它更像另一位设计师,在一个由假设、实现、测试和修改构成的极快循环中工作。BCG Platinion 的模型在这里很能说明问题:agent 生成代码和测试的阶段被标为“Construction”(建造)。Reeves 花了整整一篇文章论证,写代码恰恰不是这件事。

一旦你把代码生成看作设计工作,工厂框架就开始在几个具体而可预见的地方站不住脚。

第一,工厂假设设计问题已经解决。制造始于有人已经知道该造什么,而工程图纸会精确地规定它。在软件中,弄清楚应该存在什么、什么行为才是正确的、系统应如何构造、相互竞争的约束应如何权衡,这些本身就是工作。一张工单不是工程图纸。把它当成工程图纸,只会把设计工作挪出视线,而不是消除它。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →