软件是负债 — Google I/O 2026 把 Jeff Atwood 二十年前那句话重新挂回了墙上

软件是负债 — Google I/O 2026 把 Jeff Atwood 二十年前那句话重新挂回了墙上
I/O 2026 的 Professional Development 专场里有一个被忽略的演讲。题目叫 Software engineering at the tipping point。讲者是 Adam Bender,Google 工程生产力方向的工程师,《Software Engineering at Google》——内部叫 "flamingo book"——的作者之一。
这场演讲不在主 keynote。Pichai 没提它,Hassabis 没提它,YouTube 的官方推荐位也没有它。但 Bender 在 39 分钟里做了一件每个用 AI 写代码的企业都该认真听的事——他不讲 Gemini、不讲 SDK、不讲一个新 API 的发布,他讲生态学。把研发环境当作 socio-technical ecosystem 来分析,用系统论的工具往里钻,得出来一句和 Jeff Atwood 2008 年那句话同形的结论:软件是负债。代码生成变便宜,没让代码维护变便宜。10x 不是奖励,是压力测试。
I/O 现场大屏上当然没有挂出"软件是负债"这几个字。但 Bender 在第 21 分钟直接把这句话引出来——"Software is a liability."(软件是负债。)他接着说:"10x more code, 10x more liability."(10x 代码,就是 10x 负债。)整个会场都在讲 AI 把工程师变成 10x、100x,他在讲被 10x 之后会先崩的是什么。
软件生态学:把研发环境当生态看
Bender 给"软件生态学"下的定义是:
Software ecology is the holistic study of the socio-technical ecosystems that produce software. (软件生态学,就是把生产软件的 socio-technical ecosystem 当作一个整体来研究。)
"Socio-technical" 这个词是关键。在 Bender 的框架里,研发环境不是工具的集合——不是 IDE + CI + 版本控制 + test framework 这种装备清单。研发环境是人和技术的合体:架构选择、流程纪律、组织结构、激励设计、工程文化,全部是同一个生态的不同维度。你抽走任何一层,剩下的几层都讲不通。
这个定义为什么重要?因为它把 Conway 律降级成了低阶推论。Bender 在第 4 分钟引用 Conway 律——"组织造出来的技术结构会镜像它内部的沟通结构。"——然后说,Conway 律只是 software ecology 这个更大框架的一个特例:组织影响技术,技术也影响组织,两者本就是同一系统的两面。
接着他用 Google 自己做案例研究。Google 几乎所有代码——除了 Android 和 Chrome 这种例外——都在一个共享仓库里。所有 commit 都进 trunk,没有分支,没有版本号。一条安全补丁打下去,一周内全公司 100 亿行代码都已经打过。Bender 把这个特征叫做 shared fate(共同命运)——生态内部组件被强耦合的程度。
shared fate push 到极致,就长出了 LSC(large-scale change)这个 emergent property——一个工程师可以用工具改字面意义上的百万行代码,"他从来不会再看的代码"。Bender 说:"AI 出现之前很久,Google 的内部工具就让一个工程师可以改百万行代码。我们这么干已经至少 15 年了。"
但这里有一个关键的反信号。Bender 不是来吹 Google 的。他在演讲第 7 分钟、第 12 分钟、第 13 分钟反复强调:Google 的 monorepo、shared fate、LSC,是 25 年特殊选择的产物,不是模板。"你不是 Google,你的 trade-off 跟我们不一样,把 Google 这套照搬到你那儿对你没好处。"
这是这场演讲容易被错读的第一处。在国内技术圈,Google 的 monorepo 经常被援引为"先进实践"。Bender 提供了一个相反的视角——shared fate 不是先进,是 25 年下注的结果。你可以学他们用什么视角思考 trade-off,但不能学他们的 trade-off 本身。生态没有模板。

