用原型替代 Spec-Driven:AI 时代写代码比写文档更便宜
Matt Pocock 指出一个普遍误区:很多人花大量精力给 AI 写超详细的 spec,指望一次性完美产出,却忘了现在生成代码的成本已经大幅下降——直接写原型来验证想法,比写文档更高效。
核心问题:大家都在给 AI 写 SPEC,却忘了可以直接写代码
Matt Pocock 观察到一个普遍现象:
很多人把全部精力花在写一份超详细的 spec 上,指望 AI 的产出能严丝合缝地匹配它——结果却常常跑偏。
这个思路的本质是:希望把所有东西一次性定好,然后一击即中。
但在这个过程中,大家忘记了一件事:
你其实可以直接写代码。你完全可以写代码。
原型和 Spec 的争论,从 Agile 时代就有了
原型(prototype)和 spec 的对比不是 AI 时代的新话题,它在 Agile 运动中就已经是核心讨论点:
- 原型:用来回答某些问题、用完就弃用的代码。目的是验证想法,不是交付产品。
- Spec:详细的需求文档,试图在动手之前把所有细节想清楚。
传统上,写 spec 的成本低于写代码,所以人们倾向于「先想清楚再动手」。但 AI 改变了这个等式。
关键变化:生成代码的成本大幅下降
目前来说,一件事情变便宜了——生成代码的成本相比之前大幅下降。
这是 AI 时代最重要的转变之一:
- 以前:写一个可交互的原型需要大量时间 → 人们选择先写文档
- 现在:用 AI 几分钟就能生成一个高保真原型 → 写代码比写文档更划算
高保真 vs 低保真原型
在编写原型时,有两个层次:
| 类型 | 适用场景 | 示例 |
|---|---|---|
| 低保真 | 方向性探索 | 草图、线框图、简单的页面结构 |
| 高保真 | 需要验证具体交互 | 弹窗的确认/取消按钮、表单验证流程 |
有些情况下,具体的交互是明确的(比如弹窗必须有确认和取消按钮)。但有些情况是特殊的——只有跑一遍半成品的代码,才能真正验证想法能否成立。
Questions really can only be answered by a prototype, and because producing these prototypes is now cheaper.
因为构建高保真原型的成本大大降低了,在很多时候,做一个可交互的原型比写一份 PRD 更有说服力。
实操:用 Claude Code 的 Skill 来做原型
Matt Pocock 的做法不是写 spec 或 PRD 文档,而是:
- 使用 Skill 机制来快速构建原型
- 用原型来验证设计问题,而不是在文档里猜测
- 原型回答完问题后,可以丢弃或重构
他提到的具体工具和方法:
- GoMe skill:用来快速搭建原型,而不是写 spec
- Wayfinder skill(Matt 正在创建的新 skill):把一大块工作拆成不同的规划 session,每个 session 有自己的 ticket
Wayfinder 的设计思路
| 概念 | 说明 |
|---|---|
| Session | 一次聚焦的规划对话,围绕一个明确的子问题 |
| Ticket | 每个 session 产出的任务卡片,指向具体要做的原型或实现 |
这本质上是一种 原型驱动的任务拆解:不是先拆任务再写代码,而是先写原型来暴露问题,再根据发现拆解后续工作。
我的理解
Matt Pocock 的核心观点可以总结为一句话:
在 AI 让写代码变便宜之后,原型比 spec 更划算——因为原型能回答 spec 永远无法回答的问题。
这个思路和传统软件工程教育是反的。我们习惯了「先设计再编码」,但 AI 改变了成本结构之后,「先编码来验证设计」可能才是更高效的路径。
具体到日常工作:
- 遇到模糊需求时,先让 AI 生成一个原型,而不是先写文档
- 用原型来跑通关键交互,确认可行性后再补文档
- 把原型当成可丢弃的探索工具,不用背负「这代码要进生产」的心理负担
- 用 Skill 封装常用的原型生成模式(如 GoMe、Wayfinder),进一步降低启动成本