程序本质上是一种存在于开发者心中的“理论”, 它包含程序做什么、设计意图如何映射到现实, 以及未来如何演化.

AI写的越多, 人类就越不具备审查它的能力.

初级工程师会花很多年写出在代码审查中被拒绝的代码, 不是因为不认真, 而是因为经验不足. 正是这些经历, 构建了判断力——区分“能写函数的人”和“能设计系统的人”. 你不可能一夜之间成为高级工程师.

除非你用AI.

Goodhart's Law states that "when a measure becomes a target, it ceases to be a good measure"
当一个衡量指标变成目标时,它就不再是一个好的衡量指标。

指标 vs 目标

Measure(指标):用来判断事情好坏的 观测工具

Target(目标):人们 刻意去追求 的结果

正常情况:

目标 → 产生结果 → 用指标去衡量

但一旦指标被当作目标:

目标 = 指标

人们就会 想办法操纵指标,而不是改善真实情况。


一个简单例子

假设公司用 代码行数 衡量程序员效率。

最初:

代码行数 ↑  ≈  产出 ↑

所以这是一个还不错的 measure

但如果公司规定:

每周必须写 2000 行代码。

这时程序员可能会:

结果:

代码行数 ↑
代码质量 ↓
系统复杂度 ↑

于是 代码行数不再能反映真实生产力

这就是 Goodhart's Law


- 微软 AI 负责人 Mustafa Suleyman 表示,18 个月内所有白领工作都会被自动化。
- Anthropic 的 CEO Dario Amodei 预测,6–12 个月内 AI 就会取代软件工程师,还引用自家工程师的话说,他们已经不写代码了,只是让模型写,然后自己编辑输出。
- Sundar Pichai 则透露,2024 年底谷歌新增代码中有 25% 是 AI 生成的。几个月后,Google Research 报告这个数字已经达到 50% 的代码字符。

在这些 AI 公司宣传之后:

AI 使用率
AI 生成代码比例
AI 工具使用次数

管理层希望通过这些指标实现真正的目标:

目标:提高开发效率

所以最初逻辑是:

AI 使用率 ↑  ≈  开发效率 ↑

于是他们开始 量化指标

比如:

统计每个工程师的 AI 使用量

一旦指标变成目标

当公司开始:

用 AI 使用量评价工程师

指标就变成了 目标

开发者为了 保住工作 / KPI,会开始优化指标本身,而不是优化真实目标。

于是行为变成:

目标:AI 使用量 ↑
而不是:开发效率 ↑

这时候就出现可能的行为:

“我让 Claude 去随便翻目录找 bug。”

本质是:

生成大量无意义 AI 请求

因为系统只统计:

AI 调用次数

而不统计:

真实价值

软件工程从来不只是敲代码。它包括定义问题、真正理解问题、把业务语言转化为产品语言再转化为代码、澄清模糊点、做权衡、理解改动会带来什么连锁反应。在 AGI 到来之前,总要有人做这些事,而 AGI 离那一步还很远(所幸如此)。凌晨三点电话响起,你能在没有 Agent 的情况下排查问题吗?如果不能,你可能已经把 AI 编程用得太过了。如果 AI 使用率变成开发者绩效指标,也许“用得太多”同样应该被约束。不是因为工具不好,而是因为编码能力值得维护。