需求分析实战(下):需求优先级排序与SRS核心要素
上一讲我们聊了怎么把用户说的“我要一个快的系统”翻译成技术语言。但需求收集完了,问题来了——资源有限,时间紧迫,先做哪个?
我见过太多团队,一上来就铺开所有需求,结果三个月过去了,核心功能还没跑通。说白了,需求优先级排序不是“哪个老板声音大就做哪个”,它需要一套科学的方法。
MoSCoW法则:四象限里的生存智慧
MoSCoW 法则是我个人最常用的优先级排序工具。它把需求分成四类:
| 分类 | 含义 | 占比建议 | 典型例子 |
|---|---|---|---|
| Must have | 必须有,否则系统无法上线 | 20-30% | 用户登录、支付核心链路 |
| Should have | 应该有,但可以找替代方案 | 30-40% | 消息推送、数据导出 |
| Could have | 可以有,锦上添花 | 20-30% | 深色模式、动画效果 |
| Won't have | 这次不做,以后再说 | 10-20% | 多语言支持、第三方集成 |
关键原则:Must have 如果超过 30%,说明你的范围控制出了问题。我曾经在一个项目中,产品经理把 60% 的需求都标成 Must have,结果就是——没有优先级。
排序实操:从需求池到优先级矩阵
光有分类还不够,你得有具体的操作步骤。我习惯这样做:
- 先列需求池——把所有需求写下来,别管优先级
- 做价值评估——每个需求对业务目标的贡献度,1-5 分
- 做成本评估——开发成本、风险、依赖,1-5 分
- 画四象限图——横轴是价值,纵轴是成本
- 应用 MoSCoW——高价值低成本 = Must have,低价值高成本 = Won't have
我的一个小技巧:排序时拉上业务方一起过。别自己闷头排,否则上线后业务方说“这个功能我明明提了,为什么没做?”——你解释起来很被动。
需求规格说明书(SRS)的核心要素
优先级排好了,下一步就是写 SRS。很多人觉得 SRS 就是“把需求写下来”,其实不然。一份好的 SRS,是开发、测试、产品三方之间的契约。
我见过最糟糕的 SRS 是什么样?一句话:“用户可以在系统中查看订单。” 然后开发做了,测试测了,上线后用户说:“我要的是按时间筛选、按状态分组、还能导出 Excel。”——你看,一句话的 SRS 就是一颗定时炸弹。
SRS 的六大核心要素
| 要素 | 说明 | 常见坑 |
|---|---|---|
| 1. 功能需求 | 系统“做什么”,每个功能点要可验证 | 写得太抽象,比如“系统应支持高效查询” |
| 2. 非功能需求 | 性能、安全、可用性、可扩展性 | 忽略性能指标,上线后才发现扛不住并发 |
| 3. 接口定义 | 内部模块之间、外部系统之间的交互 | 接口参数不明确,联调时反复改 |
| 4. 数据需求 | 数据模型、存储方式、数据流转 | 没考虑数据量增长,半年后数据库撑不住 |
| 5. 约束条件 | 技术栈、合规要求、硬件环境 | 开发到一半发现客户只能用特定数据库 |
| 6. 验收标准 | 每个需求怎么才算“做完” | 没有验收标准,开发和测试各说各话 |
我曾经踩过的坑:有一次写 SRS,非功能需求只写了“系统响应时间应小于 2 秒”。结果上线后,用户说“2 秒太慢了,我要 500 毫秒”。——你看,没有明确是“95% 的请求在 2 秒内”还是“所有请求都在 2 秒内”,这就是歧义。
SRS 的编写模板(简化版)
下面是我常用的 SRS 章节结构,你可以直接拿来用:
1. 引言
1.1 目的
1.2 范围
1.3 定义与缩写
2. 总体描述
2.1 产品视角
2.2 用户特征
2.3 假设与依赖
3. 功能需求
3.1 模块 A
3.1.1 功能 A-1(优先级:Must have)
3.1.2 功能 A-2(优先级:Should have)
3.2 模块 B
4. 非功能需求
4.1 性能指标
4.2 安全性
4.3 可用性
5. 接口需求
5.1 内部接口
5.2 外部接口
6. 数据需求
6.1 数据模型
6.2 数据字典
7. 验收标准
7.1 功能验收
7.2 性能验收
我的建议:每个功能需求都要写“验收标准”。比如“用户登录”的验收标准可以是:输入正确账号密码后 1 秒内跳转到首页;输入错误密码 3 次后账号锁定 15 分钟。这样开发和测试都清楚边界在哪里。
需求优先级与 SRS 的联动
你可能会问:优先级和 SRS 有什么关系?关系大了。
在 SRS 中,每个功能需求都应该标注优先级。这样开发团队可以按优先级排迭代,测试团队可以按优先级安排测试用例。我习惯在 SRS 的功能需求表格里加一列“优先级”,比如:
| 功能编号 | 功能名称 | 优先级 | 验收标准 |
|---|---|---|---|
| F-001 | 用户注册 | Must have | 手机号+验证码,3 分钟内完成注册 |
| F-002 | 用户头像上传 | Could have | 支持 jpg/png,大小不超过 2MB |
| F-003 | 第三方登录 | Won't have | 本次迭代不做,列入 Roadmap V2.0 |
这样做的好处是,当项目进度紧张时,你可以直接砍掉 Could have 和 Won't have 的需求,而 Must have 和 Should have 的边界是清晰的。
本章知识结构图
下面这张图展示了需求优先级排序到 SRS 编写的完整链路:
你看,整个链路是通的:从需求池出发,用 MoSCoW 法则排序,然后落到 SRS 中,每个需求都带上优先级标签。这样开发、测试、产品三方都清楚——哪些是底线,哪些可以砍。
总结一句话:优先级排序解决的是“做什么”的问题,SRS 解决的是“做成什么样”的问题。两者缺一不可。