10x 不是奖励,是压力测试
讲完 Google 的生态做暖场之后,Bender 把演讲的核心问题挂出来:
If your ecosystem suddenly had to grow by 10 to 15x in the next 18 months, do you know what would break first? (如果你的生态在 18 个月内突然要承载 10 到 15 倍的活动量,你知道第一个崩的是哪儿吗?)
接下来 15 分钟是这个 thought experiment 的逐节点拆解。一个标准的研发流程图,源代码、build、code review、test、版本控制、release、回滚——每个节点单独乘 10,看会发生什么。
源代码。10x 的代码量直接撞上 Jeff Atwood 那句话:"Software is a liability."(软件是负债。)这不是修辞,是会计意义上的负债——代码越多,需要维护、测试、安全审计、文档化的存量越多。10x 代码 = 10x 维护负债,AI 没有改变这条会计学。
build。代码量上去,编译时间上去。Bender 顺带说了一个反直觉数据——Google 内部已经在撞上"二进制大到编不动"的墙。"我们的 binary 在某些地方已经大到我们编不出来了。"这个例子值得停下来想一下:拥有全球最强 build 基础设施的公司,已经在物理层面撞墙。一般企业的 build 系统什么时候会撞墙?比 Google 早得多。
code review。这一段 Bender 讲得最直白。10x 代码意味着 10x 大的 PR,或者 10x 数量的 PR。一个 tech lead 一天看不完 5 个 10x 工程师的产出——"5 个工程师一天的 PR 量"。然后 tech lead 会做什么?人不喜欢当瓶颈。"They're going to start cutting corners to make sure they don't block anyone."(他们会开始抄近路,确保自己不挡别人路。)你可以上 AI review 工具补一刀,但这只解决一半——团队成员如果都不再写代码,他们和代码的唯一接触点就是 review;review 又抄近路;那谁还在 review codebase 演化方向?没人。
test。Bender 给出了这场演讲里最硬的一条数据:
Your dependency graph grows quadratically, not linearly with the size of your code base. (你的依赖图随代码库规模二次方增长,不是线性。)
这意味着代码库变 10x,要测的依赖路径可能是 100x 到 1000x。Bender 接着说:"如果你不担心 test 算力,那只能是因为你的 test 不够多,你的 agent 在你的 codebase 里 yolo——根本没人知道它写出来的东西能不能用。"
版本控制。Bender 这一段几乎是冷笑话:"Most popular version control systems are not optimized for performance. They're optimized for consistency."(大多数流行的版本控制系统不为性能优化,为一致性优化。)一分钟能接多少 commit?"比你以为的少。"Git 在 10x 写入速率下会变成瓶颈。"如果有一天我们在讨论 version control 性能,那是出了大事——we are in the bowels of the developer experience here."(我们已经钻到研发体验的肠子里了。)
回滚。这一段被低估,但企业 SRE 应该认真听。Bender 说,今天的回滚之所以能 work,是因为发布速度比你检测出问题的速度慢一点点。"You release software slightly slower than it takes you to detect a problem in production."AI 把发布速度推快到检测速度之上,意味着你每次回滚都要面对"多个冲突变更已经叠在出问题的版本之上"。回滚不再是把指针往回拨一格,是要在多个分叉里挑一条退路。
conjunction of booleans。Bender 给了这个反模式一个明确命名。今天 ship 的标准是"所有 test 通过、所有 boolean 为真"。100 万个 test 时,单个 test 基础设施的可靠性不够,"所有 boolean 全绿"的概率本身就低。需要新的 statistical ship 策略——根据风险概率挑测试跑,而不是要求全绿。
内部 API。最被低估的一条警告:
All of your APIs suddenly just became public. They need the same kind of hardening that you would put on anything that you're going to send out to the public internet. (你所有的内部 API 突然就都对外了。它们需要和你扔到公网上的东西一样级别的加固。)
为什么?因为 agent 不和你 negotiate。看见 endpoint 就调,找到数据就读。"If an agent can access a data set, it's available to them."(agent 能访问的数据集,就等于被外部访问了。)这条直接把所有内部 API 推到外网级别威胁建模。
8 个节点,没有一个不被 10x 压穿。Bender 说:"No one gets out of this unscathed. Scale has effects everywhere."(没人能毫发无伤。规模的影响哪里都有。)

