麦式参考 MickerBook Reference

非目标

Non-goal

也常被叫作:这次不做什么不在范围内Out of scope

你可能会这么说

「本来只想做个登录,做到一半冒出来找回密码、验证码、第三方登录……」

非目标 Non-goal

明确写下这次不做哪些事,让一个需求不会自己长大。

我们打包交付的那天,「不带走清单」和功能清单一样长:任务数据(381MB)不带、游戏截图不带、内部工具不带、密钥绝对不带。这份清单的价值在事后才显现——泄漏扫描直接照单执行,四道检查没有一项需要临场纠结「这个该不该带」。没有它,每次打包都要把同样的纠结重新过一遍。

做需求时同理。需求膨胀有个特点:每一条追加都很合理。做登录,那当然要有找回密码;有找回密码,那要发邮件;发邮件,那要配邮件服务……每一步都对,合起来就是这个功能永远做不完。

非目标就是这根刹车。它不否认那些事值得做,只是说这一轮不做。和 AI 协作时它还有一个特别的作用:防止它替你补齐。你说做登录,它可能顺手把注册、找回密码、记住我全做了——然后你面对一堆没验证过的代码,不知道从哪儿开始验。写清「这次只做邮箱密码登录,其余都不做」,交付面就小到你能验完。

写非目标有两条实用心法。第一,要写具体名字,不要写「其他复杂功能不做」。「其他」这个词等于没有写——AI 和你对「复杂」的理解完全不同。把每一个你担心会混进来的东西点名写出来:找回密码、第三方登录、验证码、发邮件、记住我。第二,砍掉的东西要记在别处。非目标不是否决,是排队。把「以后要做」的清单单独放在一边,这一轮结束、或者产品真正需要时再捡起来。

最后诚实地说:非目标写得好不好,自己最容易骗自己。检验方法很简单——回头看看这一次的交付里,有没有出现清单上没有的东西。出现了,就是非目标没写到位,或 AI 没遵守;一次都没有,才说明这条刹车真的在工作。

长什么样 真实可交互,不是截图

✓ 这次做邮箱 + 密码登录
登录成功跳回首页
密码错误给提示
✕ 这次不做(写出来)找回密码
第三方登录
验证码
发邮件
记住我
交付面越小,你越有可能真的验完它

右边不是「不重要」,是「不在这一轮」。写出来它们就不会偷偷混进这次的交付里。

拆开看,里面有这几块

  1. 1
    本轮目标 In scope

    这次要做成的事,少而明确。

  2. 2
    非目标 Out of scope

    这次明确不做的事。要写具体名字,不要写「其他都不做」。

  3. 3
    以后再说 Later

    把砍掉的东西记在一个地方。非目标不是否决,是排队。

容易搞混?这样区分

非目标 范围与边界 Scope & boundary

边界限制能碰哪些文件和视觉,非目标限制做哪些功能。判断方法:边界防的是顺手改坏,非目标防的是越做越大。

看 范围与边界
非目标 MVP MVP

MVP 是一个产品阶段的整体判断;非目标是每一次派活时的具体清单。可以理解为:MVP 决定这一版做什么,非目标决定这一轮做什么。

看 MVP

什么时候用得上

开一个新功能

先写三条非目标。三条写不出来,说明你还没想清这次到底要什么。

AI 主动提建议时

它建议的往往是对的。回一句「有道理,但这一轮不做,先记下来」。

交付变得难验时

多半是范围偷偷长大了。回头补非目标,砍回能验完的大小。

你可以这样跟 AI 说

直接复制下面这段,把【】里的换成你的情况。它比一句「帮我加个 X」多说清楚了:改哪里、不许动啥、做完交什么。

【本轮目标】只做 [一件具体的事]
【本轮非目标】以下这些**这次都不做**,即使你觉得顺便做了更完整:
  - [具体功能 1]
  - [具体功能 2]
  - [具体功能 3]
【处理方式】如果你在实现中发现某个非目标是必须的,先停下来告诉我为什么,等我决定,不要自己加上。
【交付】做完后明确告诉我:本轮目标达成了没有;有没有任何非目标里的东西被顺带实现了(如果有,说清是哪些)。

最后一问「有没有非目标被顺带实现」很有用:顺带做的功能通常没验证过,而它会跟着这次改动一起上线。

它说「做好了」,你怎么自己验

这是本站的重头戏。AI 最会的不是写代码,是说「已完成」。这一条,它通常最多做到「实现」这层:代码写完了,能读能改,但没被验证过。

要亲眼看到这些,才算数

  • 对照非目标清单,逐条确认没有被实现(顺带实现的东西也是未验证的东西)。
  • 本轮目标是不是完整达成了——非目标的作用是聚焦,不是给缩水找理由。
  • 问一句「你有没有为将来的功能提前埋代码」。提前埋的通常没人验、也没人记得。
  • 确认被砍掉的需求记在了某个地方,不是消失了。

它常这么糊弄你

  • 「我顺便把找回密码也做了」——听起来是效率,实际是把未验证的代码塞进了本次交付。
  • 「为以后扩展预留了接口」——预留的东西通常无人使用、无人验证,却会被一起上线。
  • 用非目标当借口交付一个半成品:本轮目标本身也没做完。
  • 非目标写得太抽象(「其他复杂功能不做」),等于没写。要写具体名字。

非目标验到「实现」层就够:对照清单看有没有多做,不需要运行。

考考你 选一个你觉得对的

AI 说「我顺便把找回密码功能也一起实现了,这样更完整」。最合适的回应是?