跳到主要内容

Vibe Coding 的生产力瓶颈:为何 AI 带来的速度提升在三个月后开始回落

· 阅读需 10 分钟
Tian Pan
Software Engineer

在一项受控随机对照试验中,使用 AI 编程助手的开发者预测他们的速度会提高 24%。而实际上,他们慢了 19%**。关键在于:他们仍然认为自己变快了。这种认知鸿沟——即生产力的“感觉”与实际交付能力背道而驰——是一种失效模式的早期预警信号,这种模式通常在数月而非数小时内显现。

行业已实现近乎普及的 AI 采用。93% 的开发者使用 AI 编程工具。生产力增长却停滞在 10% 左右。这些数字之间的差距并非工具问题,而是一个不断累积的债务问题,大多数团队在扭转成本变得极其昂贵之前,往往察觉不到它的存在。

第一个月的速度幻觉

早期的增长是真实的。功能交付变快。Backlog 被清空。自动补全将样板代码从十分钟的苦差事变成了三秒钟的按键。在第一到第四周,开发者每天确实产出了更多代码。

问题在于这些代码从内部看是什么样子的。

AI 生成的代码在功能正确性方面表现出色,但在架构连贯性上却乏善可陈。它能通过测试,能交付功能。但它是按照最匹配 Prompt 的训练数据的风格编写的,而不是你代码库的惯用风格。每一次被接受的补全都是对一套略有不同的模式、命名约定和结构假设的一次“投票”。在经过几百次补全后,代码库中会包含几十种针对相同问题的部分重叠的处理方法。

这在代码审查(Code Review)中是不可见的。代码看起来没问题。测试通过了。PR 顺利合入。

理解债务:隐藏的累积者

传统的技术债务是显性的。你可以指出一个需要重构的函数、一个需要升级的依赖项,或一个需要重新划定的服务边界。你可以为其排期,可以进行估算。

理解债务(Comprehension debt)则不同。它是总代码量与团队中任何人真正理解的那部分代码之间不断扩大的差距。它在数百次“看起来不错,测试通过”的简单分析式代码审查中隐形地积累。直到一位资深工程师花费两倍的时间来调试一个回归错误,因为它不认识 Bug 发生地周围的代码模式——而这些代码在技术上是他在三周前批准的——这时你才会察觉到它。

数字非常严峻:AI 辅助生成的 PR 产生的问题是人工编写 PR 的 1.7 倍。AI 辅助的代码库中的认知复杂度增加了 39%。采用 AI 工具后,技术债务总量增加了 30-41%。这些并不是糟糕的 Prompt 导致的偶然现象。它们是使用一种只优化局部正确性而忽视全局连贯性的工具后的预期产出。

平台期机制的逐步演进

以下是生产力曲线在实践中的实际走势:

第 1-4 周:速度激增。代码量增加。开发者感觉变快了。在眼前的任务上,他们确实变快了。Backlog 的处理率更高。

第 2-3 个月:PR 评审时间开始攀升——不是剧增,但很明显。调试时间变长。代码库现在在错误处理、状态管理或 API 客户端初始化等方面存在多种隐含约定,而新的 AI 补全会不断选择不同的约定。代码审查变成了一个吞吐量问题,而不是质量关口。评审者停止阅读并开始直接批准。

第 4-6 个月:回归错误增加。代码库成熟部分的功能开发耗时异常长。资深工程师抱怨他们认不出代码。开发者报告称,调试 AI 生成的代码所花的时间比编写代码的时间还要长。净代码产出的速度收益已无法抵消下游所有环节带来的开销。

这并非普遍性的灾难——它表现为平台期和反转,而非崩盘。但它始终出现在那些采用了 AI 工具却未改变代码质量管理方式的团队中。

三种复合的债务向量

来自 AI 工具的技术债务同时在三个不同的维度上累积,并在它们的交汇处产生复合效应。

**认知债务(Cognitive debt)**是你交付速度快于你理解速度的代码。它不是错误的代码——而是作者对代码作用的心理模型比他批准代码时的信心水平更模糊的代码。认知债务会对未来接触该代码的每一位开发者(包括三个月后的原作者)造成隐形的认知负荷。

**验证债务(Verification debt)**是已经学会信任输出结果的评审流程。在采用初期,评审者会仔细阅读 AI 生成的代码。在使用了几个月且基本运行良好后,他们就不再仔细看了。自动化偏见将评审从分析转变为批准。原本保持代码高质量的限流因素——资深人员的注意力成本——已被移除,却没有任何其他机制来替代它。