Amplifier 不是 Direction:DORA 的真信号
讲完压力测试,Bender 把话头切到 DORA 2024 报告上。DORA(DevOps Research and Assessment)是 Google Cloud 旗下的工程效能研究项目,2024 年的 AI 报告里有一个被反复引用、但少被讲清楚的观察:
AI acts as an amplifier. Amplification is a magnitude, not a direction. (AI 是放大器。放大有强度,没有方向。)
这是这场演讲里最值得记住的一句话。AI 不是优化器、不是导航器、不是判断器——它是放大器。fundamentals 好的团队,AI 放大正向产出:更多测试、更好文档、更快 review。fundamentals 差的团队,AI 放大乱产出:更多 bug、更乱的 codebase、更难维护的系统。"AI doesn't care where all of that stuff goes, it's just going to give you more of it."(AI 不关心这些东西要去哪儿,它只会给你更多。)
这条观察的价值,在于它给了一个反"AI = 10x 生产力"营销话术的钳子。Levie 在推特讲 100x、Pichai 在 keynote 讲 10x、Anthropic 的 Claude Code 案例讲"几小时干完一周的活"——这些都是平均产出的放大叙事。Bender 在挂的是另一个标尺:AI 放大的不是产出,是你团队 fundamentals 的形状。
接着他给出一个 fundamentals 自检清单——决策文化、技术战略、开发者生产力可见度、协作质量、安全姿态、代码健康、release 纪律、可靠性。"AI doesn't solve any of these problems for you by default."(AI 默认不为你解决这些问题里的任何一个。)
然后是这场演讲里最被低估的一个新命名——load-bearing token engine(承重的 token 引擎):
If you put load-bearing token engines in place, weird things can happen. Like for example, what if your rollback process depends on an agent to have enough capacity? (如果你把承重的 token engine 放进流程,怪事会发生。比如你的回滚流程依赖某个 agent 有足够算力呢?)
把 token 算力放在关键流程的负载上,看上去是把 AI 用到位了,实际上是引入了新的故障模式。月底烧完 token budget 那一刻就是 incident。Bender 没展开举例,但这个反模式在国内场景里已经能找到对应物——客服系统的 fallback 用 LLM 兜底、风控规则用 LLM 跑实时判定、回滚操作依赖 agent 生成命令脚本——这些都是 load-bearing token engine。Jevons paradox(资源越便宜用得越多)会把这些 load-bearing 位置推爆。
最后是 democratize engineering 的反面。Bender 用了一段反讽:
Democratizing engineering is cool until you realize you have democratized engineering. (工程民主化很酷,直到你意识到——你已经把工程民主化了。)
"全员 vibe coder" 听上去美好,但意味着公司里每个人都能 vibe code 出一个自己版本的内部工具替代品。一旦每个人都用着自己造的工具,公司的社会结构就被打散了。"What happens to the social fabric of your company when everyone is using completely different tools?"(当每个人用的工具都不同,你公司的社会结构会怎样?)这不是工具问题,是组织协作问题。

Intellectual control:人类对系统的理解力已经输了 15 年
演讲的最后一节是 Bender 唯一表达乐观的地方。但乐观的对象不是代码生产,是理解力。
Intellectual control is just a fancy way of saying, can humans reason about this thing in front of them? We've been losing this war for at least the last 15 years. (智力控制,说人话就是:人还能不能 reason 眼前这套系统。这场战争我们已经输了至少 15 年。)
Bender 给了一个很有效的现场实验建议——回到团队,让每个人画一张你们系统的架构图,看会画出几种不同的图。这一段在 I/O 现场没多少人笑,是因为大家都心里有数:自己团队画出来的会是几种不一样的图,每张都对一半。
这就是 intellectual control 已经丢的证据。最大的软件系统早已超出任何单个工程师能装进脑子的复杂度。一条配置改错、一行代码改错,可以把百万行系统打穿。系统脆但人懂得少——是这十五年的状态。
Bender 的乐观是说:AI 可能是反向救援这件事的工具。不是让代码机器更快,是让大型系统对人变可理解。他的 vision 是 a continuously updated, almost interactive architectural space——一个持续更新、可交互的架构空间,你可以问"如果容量从这里挪到东海岸会怎样""如果用户增长突然 40% 会怎样"。今天对一个中等规模的系统回答这种问题是 functionally impossible(功能性不可能)——变量太多、需要知道的东西太多。"But AI can make sense of very large sets of data, so I think there's something there."
这是这场演讲里 Bender 唯一一段公开下注的地方。但他下的注不在"AI 替工程师写代码"这条主流叙事上,而是在 AI 反向救人这条非主流叙事上。这个下注方向值得国内做 AI 平台和 devops 工具的团队认真考虑——大部分 AI 编码工具都在卷"写得更快",没有人卷"让人看得懂"。这是一片现在还没拥挤的赛道。
接近结尾时,Bender 给了他对 2030 年的判断:
My guess is, in 2030, our developer ecosystems today are going to kind of feel like 2001 does to us now. And in 2001, we were shipping software on CD-ROMs. (我的猜测是——到 2030 年回头看,今天的研发环境会像今天回头看 2001 年。那时候我们还在用 CD-ROM 发软件。)
这是一句下得很重的判断。它的潜台词是:今天每一个被你视作 "工程标准实践" 的东西——版本控制范式、CI 流水线、code review 流程、release 节奏——四年后都可能是 CD-ROM。不是更新换代,是被淘汰到几乎认不出来。

