详细内容
1. 生产力的底层约束:维护成本
作者将“新增功能开发”和“维护活动”分开讨论。维护包括:
- 修 Bug
- 清理设计问题
- 升级依赖
- 处理历史实现带来的连锁修改
关键判断是:每一行新代码都在给未来持续记账。
不是“写完即完结”,而是“写完即进入长期维护期”。
作者给出一个示意性估计(强调数字可讨论,但趋势稳定):
- 每投入 1 个月开发,在第 1 年会额外消耗约 10 天维护;
- 之后每年还要持续消耗约 5 天维护。
这意味着,随着代码存量增长,维护占比会逐步侵蚀新功能时间。示意曲线中,团队在大约 31 个月后,新功能时间占比跌破 50%。
2. 为什么这个模型“粗糙但有用”
作者承认模型并非现实的精确镜像,但认为方向上非常可靠:
- 创业公司早期速度快,中后期会明显变慢;
- 5-9 年后常见“团队很忙但产出变少”;
- 组织会通过延后修复、不断加人、重写系统等方式“掩盖”问题,而不是消除问题。
所以争论小数点意义不大,核心是:维护成本是长期生产力的主导变量。
3. AI 变量如何改变曲线
作者把 AI 引入为两个变化:
- 变化 A:单位时间写出更多代码(产出倍率 > 1)
- 变化 B:每单位代码的维护成本变化(可能升高、持平或下降)
核心关系可写成:
长期维护压力倍率 ≈ 产出倍率 × 维护成本倍率
情景一:AI 让产出翻倍,维护成本也翻倍
- 产出倍率 = 2
- 维护成本倍率 = 2
- 维护压力倍率 = 4
短期会看到明显提速,但很快被维护吞没。文中图示给出的是:大约几个月后收益被吃完,随后长期低于不用该 AI 的基线。
情景二:AI 让产出翻倍,维护成本“仅持平”
- 产出倍率 = 2
- 维护成本倍率 = 1
- 维护压力倍率 = 2
很多人会直觉认为“已经很好了”。作者指出这仍然不够:
- 短中期依然有收益;
- 但随着代码存量累积,维护负担继续加速;
- 在更长周期可能变成净负收益。
也就是说,“可维护性不变”并不能支撑“长期提效”。
情景三:AI 让产出翻倍,同时把维护成本减半
- 产出倍率 = 2
- 维护成本倍率 = 0.5
- 维护压力倍率 = 1
这是作者认为“数学上成立”的可持续区间:
- 你拿到提速红利;
- 又不会把未来维护债务放大;
- 即使未来停止使用该 AI,也不会留下明显的结构性后遗症。
4. “停用 AI 也回不去”的锁定效应
文章特别强调了一个常被忽视的点:
- 你停掉 AI 后,新增提速会立刻消失;
- 但过去由其产生的高维护代码存量不会自动消失。
因此会出现“收益可撤销、负担不可撤销”的不对称:
- 上车容易;
- 下车后仍要为历史代码付费。
这也是作者用“Hotel California(能入住,难离开)”隐喻的原因。
5. 作者不是反 AI,而是反“单指标提速”
作者在附言中明确:这不是简单反 AI 立场。
他给出的方向是:
- 可以继续追求编码速度;
- 但必须同等投入去压低维护成本;
- 也可以用 AI 提升维护任务本身的效率(而不只是写更多新代码)。
换句话说,真正要优化的是系统级生产力,不是“本周提交行数”。
文章的管理启发(面向团队落地)
1. 重设 KPI:从“输出速度”改为“净生产力”
建议把以下指标放进同一看板,而不是只看交付速度:
- 新增功能交付周期
- 缺陷回流率(发布后修复比例)
- 代码评审平均时长与有效意见密度
- 依赖升级滞后天数
- 历史模块变更成本(同类需求耗时趋势)
2. 评估 AI 时必须做“双轴对照”
至少对照 2 组数据:
- 短期轴:需求吞吐是否提升
- 中长期轴:维护工时占比是否抬升
如果只有短期轴改善,不能判定“成功上线”。
3. 在流程上抑制“AI放大技术债”
可执行做法:
- 对 AI 产出代码提高评审门槛(不是降低)
- 强制关键模块补齐可读性说明与测试
- 对“快但难懂”的实现增加返工预算
- 设立“维护预算”上限,触发即暂停扩张开发
4. 决策阈值可以用一个简化规则
若 AI 带来 X 倍编码产出,则目标应接近:
单位维护成本 <= 1/X
示例:
- 产出 2 倍 -> 维护成本需降到 1/2
- 产出 3 倍 -> 维护成本需降到 1/3
做不到这条时,应把 AI 使用范围限制在低耦合、低寿命或可快速替换的代码域。
一句话结论
AI 时代真正稀缺的不是“写得更快”,而是“写得更快且更容易维护”。
只拿前者,你得到的是短期兴奋;同时拿到后者,才是长期复利。