需求不是一句「我想要个功能」

「我想要一个能导出报表的功能」——这句话听起来很具体,但真做下去会发现:导出什么格式?给谁看?多长时间导一次?数据范围是什么?每一个问题没答清楚,做出来的东西都可能不是想要的。

需求工程要做的,就是把这种一句话的想法,一步步追问到团队能动手、能验收的程度。它不是写一份厚厚的需求文档存档,而是一套不断澄清、不断对齐的过程。

需求写错或写糊,后面设计、编码、测试全都会跟着错,而且越晚发现代价越大。
本文核心知识点
  • 先问问题用户是谁、要解决什么、成功长什么样。
  • 用户故事一句话说清角色、行为与价值。
  • 验收标准把「做完」翻译成可判断的条件。
  • 会拆分大块故事切成一两周能交付的小块。
  • 持续对话需求随理解加深而更新,不是一次定稿。
需求工程示意:蓝色渐变背景上一块半透明发光看板墙,墙上错落贴着多张堆叠卡片便签,卡片之间由发光箭头连成从左到右流程,旁边悬浮放大镜与对话气泡,扁平科技插画
看板上的每张卡片,都应该是一个能被讲清楚、被验收的小需求。

先分清谁是用户、要解决什么问题

拿到一个想法,第一步不是讨论怎么做,而是先问三个问题:谁在用?他现在遇到什么麻烦?他期望变成什么样?把这三件事搞清楚,方案自然会收敛。

问题要问出来的东西例子
谁是用户具体角色,不是「所有人」是财务,还是店长?
现在的麻烦他现在是怎么凑合解决的手工拼 Excel 到半夜
期望的样子做完后他能少做什么一键导出、十分钟完事

很多做歪的需求,都是因为跳过了这一步,直接钻进了「怎么做」。先把问题问对,比急着动手重要得多。

用户故事:作为谁、想要什么、为了什么

用户故事是一种把需求写小、写人话的格式。它不规定界面长什么样,而是讲清楚一个角色为了什么价值,需要什么能力。

# 一个干净的用户故事长这样
作为 财务人员
我想要 一键导出本月的销售报表
以便 不用再手工拼 Excel 就能对账

# 注意三点:
# - 角色具体(财务,而不是「管理员」)
# - 行为聚焦(导出本月报表,不是「做个报表模块」)
# - 价值清楚(省掉手工对账)

故事不是合同,而是一句提醒团队一起讨论的话。它背后真正的细节,要靠评审时大家你一言我一语补齐。

验收标准:把「做完了」说清楚

开发说「做完了」,产品说「这不是我要的」,十有八九是因为「做完」没有一个共同的判断标准。验收标准就是把这句话翻译成几条能被打勾的条件。

  • 正常情况:导出的报表包含本月全部已完成订单。
  • 边界情况:没有数据时给出明确提示,而不是导出空表。
  • 格式要求:导出为通用表格格式,财务能直接打开。
  • 权限要求:只有财务角色能看到导出按钮。
# 验收标准示例(讲清「什么算做完」)
- 能按月份筛选并导出报表
- 导出文件可被表格软件正常打开
- 无数据时显示提示而非报错
- 非财务角色看不到导出入口

有了这几条,开发知道做到什么程度算完,测试知道该测什么,产品验收也不用凭感觉。