程序本质上是一种存在于开发者心中的“理论”, 它包含程序做什么、设计意图如何映射到现实, 以及未来如何演化.
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 使用率变成开发者绩效指标,也许“用得太多”同样应该被约束。不是因为工具不好,而是因为编码能力值得维护。