需求的写法

这一章决定你要返工几次。

「做个进销存」这句话没法开工。不是它笨——进货怎么进、谁录入、要不要审批、库存看到什么粒度、手机上填还是电脑上填,每一个岔路它都得猜。猜错了你返工,猜不下去它就反过来问你一串问题,一问一答五六轮,比你一次说清楚慢得多。

一条完整需求说清四件事

问自己例子
做什么这件事现在是怎么做的?送货回来的纸质单据,现在人工录进 Excel
谁用谁来填、谁来看?司机填,仓管核对,我看汇总
在哪儿用手机还是电脑?司机在手机上填,我在电脑上看
要看到什么做完了你想看到什么?按日期和客户筛的明细,能导出 Excel

写成一段话就是:

做一个送货单登记的应用。司机送完货在手机上填:客户、货品、数量、送达时间,可以拍张回单照片传上去。仓管在电脑上核对,核对过的标记成已确认。我要能按日期和客户筛,能导出 Excel。

这样一段话,比来回问答五轮更快。

四件事里,第一件最容易被跳过,但它信息量最大。比起「做一个报销审批」,直接讲现状:

现在报销是这样的:同事在微信里把发票照片发给我,我攒到月底手工填一张 Excel 交财务。问题是照片经常漏、月底对不上。

它从这段话里能读出来的东西,比一句「做个报销审批」多得多——谁参与、痛在哪、什么算做对了。而且这段话你不用组织语言,本来就在你脑子里。

不用写得像需求文档

不需要「本系统应实现……」这种腔调。就按你平时跟同事交代事情的说法讲,讲具体就行。

业务规则要精确,界面外观不必

最常见的犹豫是:说太粗它没法开工,说太细又累。这一条线基本能解决所有这类犹豫。

必须精确的,因为它猜不到,猜错了整个功能就是废的:字段的取值范围(「工艺只能是这八个值:D、E、8、9、G、I、F、2」)、编号和命名规则、上下限(「样品数量最多 99」「金额超过三万要总经理批」)、谁能干什么(「只有本环节的主管能点通过」)、流程环节和顺序(「生长 → 质检 → 切割 → 入库,不能跳」)、时间口径(「按送达日期算,不是录入日期」)。

不用精确的,因为它有合理的默认,而且改起来是一句话的事:按钮放左边还是右边、什么颜色,表格列的宽度和顺序,用下拉框还是单选按钮,提示语怎么写。界面这类东西,等你点开看一眼再说「这个表格把数量放前面」,比你提前想象着描述快十倍,也准十倍。

按这条线,需求大致分三档:

档位长什么样结果
定方向「做个进销存」它没法开工,会反问你一串。适合你自己也还没想清楚的时候——当成聊天用,不当成需求用
能开工四件事齐了大部分需求的正确档位。它能直接做出一个能点的东西,剩下的你边看边说
钉死细节带编号、枚举值、命名规则、上下限业务规则复杂、或者已经返工过一轮的时候用

不要一上来就用第三档。 先「能开工」,跑出来点一遍,再把不对的地方钉死。你会发现真正需要钉死的只有两三条,而不是你以为的二十条。

真到了需要精确的时候,一份「钉死细节」是这样的:

需要一个入库批次跟踪的应用。仓管创建批次,之后依次经过「待检」「合格」「上架」三个环节。这一轮先做创建批次和枚举值设置。

创建批次时填这些:仓库(下拉框,要能搜索)、预计入库日期、品类(枚举值:A、B、C、D 四种)、件数(最大 999)。

批次号根据上面自动生成:仓库代号 + 6 位预计入库日期 + 品类 + 3 位件数,件数不足三位前面补 0。比如 SZ01 仓、2026-08-12、品类 B45 件 → SZ01260812B045

枚举值设置:仓库和品类这两个列表我要能自己加减,不用每次找你改。

注意最后一句——「我要能自己改,不用每次找你」是一条极其值钱的需求,值得在很多地方主动提。否则以后每加一个仓库你都得回来说一次。

举例胜过描述

需求里有任何「格式」「规则」「算法」,直接给一个例子:

  • ❌ 「批次号是仓库加日期加品类加件数」 → ✅ 「批次号像这样:SZ01260812B045
  • ❌ 「按月汇总」 → ✅ 「像这样:2026 年 7 月 · 入库 320 件 · 退货 12 件 · 合格率 96.2%」

例子里藏着你自己都没意识到的规则——补零、百分号、保留几位小数——一个例子能替你说完。

一次说一块

想清楚全貌是好事,但第一句话只提第一块

先把「司机填单、我能看到」跑通,你点一遍,感觉对了,再说「加上仓管核对」,再说「加上月度汇总」。每一块都是几分钟的事,而且每一块跑通之后,你对下一块想要什么会更清楚。

一次性把审批、汇总、看板、导出、权限全说了,它会做很久,做完你会发现最基础的那块方向就偏了。

下一步:手上有 Excel 或者单据的话,直接发给它看比打字描述准得多。