盲区:Bender 没说的几件事
第一件,中国企业坐标系怎么换。Bender 反复强调 Google 不是模板,但他给出的"系统论 + 生态学"分析工具仍然是 Google 视角——单仓库、强测试文化、blameless postmortem、universal build toolchain 这些前提在他的论证里被默认存在。中国企业大量场景里这些前提都不在:多仓库、外包多、文档薄、测试覆盖低、release 不规律。把 software ecology 这个框架套到这些场景,第一步要换坐标系——你的生态里 shared fate 在哪、emergent property 是什么、bottleneck 在哪。Bender 没给这个迁移路径。
第二件,初级工程师的培养路径。Bender 在演讲中段提了一句"new grad 步入有 50 个 agent 听他差遣但 0 直觉的环境会怎样",然后说"I don't know yet"。这一段他自己也承认是开放问题。Google 这种公司有 25 年沉淀的 mentorship 文化和 code review 文化,初级工程师在大量 review 中长出直觉。这条路径在 AI 写大部分代码、人主要做 review 的时代怎么继续 work,Bender 没答。这是行业级别的悬空题。
第三件,厂商话术的具体批评。Bender 全程没点名任何一个 AI 编码工具——Copilot、Cursor、Claude Code、Codex、Devin 都没出现在他的 slide 上。这是 Google 工程师做 keynote 的纪律。但他的论证里隐含了对"工具能直接解决问题"这种乐观的否定——他举的反例都是工具叠加在脆弱生态上反而放大问题。这一层判断他自己没明说,留给观众自己接。
第四件,Google 自家的 trade-off 数据。演讲里 Bender 说 Google 已经在撞上"binary 大到编不动",但没给数字。也没给 LSC 失败率、code review 平均延迟、test 算力占总算力比例这些定量证据。一场以"系统论 + 生态学"为方法论的演讲,最遗憾的就是几乎没有公开的 Google 内部度量数据。这一层数据需要从 Software Engineering at Google 那本书里去翻——但书的版本是 2020 年的,AI 时代的数据 Bender 没更新。
对从业者意味着什么
架构师 / CTO:本周做一次 Bender 的现场实验——让团队每个人画一张你们核心系统的架构图,看画出几种。这是低成本、高诊断力的 intellectual control 自查。然后挑两个内部 API,按公网级别威胁建模——是否需要 auth、是否做 rate limit、是否记录调用方、是否假设调用方是恶意 agent。这是把 Bender 那条"内部 API 突然变公网"落地的最小可行动作。
企业 AI PM:把"AI 是 amplifier"这条挂在采购评估的第一页。引入任何 AI 编码工具之前,先回答 fundamentals checklist——决策文化、协作、安全姿态、代码健康。fundamentals 不到位的团队上 AI 工具,放大的是坏的而不是好的。一句话决定要不要先做 6 个月的 fundamentals 加固再上工具。
Tech lead:本周复盘一次自己的 code review 节奏。如果团队 AI 渗透率已经接近 50%,问自己——我今天看的 PR 里有几个是我真的读懂了的、几个是我相信了 CI 通过就放过了的。前者是上限。把这个比例公开拉出来贴在团队周会上,是最便宜的"避免成为 corner-cutting bottleneck"动作。
SRE / 平台团队:列一遍你们生产环境里所有依赖 LLM 的关键流程——客服 fallback、风控判定、运维自动化、回滚脚本生成。每一条都问"如果 token budget 提前烧完、API rate limit、模型升级返回格式变化,这条流程会怎样"。这就是 load-bearing token engine 的盘点。看完之后大概率你们要给至少其中两条加 non-LLM fallback。
数据智能 / B 端 AI 服务团队:Bender 那个"continuously updated architectural space"是一片未被卷的赛道。市面 99% 的 AI 编码工具卷的是"代码生产速度",几乎没人在做"让大型系统对人变可理解"这个方向。如果你的产品定位是给企业架构师和 CTO 提供工具,这是值得跟踪的 18 个月窗口。
本期关键词
Software ecology(软件生态学) —— Bender 提出的研究框架。把研发环境当作 socio-technical ecosystem 来分析,涵盖代码、流程、文化、组织、激励,缺一不可。Conway 律是它的低阶推论。该框架的价值在于强迫分析者跳出"工具清单"视角,看到工具、流程、文化、人之间的相互塑造。
Shared fate(共同命运) —— 生态内部组件被强耦合的程度。Google 的 monorepo + trunk-based + 全公司一周打完安全补丁是 shared fate 推到极致的产物。Bender 强调这是 trade-off 不是模板,把 shared fate 误用到生产环境会造成 cascading failure。
LSC(large-scale change,大规模变更) —— Google 内部的 emergent property,一个工程师可以用工具改字面意义上的百万行代码。需要 testing 文化、统一 build、统一 library、统一 review 标准、单仓库透明度同时存在。是 software ecology 各维度耦合作用的产物,单独学不了。
依赖图二次方 —— Bender 给出的硬数据点。Google 实测代码库每翻 10 倍,依赖图二次方膨胀,要跑 100x 到 1000x 的 test。这个事实给了所有"AI = 10x 生产力"叙事一个反向证据——10x 代码不等于 10x 工作量,等于 100x 测试工作量。
Conjunction of booleans(boolean 合取) —— Bender 命名的反模式。今天 ship 软件要求"所有 test 通过、所有 boolean 为真"。100 万 test 量级下单个 test 基础设施可靠性不够,"全绿"概率本身就低。需要 statistical ship 策略——按风险概率挑测试跑,而不是要求全绿。
Load-bearing token engine(承重的 token 引擎) —— Bender 命名的反模式。把 token 算力放在关键流程负载上的设计——客服 fallback、风控判定、回滚脚本生成——会在 token budget 烧完、rate limit、模型升级时变成单点故障。Jevons paradox 会把 load-bearing 位置推爆。
Amplifier not direction(放大器不是导航器) —— DORA 2024 报告核心观察。AI 放大幅度不指方向。fundamentals 好的团队放大好的产出,fundamentals 差的团队放大乱的产出。是反"AI = 10x 生产力"营销话术的钳子。
Intellectual control(智力控制) —— Bender 后半段的核心命题。人对系统的理解力已经输给系统复杂度 15 年了——一条配置可以打穿百万行系统,但没人能整体 reason 这套系统。AI 在这条战线上的潜力可能比"代码生产更快"更大。这是 Bender 演讲中唯一一段乐观下注。
引用
- Software engineering at the tipping point — Adam Bender, Google I/O 2026 — 原视频。本文引用全部来自这条 39 分钟演讲。
- DORA 2024 State of AI-assisted Software Development Report — Bender 引用 amplifier 论点的出处。该报告基于 39000+ 工程师调研数据。
- Jeff Atwood — The Best Code Is No Code At All(Coding Horror, 2007) — Bender 在 21:00 处直接引用的"software is a liability"原话。
- Software Engineering at Google(flamingo book, 2020) — Bender 在 06:30 处提到的 Google 工程文化总结。该书前半本讲文化,后半本讲技术,原因正是 Bender 全程强调的"两者不可分"。