需求清单写到“能据此做出取舍、能验收、能交接”的程度即可。对已有页面或项目的改进场景,标准不是把每个细节都写死,而是让执行者知道改什么、为什么改、改到什么状态算完成,以及后续由谁维护。清单太粗会导致反复返工,太细会锁死实现方式,反而妨碍调整。
很多清单一上来就列“要支持自定义标题、要能改URL、要能加结构化数据”,这些属于功能项,却缺少判断依据。准备阶段更该先写三类约束:
准备阶段的完成标志是:任何一条后续需求,都能对应到上面某个约束,而不是凭偏好添加。
这是本题最关键的一步。需求清单写到什么程度,取决于每条能否被验收。推荐用“对象 + 动作 + 结果”的写法,而不是只写形容词。
例如,不要写“SEO要友好”,可以拆成:
这些条目都能在浏览器或命令行中检查,属于可验收需求。相反,“加载要快”“结构要清晰”这类描述,应补充判断方式,例如“首屏主要HTML在关闭脚本后仍可读”“移动端不出现横向滚动”。
清单不需要写到具体函数名或某插件配置项。那属于实现细节,写进去会让方案被过早绑定。只有当某个实现方式本身就是硬约束时,才需要写明。例如团队只会维护某种模板语法,就可以把它列为条件,而不是把某程序的某个设置页写进需求。
清单写完后,逐条转成检查项。对已有项目的改进,可以先在测试环境验证,再决定是否上线。常见检查包括:
验证结果分三种:通过、不通过、暂无法判断。无法判断的条目要写清原因,例如需要等抓取周期或需要更多样本,而不是直接算通过。这样清单才具备继续迭代的基础。
需求清单不是越全越好,而是写到能维护为止。维护阶段应补充:
如果一条需求无法说明由谁维护、多久检查一次、出现异常怎么处理,它就不适合写进最终清单,或应降级为建议项。
下一步可以拿现有项目,把已经写出的需求逐条标注“可验收 / 不可验收 / 待确认”,先处理不可验收的条目,再决定是否增加新功能。