上周,Simon Willison 参加了 Talking Postgres 播客的录制,与主持人 Claire Giordano 聊了一个话题:AI 正在如何改变软件开发。这场对话里,他提出了两个核心观点:一是代码行数在 AI 时代重新有了衡量意义,二是 AI 让软件架构正在失去一种叫"概念完整性"的东西。

这两个观点,一个关于效率,一个关于质量。放在一起看,恰好勾勒出 AI 编程工具给行业带来的真实处境——写代码变快了,但软件本身可能正在变得难以维护。

代码行数:为什么现在又可以谈了

在播客进行到 35 分 01 秒时,Willison 谈到了一个在开发者社区里颇有争议的话题:用代码行数衡量生产力,到底合不合理?

他的态度很明确:他不同意"行数毫无意义"的说法。理由是一个硬性限制——在 AI 时代之前,一名软件工程师一天能产出的生产级代码是有限的。一天写出 200 行可用、经过调试、达到生产水平的代码,已经是非常出色的一天。大多数时候,一天能写 50 到 60 行就不错了。

而如果 AI 智能体(agent)能让你一天产出 1000 行调试好的代码,这确实是一个非常有意义的提升——前提是代码质量不变:可维护、有测试、各方面都达标。Willison 强调,用智能体达到这个水平并非易事,它需要大量的技巧、知识和经验。这正是高级工程师的价值所在。

换句话说,AI 没有让工程师变得不重要,而是把瓶颈从"写代码的速度"转移到了别的地方。

新的瓶颈:认知容量

Willison 提到,他现在作为单个工程师,能完成的工作量远超没有智能体的时候。那么问题来了:既然一个人能干这么多活,公司为什么还需要多个工程师?

他给出的答案分两层。第一层是显而易见的"bus factor"(巴士因子,指团队中关键成员缺席带来的风险)——一个人组成的团队本身就是设计得很糟糕的团队。第二层才是关键:新的限制因素是认知容量(cognitive capacity)。

他说:"我可以以快一百倍的速度产出代码。但我没有足够的认知容量去跟进一百倍数量的代码。"代码产出速度上去了,但人的理解和掌控能力跟不上。因此,团队依然需要多名工程师,目的就是把这部分认知负荷分散到整个团队身上。

这个观点把 AI 编程的讨论从"能不能写"拉到了"能不能管"的层面。写代码的瓶颈正在被 AI 消解,但理解代码、维护代码、保证代码之间不互相冲突的瓶颈,依然牢牢地卡在人身上。

概念完整性:AI 时代的软件正在长歪

在播客进行到 46 分 03 秒时,Willison 聊到了另一个概念:概念完整性(conceptual integrity)。这个词出自软件工程经典著作《人月神话》(The Mythical Man-Month)。

他解释道,设计良好的软件有一种完整性:它没有意外之处,覆盖的领域恰到好处,所有部分都契合在一起,整体是自洽的。但这件事在 AI 智能体时代变得困难得多——你有一个功能想法,跑一个 prompt(提示词),五分钟之后功能就出来了。软件就这样长出了各种奇怪的"小鼓包",朝着不同的方向蔓延。

这时 Claire Giordano 接了一句:你知道我对这个现象的比喻是什么吗?温彻斯特神秘屋(Winchester Mystery House)。

Willison 顺着这个比喻讲了下去。温彻斯特神秘屋有 140 个房间,建造者是温彻斯特步枪发明者的遗孀。她的通灵师告诉她,她会被这把步枪杀死的人的鬼魂缠身,除非她永远不停地扩建房子。于是她花了 40 年,不停地加盖新房间。

"这正是 AI 智能体和软件的问题:不停地加新房间太容易了,因为加房间的成本变得如此便宜。最终你得到的东西,概念完整性已经分崩离析——然后它就更难维护了。"

这个比喻精准地戳中了 AI 编程的隐忧:当新增功能的边际成本趋近于零,软件就会像温彻斯特神秘屋一样,房间越盖越多,但整体结构越来越不可控。

效率与质量的拉锯

把 Willison 的两个观点放在一起,能看到一个清晰的张力结构。

一方面,AI 智能体确实带来了实打实的效率提升。从一天 50-60 行到一天 1000 行,这是数量级的飞跃。对于"代码行数有没有意义"这个问题,他的回答是:在 AI 时代,行数重新有了参考价值,因为它反映的是产出能力的真实变化。

另一方面,这种效率提升正在侵蚀软件的概念完整性。过去,写代码的成本高,所以每加一个功能都会慎重考虑它和整体架构的关系。现在,加功能的成本几乎可以忽略不计,架构的约束力就变弱了。软件不再是精心设计的整体,而是一个不断膨胀的、缺乏内在一致性的集合体。

Willison 的结论是:要驾驭 AI 智能体产出高质量代码,需要极高的技能、知识和经验。这不是一个"AI 替代工程师"的故事,而是一个"工程师的能力要求被抬高"的故事。

团队的意义变了,但没有消失

这场对话里还有一个值得注意的推论:如果单个工程师的产出可以提升百倍,团队还需要那么多人吗?

Willison 的回答是:需要,但原因变了。过去团队存在的意义是"人多力量大",现在团队存在的意义是"认知容量负载均衡"。代码可以快速生成,但理解、审查、维护这些代码的认知能力无法同样地规模化。一个人盯不住一百倍量的代码,所以需要团队来分担。

这也意味着,AI 编程时代的高级工程师,核心能力不再是"写代码快",而是"能驾驭 AI 产出高质量代码"。这包括判断什么该让 AI 做、什么不该让 AI 做,以及如何在一个快速膨胀的代码库里维持整体的秩序。

温彻斯特神秘屋的比喻之所以贴切,是因为它揭示了一个本质问题:当盖房间的成本趋近于零,房子的设计就不再是"规划"出来的,而是"堆积"出来的。AI 编程正在让软件从"规划"滑向"堆积",而如何对抗这种滑落,可能是未来几年开发者面临的最大挑战。