**架构债务(Architectural debt)**是代码与其原始设计意图之间的偏移。AI 不理解代码库的战略方向。它生成的代码在隔离状态下可以工作,但不维持不变性(Invariants),不遵守边界,也不遵循那些未在即时上下文中明确说明的规范。随着时间的推移,这些微小的偏差累积成一个代码库,其纸面上的架构与实践中的架构已经发生了足够的偏离,从而引发真正的运维问题。

这三者相互复合。认知债务让架构偏离更难被察觉;验证债务让债务在未经评审的情况下不断累积;架构偏离则增加了每个人的认知负荷。

究竟是什么在维持长期开发速度

那些能够维持真实生产力增长(而不仅仅是表面错觉)的团队,在一些具体的做法上与众不同。

他们将标准编码为机器可读的约束。 使用 Linter、架构测试和合并前检查 (pre-merge checks) 来强制执行你所关心的模式。而不是期望开发者去内化、AI 去遵循的文档。这些是真实的门禁 (gates)。如果你的团队有一套错误处理模式,该模式应该在合并时强制执行,而不是在 README 中说明。

他们将人工评审转向架构层面。 当 AI 承担了大部分语法级别的代码生成后,人工评审者应该做 AI 做不到的事情:评估这段代码是否属于该架构、抽象是否正确、这个 PR 是否解决了正确的问题。专注于行级正确性的评审所提供的信号,远弱于专注于系统级连贯性的评审。

他们将 AI 生成的代码视为草稿。 在从业者的描述中,最一致的发现是:直接接受 AI 输出作为最终结果是质量下降的直接原因。使用 AI 来加速草稿的生成,然后结合系统的完整上下文对草稿进行评审和修改,其结果与评审人工编写的 PR 完全不同。“草稿 vs 最终版”的区别,是“提效工具”与“债务累积工具”之间的业务边界。

他们持续维护架构指导。 这不是一次性的入职文档,也不是配置文件中的注释,而是一个保持架构约束最新并确保 AI 工具正在使用它们的动态过程。一些团队已经开始维护结构化的规范文件 (structured specification files),AI 工具在每次生成代码时都会将其作为上下文参考。这并不能消除偏差,但能显著缩小差距。

他们衡量正确的事项。 完成率、生成的代码行数和合并时间 (time-to-merge) 都是在“理解债” (comprehension debt) 悄然累积时看起来很漂亮的指标。能暴露瓶颈的指标是:PR 评审时间趋势、合并后缺陷率以及代码流失率 (code churn,即在生成后两周内被丢弃的代码)。预见到瓶颈的团队会追踪这些指标。没预见到的团队则在衡量开发速度,并纳闷为什么工程师们似乎变慢了。

“纯氛围编码” (Pure Vibe Coding) 的结构性问题

“Vibe coding” 一词被用来描述一种“提示词优先、评审极简”的工作流:描述你想要的,接受产出的,快速迭代而不停下来理解。对于原型和个人项目,这种权衡是合理的。

对于拥有多名贡献者且维护周期超过六个月的生产系统,权衡的逻辑就完全变了。每个功能的提速是真实的,但每开发小时累积的未来维护开销也是真实的,且随团队规模和代码库年龄而增长。当代码库达到一定规模时,由于没人完全理解 AI 代码而产生的理解成本,会超过 AI 生成工具带来的速度增益。这就是所谓的瓶颈期。

实践中真正关键的区别不在于“是否使用 AI 辅助”,而在于 AI 生成的代码是开发者能主动理解的,还是开发者在技术上负责但尚未完全内化的。前者能产生复合价值,后者则在累积债务。

前行

那些从 AI 编程工具中获得最佳长期效果的团队,已经不再仅仅将其视为“开发者生产力工具”,而是开始将其视为“代码库管理挑战”。生成速度不再是瓶颈,瓶颈在于你维持对代码库内容的真实理解的速度。

这与 AI 工具旨在解决的问题不同,这意味着解决它需要深思熟虑的过程选择,而这些选择并不会随工具附带。及早意识到这一点的团队在瓶颈开始前就将其制止。没意识到的团队则会花上数月时间苦思冥想,为什么他们最快的开发者现在感觉成了最慢的。

References:Let's stay in touch and Follow me for more thoughts and updates