乐于分享
好东西不私藏

用了三年 AI 编程工具后,我发现瓶颈从来不是工具

用了三年 AI 编程工具后,我发现瓶颈从来不是工具

Martin Fowler 的网站上最近发了一篇文章,讲一个叫 SPDD 的东西——结构化提示词驱动开发。我读完第一遍,合上浏览器,脑子里只有一个念头:

AI 编程的瓶颈,从来不是工具。

这话听着像废话。但我想说的是另一层——瓶颈不是”你不会用”,而是”你没想清楚”。


用 AI 编程工具的人,一开始都会经历一段蜜月期。一个人写代码的速度能翻好几倍,改个函数、加个接口,跟 AI 说一声,它就给你干了。

但蜜月期很快过去。你会发现一个问题:

一个人写得快了,整个团队交付的速度并没有跟着快。

为什么?因为从需求到上线,代码生成只是其中一环。需求得对齐、设计得想清楚、边界得定明白、改完得审查、审查完得同步。AI 能在几分钟内给你改好一个模块,但你要花几天时间跟同事解释为什么要这么改。

Fowler 那篇文章打了个比方——你买了辆法拉利,开在泥泞的土路上。引擎是强,但路不行。

这个比方精准。但我想补一句:比路更重要的,是你要去哪。


提示词不是说明书,是设计文档

SPDD 的核心思路很简单:把提示词当一等公民。别把它当成你跟 AI 聊天的记录——它是设计文档、是需求规格、是团队共识。

具体做法是用一个叫 REASONS Canvas 的东西,把一个需求从意图到设计到执行到治理,拆成七个部分。每个部分写清楚:做什么、不做什么、怎么做、什么不准碰。

然后才让 AI 生成代码。

更狠的是它的工作流规则:当现实和提示词偏离时,先修提示词,再改代码。

这条规则乍看反直觉。代码都跑不通了,你还去改文档?但你细想——代码跑不通,多半是一开始就没想清楚。代码只是执行者,它不会替你思考。你让它在一个模糊的指令下干活,它给你一个模糊的结果,然后你们俩都不知道问题出在哪。

模糊的需求得到模糊的代码,这不叫 AI 幻觉,这叫你没想清楚。


三个技能,一个底层逻辑

SPDD 提炼了三个核心技能:

  • • 抽象优先——在生成代码前,搞清楚有哪些对象、它们怎么协作、边界在哪
  • • 意图对齐——写代码前明确做什么不做什么,约定标准和硬约束
  • • 迭代审查——把 AI 输出变成受控循环,不是扔一次草稿就完事

这三个技能看起来各管一段。但如果你剥开来看,它们说的是同一件事:

你的认知带宽,决定了 AI 能帮你多少。

认知带宽——这是个计算机体系里的词。CPU 每个周期能处理多少信息,是硬件定死的。人也一样。你跟 AI 说”帮我做个用户系统”,它做出来一定不是你想要的。不是它笨,是你给的带宽不够。你没想清楚用户系统要支持什么、不支持什么、权限怎么分、数据怎么存。

AI 不替你思考。它替你执行。

你想得越清楚,它执行得越好。你想不清楚,它执行得越快,你越痛苦。


我错过的事

我自己踩过这个坑。

刚用 AI 编程的时候,我总觉得问题在”AI 不够聪明”。它写的代码有 bug,它理解错了我的意思,它加了一些我不需要的东西。我换了好几个模型,从 Sonnet 到 Opus 到 Gemini,总觉得是工具的错。

后来我发现,同样的 AI,换一个问题描述方式,结果天差地别。

不是我换了一个更好的工具,是我换了一个更清楚的表达方式。

这个转变不轻松。你得从”写代码”切换到”想清楚”。你得在动手前先把对象模型画出来、边界定下来、约束写明白。你得忍住”先跑起来看看”的冲动——因为在 AI 时代,跑起来的成本太低,跑偏的成本太高。

话说回来,不是每次都要这么正式。修个 bug、写个一次性脚本、做个快速验证——直接让 AI 干就行。SPDD 那篇文章自己也说了,救火式热修复和探索性试探,用这个框架反而是浪费时间。

它适合的场景是:你要做一个会长期存在、会被多人维护、会被反复修改的东西。核心业务逻辑、多团队协作的接口、要过合规审查的系统。

简单说,就是那些你以后会后悔当初没想清楚的东西。


真正的底

往最深处挖一层。

SPDD 看起来是一套流程、一个工具、一种方法。但它的底层逻辑其实是一句话:

在 AI 时代,软件开发的竞争力不是你会用哪个模型,而是你能把问题想多清楚。

这跟模型智商无关。你用最贵的 Opus 还是免费的开源模型,差距远没有”你想没想清楚”来得大。

Fowler 文章结尾引了 Hamming 的一句话:

在科学中,如果你知道自己在做什么,就不应该做。在工程中,如果你不知道自己在做什么,就不应该做。

工程要求你知道自己在做什么再动手。AI 把这句话放大了一万倍——因为现在你动手的成本接近零,但做错事的成本也跟着接近零。你让 AI 跑偏一毫米,它能在几秒钟内帮你偏出一公里。

所以问题变了。不是”怎么让 AI 写出好代码”,是”怎么把问题想清楚”。

抽象能力、建模能力、边界感、取舍判断——这些不是 AI 能替你做的事。它们是你在 AI 时代还能值钱的东西。

AI 时代的软件开发,不是模型智商的竞赛。

是认知带宽的较量。


原文参考

Martin Fowler. Structured-Prompt-Driven Development (SPDD). Thoughtworks.https://martinfowler.com/articles/structured-prompt-driven/


你在用 AI 编程工具时,遇到过”想不清楚导致跑偏”的情况吗?具体是什么场景?