软件开发的变革!规范就是软件!【原文来源】
https://www.lennysnewsletter.com/p/the-spec-is-dead-long-live-the-spec?utm_source=publication-search我读完这篇文章第一反应是拍大腿,这不就是我最近和朋友吐槽的——做产品的时候大家总把PRD(产品需求文档)当走流程的废纸,没想到AI时代这玩意儿反而成了香饽饽?之前我总觉得自己写需求文档是在应付事,给开发交差完就扔一边,现在看来完全是我搞反了它的价值啊!【规范(spec)】
这个核心概念,我之前对它的认知还停留在“PM要写的一大堆 paperwork”,就是写的时候抓耳挠腮,评审完就被扔进共享文件夹落灰的东西。作者说他刚进微软的时候,PM的能力居然是按需求文档的重量来算的,后来到Tripadvisor,大家反而觉得能把需求写在餐巾纸上就去评审的PM才是牛人,怎么说呢,好像不管在哪,大家都默认规范是“必要的麻烦”,没人把它当真的核心资产。结果现在AI写代码的速度快到飞起,开发早就不是瓶颈了,怎么让所有人——包括开发、设计、甚至AI自己——对齐到底要做什么,反而成了最大的难题,这时候规范的价值一下子就显出来了。里面提到OpenAI的Sean Grove的观点我特别受触动,他说
【完善的prompt就是新的源代码】
你想啊,以前我们写代码,源代码是最珍贵的,里面有注释、有逻辑、有所有的设计思路,编译出来的二进制文件只是个副产品,丢了也没事,有源代码就能重新生成。现在倒好,我们给AI一个模糊的需求提示,AI吭哧吭哧把代码写出来了,我们把代码当成宝贝存进版本库,反而把最开始写的需求提示扔了,这不就相当于把源代码撕碎了,反而把编译出来的二进制文件当宝贝存着吗?我之前用AI写小工具的时候真的干过这种事!当时要改个功能,对着AI生成的代码看了半天,怎么都想不起来最开始为什么要这么设计逻辑,早知道当时把写的详细需求存下来,哪用费这个劲。而且你看代码只能看到“是怎么实现的”,永远看不到“为什么要这么实现”,用户的真实痛点是什么、当时做了什么取舍、这个功能要达到什么业务目标,这些信息全在规范里,代码根本存不住这些上下文,可不就是作者说的“代码是规范的有损投影”嘛。我之前还听过一种说法,说现在原型工具这么发达,能快速做出来可交互的原型给用户测,还要规范干嘛?这篇文章直接把我这个疑问给解了,人家说
【原型没杀死规范,反而让规范变得更准了】
你看以前的老流程是:脑子里有个模糊的想法,就吭哧吭哧写规范、画原型、给开发做MVP,做完拿给用户一看根本不对,又要从头改,折腾死个人。现在可倒好,有v0、Lovable这些工具,不用写一行代码,几个小时就能把原型做出来,先拿给用户测,把用户的需求摸得透透的,逻辑、交互都改到用户满意了,再写出来的规范那叫一个清晰明了,扔给AI直接就能生成代码,根本不用来回返工。我上个月做一个小功能的时候就试了这个流程,先花了半天用原型工具搓了个 demo 找5个用户聊,改了3个核心交互才写的需求,最后开发完基本没改,效率比以前高了不是一星半点。里面举的Danny的例子也特别真实,Danny自己不会写代码,他们要给专家用户的页面加个跳转到申请页的按钮,他就先把需求整理成清晰的工单,然后用Copilot对接Claude,让AI去读工单、理解代码库、自己建分支实现功能、提PR,最后只要等工程师审核一下就行,这么一个功能几分钟就上线了。你看整个流程里最核心的根本不是写代码,是他写的那个需求够清楚、够具体。当然作者也提了,这个模式要跑通有几个前提:首先得
【足够具体】
,模糊的需求只会生成乱七八糟的代码,最好还能让AI先对照着代码库把需求补得更严谨;其次要【有所选择】
,简单的需求可以这么玩,复杂的功能还是得懂技术的人介入;最后得有【把关机制】
我之前还和同事聊,AI会不会把PM的工作抢了,现在看来完全是杞人忧天。你看Andrew Ng都提到,现在已经有团队提出PM的数量要是工程师的两倍,以前大家觉得工程师效率高了可以少招PM,现在正好反过来,工程师效率越高,越需要更多的PM去摸清楚用户要什么、把需求写明白、对齐所有人的目标。你想啊,AI生成代码的速度是“AI速度”,快得离谱,但是和用户聊天、理解用户的痛点、判断功能的优先级、做取舍,这些事还是“人类速度”,快不起来。以前PM的核心能力是懂用户、能把问题讲清楚、能对齐团队,现在这些能力反而更值钱了,因为以前你写的规范只要给人看就行,现在还要给AI看,写得越清晰、越没有歧义,整个团队的效率就越高。
我之前总觉得PM的价值是“能推进项目落地”,现在突然反应过来,落地早就不是难事了,难的是搞清楚“到底要落什么地”。以后说不定真的像Sean Grove说的,最厉害的“程序员”不一定会写代码,但一定能把自己的意图讲得特别清楚,能用精准的规范同时对齐人和AI。以后我可再也不敢随便应付需求文档了,毕竟这玩意儿现在可是我的“核心源代码”啊。