尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

AI编程时代的需求闭环:Grill-Me、BFS、AFK三招减少返工

AI编程时代的需求闭环:Grill-Me、BFS、AFK三招减少返工 我见过太多人拿到AI编程工具之后的第一反应是赶紧把脑子里那个模糊的念头丢进去让代码瞬间长出来。结果第一版十分钟就出来了看起来像模像样一跑全崩改着改着发现根本不是bug的问题而是需求本身就没立住。这不是个例。AI写代码能力越强需求含糊带来的返工成本就翻得越狠。我在连续踩了几轮坑之后慢慢总结出一套笨办法核心是三件事Grill-Me、BFS、AFK。Grill-Me是“烧烤式质询”让AI反过来盘问你BFS是“广度优先搜索”先把需求地图铺满再下钻AFK是“离开键盘”冷却一段时间再回头重审。这三件事组合起来就是一条可靠的需求闭环。这篇文章把这些做法、模板和踩过的坑都拆开讲适合正在用AI写产品、做内部工具或者带项目的人参考。1. 为什么越急越出错需求闭环缺一环1.1 AI写代码太快反而放大了需求含糊的代价传统开发流程里需求模糊的代价是被“开发速度”天然缓冲掉的。你心里有个七成清楚的想法让一个程序员手动实现他边写边问你边答边改等代码真正落地的时候需求其实已经被现场修正过好几轮了。手动写代码慢这个“慢”本身就是一个纠错机会给了你和需求之间反复碰撞的余地。但AI编程工具把“写代码”这一步压缩到几乎为零问题就全暴露出来了你在需求只清楚六成的时候AI已经把代码全部生成了而且生成得无比自信。它不会像人类程序员一样停下来问“这里我没理解”而是会按照数据分布里的“最大概率”把你没说清的地方自动补全。等你看到成品才发现它替你做了一堆你没想要的假设——而且这些假设深嵌在代码结构里改起来可能比重写还贵。我自己做过一个内部小工具需求只有一句话“做个表单验证一下手机号。”AI收到之后立刻生成了一套带正则、防重复提交、带Toast提示的完整页面。看起来很好但我们的真实场景是批量导入手机号之后做预处理合法性检查根本不是用户手填。架构从一开始就错了后面所有东西都白写。所以我现在特别认同一个说法AI写代码越快需求含糊要付出的“赔偿倍数”就越高。你越是急着让AI产出就越要在产出之前把需求压瓷实。1.2 需求闭环不是“确认一次”而是三段式收敛很多人把需求闭环理解成“跟用户问清楚、写成文档、然后开工”。但绝大多数返工都发生在你“以为定下来了”的时候因为你和AI之间根本没有建立起共同认知。我现在的定义是这样的需求闭环是把一个原始想法经过澄清、结构化、冷却验证三个阶段变成一份人和AI都能检索、都能验收的基线。它不是一个一次性动作而是一段螺旋收敛的路径。为什么要这么麻烦因为人脑有个首因效应你第一遍说出来的需求往往不是你真正的需求而是你脑子里最新鲜、最让你兴奋的那一小片想法。你把它当成了全部。传统协作中产品经理、开发、测试会通过多轮评审互相纠偏但当你独自面对AI时这个纠偏机制消失了AI只会顺着你的第一版描述往下走直到把错误放大到肉眼可见。举一个特别生活化的例子装修。没有人会拿一张户型图就跟工长说“开工吧”靠谱的做法是水电交底、瓷砖交底、木工交底一遍一遍确认。你以为是确认一次实际是反复收敛。AI协作开发也是同一回事但很多人把AI当成了那个“拿着户型图就开工”的工长。所以我做需求闭环时只保留三个动作Grill-Me负责澄清BFS负责结构化AFK负责冷却验证。下面一个一个拆。2. Grill-Me让AI反过来拷问你的需求2.1 为什么是“让AI问你”而不是“你问AI”绝大多数人用AI都是自己主动提问“帮我写个XX功能”“这个该怎么实现”。这没错但在需求还没立住之前这种用法有一个副作用对话的方向全被你脑子里的假设牵着走AI只会顺着你的话补全细节不会主动揭穿你想法里的空白。你问得越多AI越像是在帮你“圆”而不是在帮你“拆”。Grill-Me的思路就是把提问方向整体反转。所谓Grill就是烧烤式盘问让AI扮演最挑剔的评审、最较真的测试、最苛刻的用户反过来问你几十个问题。为什么要这样做因为AI有一个很特殊的价值它被训练过海量的软件项目数据见过无数业务规则的坑。当你把需求描述丢给它让它提问时它能调用远超你个人经验的质疑库问出来的问题里往往藏着上线之后一定会踩的雷。还有一个容易被忽略的心理机制人的思考是有防御性的。自己主动想需求时人会下意识回避那些不好回答的角落比如“这个数据到底谁负责维护”“第三方服务挂了怎么办”“权限到底给到哪一层”。但当你面对一张AI列出的问题清单时这些问题绕不过去了你必须回答。回答得上来需求就扎实一分回答不上来恭喜你提前找到了项目里的定时炸弹。这个就叫被别人盘问出来的“清醒”。2.2 三分钟质询模板我每次都在用的提示词Grill-Me不需要复杂工具一段提示词就够了。我试过很多种写法下面这个版本是我用了快一年、最稳定的一版你是一名参与过大量企业级项目的资深需求评审专家。 我准备做一个产品需求描述如下 【粘贴你的原始需求越具体越好即使只有两三句话】 请你分别扮演三个角色每个角色提出15个问题 1. 挑剔的业务方关注业务规则、利益冲突、数据口径、人机分工 2. 较真的测试工程师关注异常场景、边界条件、断网超时、权限与并发 3. 真实的目标用户关注操作习惯、文案歧义、错误提示是否看得懂。 要求 - 只提问不要给解决方案不要给任何实现建议 - 每个问题后面用一句话说明“这个问题为什么重要” - 把问题按“致命/重要/可选”三档标注剔除重复项。这段提示词里最关键的一点是“只提问不要给解决方案”。我见过很多人写的提示词是“帮我看看需求有哪些漏洞”AI给出来的结果经常一半是问题一半是方案而人的注意力天然会被方案带走看到方案就开始讨论“这个好不好实现”反而把问题本身放过了。只提问是为了逼你自己保持清醒。回答的方式也很简单直接在每条问题下面写答案写不出来的就标“待确认”然后把所有“待确认”项汇总成一页纸。一轮Grill-Me跑下来大概二十分钟但就是这二十分钟经常能省出后面几天的返工。我甚至试过让AI把同样的问题用不同的话问三遍来检查我是不是在自欺欺人效果出乎意料地好。2.3 案例拆解一个工时统计需求是怎么被问出漏洞的拿一个我做过的真实场景举例。有位同事想给销售团队做个工时统计系统他最开始的需求描述只有一句“统计大家每天工作了多少小时。”如果直接把这个需求丢给AIAI多半会画一个打卡表、一张汇总报表然后交差。但先走Grill-MeAI立刻抛出了一连串让人冒汗的问题离职员工的工时记录是永久保留还是离职后自动归档销售在外面见客户时手机定位和手填工时到底以哪个为准跨时区的员工按哪个时区统计超过24点结束的工作算前一天还是后一天加班基准线是多少不同岗位是否一致经理能看到下属的日报吗可以修改吗员工当天没填表系统是自动补0还是标记异常并推送提醒数据导出给财务时口径和系统内展示口径是否完全一致这些问题里至少一半是这个项目真正的“工作量来源”。比如“自动补0还是标记异常”如果没有在需求阶段定清楚AI大概率会默默补0月底财务报表就出错了。你看问题根本不是AI不会写代码而是需求描述里完全没有这些上下文。AI问得出这些不是因为它聪明而是因为它被训练数据里无数个“工时系统”教过了知道这种项目一定会在这里出问题。Grill-Me的意义就是把这些空白提前炸出来而不是等代码上线之后被用户炸。3. BFS广度优先需求梳理先把地图铺满3.1 为什么选BFS不选DFSBFS和DFS是图论里两种遍历算法。BFS是广度优先搜索先平铺一层再深入下一层DFS是深度优先搜索沿着一条路走到黑再回头。做需求梳理时我专门选用BFS是因为人脑天然倾向DFS——你聊到一个功能就忍不住往下钻一直钻到数据库字段和按钮颜色结果旁边还有三个功能模块、五类用户角色根本没被想清楚。这个习惯在传统开发里还能靠后期修补勉强度过但在AI协作开发里这是一个代价特别昂贵的错误。原因在于AI在写代码时第一轮输出的代码结构会自动沉淀成整个项目的“地基”你从A模块深挖到极致让AI生成了精密得不得了的A模块代码回头再想补B模块AI只能在已经成型的地基上硬接结果B模块处处别扭代码一天比一天脏。BFS的做法正好相反不管细节先把整个需求地图的第一层铺满。这个系统的使用者分哪几类每类分别要做什么核心动作牵涉哪些外部系统哪些数据是上游进来哪些要送到下游第一层全部列完之后每个模块再往下走一层列出它的场景变体两层就够了再深属于写代码阶段的事。先把地图铺满你才知道自己要去哪里而不是对着一条路径狂奔到悬崖。3.2 画需求广度图谱两层就够了说实话BFS不需要任何专业工具一张表格就可以。我常用的列结构是这样的功能模块核心场景涉及角色与权限数据流入/流出例外情况登录注册验证码登录未登录用户手机号下发验证码号码已注册、号码未注册、验证码超时日报填写销售填当日工时销售、销售经理上报到日汇总表跨日、漏填、重复提交导出报表财务口径导出财务、销售经理汇总表导出Excel无数据、超大文件、权限不足每填一行我都强制自己填“例外情况”。这是BFS和普通功能清单最大的区别你必须在第一层就把“空数据、超大数据、并发、未登录、无权限、断网、第三方失败、重复点击”这些场景标出来。这个习惯的本质是把测试思维提前到需求阶段。因为AI生成代码时你给的这些例外情况是它唯一能参照的边界你没写它就会自己编一个“最合理”的但往往不是你要的。当时做那个工时系统我的BFS表格填了四十多行其中“例外情况”占了三分之一。填完之后回头看才发现很多例外情况并不需要做进MVP但它们的价值在于帮我区分了“必须处理”和“可以提示但不管”。没有这一层梳理后面所有取舍都无从谈起。3.3 把每个场景变成一条验收清单BFS图谱不能停在表格里必须翻译成一种人和机器都能读的形式——验收清单。做法很简单每个场景对应一条以“当……时系统……”句式开头的陈述。举个例子当员工在当日23:55提交当天工时系统按当天日期登记。当员工漏填工时且当天已结束系统标记为“漏填异常”并发送提醒不得自动补0。当未注册手机号请求验证码登录时系统提示跳转注册不创建任何会话。验收清单有两个用途。第一它是给AI写代码之前必须读懂的上下文你要把这份清单和原始需求一起交给AI明确告诉它“所有实现必须覆盖以下场景”第二它是项目验收时的核对表开发者一条一条跑场景跑不通过的就是未完成需求而不是看“整体感觉差不多”。条数方面我的经验是MVP阶段最多50条。超过50条人的审阅欲望会断崖式下跌AI在单次上下文里也会塞不下硬塞进去反而影响生成质量。少于20条说明BFS铺得不够大概率还有隐藏场景没挖出来。这张清单以后就是需求基线的骨架也是Grill-Me下一轮质询的输入。4. AFK离开键盘是需求闭环里最便宜的一环4.1 连续对话中人和AI会互相“圆谎”AFK是游戏圈的黑话Away From Keyboard意思是你离开电脑一段时间。我把这一步单独拎出来是因为在Grill-Me和BFS做完之后人最容易犯的错就是“趁热打铁”马上把需求和清单扔给AI让它赶紧开始干活。但实践证明趁热打铁在AI协作里是个伪命题。原因有两个。第一人在连续对话中是会陷入确认偏误的。刚把自己的想法写下来、被AI问了一轮又补了一轮之后你会越看越觉得“对我要的就是这个”。但那个“对”的感觉更多来自连续性而不是完备性。人在构思兴奋期会高估自己想法的完备度情绪越亢奋这种高估越严重AI那种始终流畅、始终配合的输出风格还会进一步强化它。第二很多人没意识到AI也有它的“上下文化偏置”。如果一段会话被连续拉得很长模型会越来越多地顺着前文已经建立的错误理解往下输出它倾向于保持连贯而不是中途纠正偏差。换句话说你带着一个错误假设连续对话三小时后面两小时AI基本都是在给这个错误假设“圆谎”。要打破这种双向误导最便宜的办法不是跟AI讲“你要客观”而是物理断连离开屏幕让上下文冷却。这是我踩过不少坑之后才想明白的。4.2 四个时间尺度的AFK设置AFK不是只有“放一天”这一种。我实践下来按时间尺度分四档微冷却每完成一轮Grill-Me或者每写完10行BFS表格站起来接杯水、看看窗外至少5分钟。作用很简单打断思路惯性让注意力重新聚焦。短冷却完成Grill-Me全部问题回答后隔一个中午或者隔一夜再回来重读自己的回答。很多时候你会惊讶“我当时怎么会这么答”中冷却完成“Grill-MeBFS验收清单”整套之后强制隔一个完整晚上第二天清晨重读。这是黄金时段因为睡眠中大脑会整理记忆第二天早上最容易发现逻辑断链。里程碑冷却在原型Ready、准备给别人演示之前强制再放一天。宁可功能范围稍微缩一点也要保证演示的时候不出丑。AFK最长不设死线但我自己的经验是48小时封顶。冷却的目的只是让你站在“第二天早上”的视角重新看时间再长边际收益就变小反而变成了拖延。我自己一般是中午做一次短冷却晚上收工第二天早起做中冷却基本不影响进度。4.3 冷却之后的重读用红蓝绿三色收敛冷却结束打开之前的验收清单和BFS表格我建议用三色标记做一次收敛。红色代表“必须改”比如新增了一个之前完全没考虑到的角色蓝色代表“存疑”比如某个例外情况实际发生率极低需要再和用户确认绿色代表“已经确认且通过了冷却考验”。重读的时候我只看三个问题BFS图谱有没有冒出新的场景分支Grill-Me的问题里有哪些是我当时回避掉的验收清单里的某条规则和旁边的规则在逻辑上能不能自洽一个很经典的例子一条写着“漏填工时自动补0”另一条写着“月底导出财务口径不带补0数据”这两条其实不矛盾但沉浸状态下人根本意识不到它俩需要同时存在。冷却之后再看一眼就发现了。AFK看起来什么都没做实际上做了最省钱的需求修正。因为此刻改动成本是零代码还没写AI还没开跑你损失的只是等了一天要等代码写完再发现这些那就是十倍百倍的代价。所以每次有人问我“时间紧能不能跳过AFK”我的回答都很直接时间越紧越不能跳因为返工没有时间。5. 三件套怎么变成真正的“闭环”5.1 完整走查从原始想法到需求基线三个动作是顺序执行的但合在一起才叫闭环。我现在做项目的标准流程是五步把原始想法固化成三到五句话的需求描述第一版越朴素越好。执行Grill-Me让AI生成质询清单逐条回答标出“待确认项”。带着问题清单做BFS铺满功能地图第一层再下钻第二层同时生成验收清单。执行AFK冷却回来后用红蓝绿三色收敛矛盾和缺口生成最终需求基线。用需求基线作为前置文档交给AI开始编码。编码过程中只要出现“语义断裂”——也就是AI反过来问你某个需求的真实意图或者它完成不了自行闭环——就跳回第2步重新走一小轮。最后一步是真正把“闭环”闭合的环扣。因为你会发现AI在实现过程中一定会产生新的问题它可能发现验收清单里有两个场景在技术上互斥也可能发现某个数据来源根本不存在。这些信息必须回流到需求文档里去更新基线再次确认确保每个人拿到的都是最新版本。我见过很多团队做完第4步就觉得万事大吉一头扎进写代码再没回头结果需求文档和实际代码越走越远最后谁都不知道哪个才是“真正的需求”。回流这一下成本很低但能避免整个项目变成两本账。5.2 团队和个人两种落地节奏这套流程如果每次都用“全套标准版”对个人开发者来说太重了。我按使用场景拆成两种落地方式。团队场景可以按一周节奏来设置。周一让需求方写原始描述当天就跑Grill-Me周二用BFS铺需求图谱、生成验收清单周三安排成AFK冷却日不排任何创作任务周四早上做红色标记收敛下午开需求评审会周五让AI生成原型。这套节奏最大的好处是每个环节都有明确负责人评审会开的不是“感觉会”而是逐条过验收清单过完一条销一条特别有底。个人场景可以压缩到一天。上午花一小时Grill-Me中午午休当作短冷却下午花一小时做BFS和验收清单晚上直接让AI编码。如果项目复杂或者风险高再多过一个晚上做中冷却。我做内部小工具基本就是这个节奏压力不大质量还稳。另外有一个很重要的原则不是所有需求都值得跑完整套闭环。一次性的脚本、生命周期短、没有持久数据、出错影响面很小直接丢给AI写就行了没必要上流程。但一个要维护三年、牵扯多部门数据的系统不跑就是给自己埋雷。我的判断标准大概看三样会不会产生持久数据会不会被别人持续使用出错后的影响面是不是超过一个人的工作量前两项只要中一个就值得老老实实跑一遍。5.3 常见问题与排查实录这套流程我用了挺长时间也遇到过很多次执行不下去的情况把最常遇到的问题和我的处理方式写在这里。问题一AI问出来的问题太多看完就不想答了。我的处理方法是分层抽样。让AI先把问题按“致命/重要/可选”三档标好你只回答致命档里那几条必须答的重要档挑一半可选档直接跳过。完全没有必要追求全部回答那会消耗完你的耐心。问题二BFS铺开之后场景列表失控范围越来越大。用MoSCoW方法切一刀Must必须有Should尽量有Could看心情Wont这期坚决不做。注意Wont要和用户明确讲清楚不然你做的收敛会被当成漏需求。问题三AFK冷却之后发现需求要大改感觉之前的活白干了。恰恰相反这是AFK最赚钱的时刻。改动只发生在表格和文字层面成本为零如果没冷却两个星期后AI已经写出了完整系统那时的改动才是灾难。问题四团队觉得这套流程太磨叽净搞文档功夫。我的解决办法是不向团队推销“流程”只推销“验收清单”。验收清单能当测试用例用、能当演示脚本用、能用最小成本让所有人看到项目边界。团队只要用一次就会发现这根本不是写文档而是在省返工。问题五怎么判断需求真的闭环了我个人的标准有三个信号第一Grill-Me阶段AI问出的新问题数量降到个位数第二验收清单连续两轮冷却重读都没有红色标记第三AI开始编码之后再也没有出现“这里你说的意思是”这类语义断裂。满足这三条基本可以放心把键盘交给AI了。最后再说一点很个人的体会。我最早也觉得这套流程麻烦“让AI问自己问题、再等一天才开始写码”听起来就像脱裤子放屁。直到连着两个项目都在代码写完一周之后被推翻重来我才明白一个道理AI负责疯狂产出人就应该负责冷静收敛。别急着让AI写代码先让AI问你问题把需求地图铺宽再离开键盘一天——这三件事做完后面所有的写码过程反而会变成一种享受。如果你想立刻试一次我的建议是压到最小下一个项目开始前先花十分钟用上面那段Grill-Me提示词让你手里的AI反问你十五个问题。你会发现真正卡住项目的从来不是代码写不出来而是那些你从没被问过的问题、也从没得到过回答。
返回列表