好文翻译,原文链接
https://dev.to/matthewhou/the-metr-study-changed-how-i-think-about-ai-coding-4i84
上个月,METR发布了一项研究,这项研究应该会让每一位开发者感到意外。
研究团队选取了16名经验丰富的开源开发者——这些开发者对自己的代码库(codebases)了如指掌——并随机分配任务,让他们分别在使用和不使用AI工具的情况下完成对应工作。
预测效率影响 | 实际测量效率影响 | 研究后开发者的看法 | |
速度影响 | 提升24% | 降低19% | “它帮到了我” |
近一年来,我几乎每天都在使用AI编码工具。读到这项研究时,我的第一反应是“好吧,这些开发者肯定是使用方式不对”。我的第二反应则是:这正是该研究警示我们的思维误区。
认知偏差才是研究的真正发现
速度相关的数据备受关注,但我认为这项研究的重要发现是认知偏差(perception gap)。我们会感觉效率变快了,是因为AI处理了那些枯燥的工作——样板代码(boilerplate)、语法格式这类看似是工作内容,却并非实际难点的事务。与此同时,真正的难题变得更棘手了:理解AI修改的内容、验证代码的正确性、构建并非自己编写的代码的心智模型(mental model)。
西蒙·威利森(Simon Willison)是Datasette项目的开发者,也是我所知最多产的AI辅助开发者之一,他写下的一段话让我印象深刻:
“我不再能清晰构建出自己项目的功能与运行逻辑的完整心智模型。”
这位开发者借助AI辅助打造了80多款工具,连他都在心智模型构建上遇到了问题,或许这一问题并非取决于开发者的经验水平。
为何AI编码工具(AI coding tools)目前仍无法节省时间
我如今对这件事的看法是这样的:
使用AI之前:思考→编写→测试→调试使用AI之后:描述需求→审核代码→验证效果→调试AI生成代码→理清自身认知代码编写环节的成本降低了,但其他所有环节的成本都有所增加。而“审核非自己编写的代码”在认知层面的难度,远高于“编写自己理解的代码”——所有做过代码审核的人都明白这一点。
“AI让我们都变成了杰夫·贝索斯(Jeff Bezos)——把简单的工作自动化,却把所有艰难的决策留了下来。”——史蒂夫·耶格(Steve Yegge)
METR的研究从本质上证实了我们很多人有所感受却不愿承认的事实:AI编码工具并不能节省时间。往好了说,它只是重新分配了你的注意力投向;往坏了说,它营造出高效的假象,实则让认知负荷(cognitive load)不断增加。
如何高效使用AI编码工具(我的改变)
我不再以速度为优化目标,转而开始思考: “我的注意力究竟投向了哪里?”
1. 提前深度思考,而非急于向AI下达指令
在使用任何AI工具之前,我会用纯文本写下自己的需求、需求的原因,以及任务完成的标准。这并非写给AI看,而是写给自己。这个过程耗时5到10分钟,却是我全天最有价值的操作,因为它迫使我在生成代码前先进行思考。
肯特·贝克(Kent Beck)将这一区别定义为 增强式编码(augmented coding) 与 直觉式编码(vibe coding) 。后者是寄希望于AI直接生成可用代码,前者则是在AI编写代码前,就清楚可用代码该是什么样子。
2. 把代码验证当作核心工作
我曾认为代码审核是完成核心工作后的附加琐事,如今它本身就是核心工作。StrongDM团队将这一理念践行到了极致——他们的“黑暗工厂(Dark Factory)”模式完全取消了人工代码审核,所有精力都投入到测试、工具搭建与模拟场景中。人类只定义正确的标准,其余工作全部交由机器完成。
我尚未做到这种程度,但方向已然清晰:我的价值不在于编写代码,而在于结合自身具体场景,定义“正确”的标准。
3. 不再以产出量衡量工作效率
代码行数更多不代表效率更高,拉取请求(PRs)数量更多也不代表效率更高。哈尼斯(Harness)2025年的调研显示, 67%的开发者 调试AI生成代码花费的时间,比自己手动编写代码的时间还要多。如果你也是如此,那么更快生成更多代码只会让情况变得更糟,而非更好。
我如今关注的衡量指标是:我的注意力有多少投入到了只有我能做的决策中?架构选型(architecture choices)、面向用户的权衡取舍、“我们是否真的需要开发这个功能”——这些都是AI无法完成的工作。至于其他事务,我希望实现自动化,并非为了提速,而是为了腾出思维空间,去解决真正的难题。
AI编码效率背后令人意外的真相
如果METR的研究结论成立——即对于熟悉自身代码库的资深开发者而言,AI工具实际上无法节省时间,那么AI编码的价值主张就并非“十倍效率提升(10x productivity)”,而是更微妙的一点:
“如果你足够自律,就能将注意力投入到更具价值的工作中。”
这一说法远比“更快编写代码”更难让人接受。它要求你清楚什么是高价值工作,还要抵制住AI3秒生成200行代码带来的愉悦感。
我并未完全参透其中的道理。有些日子里,我还是会陷入直觉式编码,只因代码能编译通过就默认其效果良好。METR研究揭示的认知偏差,不仅存在于研究参与者身上,也存在于我们每个人身上。
但至少现在,当我觉得借助AI变得高效时,我会停下来反问自己:我是真的高效,还是仅仅感觉高效?
夜雨聆风