需求清单写到“能据此判断做没做完、做完后能不能验收”的程度就够了。对已有页面或项目的博客网站建设来说,清单不必覆盖所有技术细节,但每一项都应包含明确的页面或模块对象、可观察的完成状态,以及由谁来判断。达不到这个程度,清单只是愿望;超过这个程度,又会把实现方式提前锁死,反而增加返工。
需求清单最容易走偏的地方,是把“怎么做”当成“要什么”。例如“用某个框架的某个插件生成列表页”是做法,不是需求;对应的需求应该写成“文章列表页展示标题、发布时间、摘要,点击标题进入文章页”。后者不绑定技术选型,换实现方式时也不用改清单。
判断一条需求是否越界,可以用一个简单检查:如果换一种技术实现,这条需求是否仍然成立。成立,说明它写的是结果,保留;不成立,说明它写的是实现,移到技术方案里,不要放在需求清单中。
对已有项目做改进时,清单条目建议按下面的结构写,缺一项就容易在验收时扯皮:
举例说明,假设要改进一个已有博客的文章列表:需求可以写成“列表页每条展示标题、发布时间、摘要,摘要超过一定长度时截断;没有任何文章时显示一句提示文案;验收方式是新增三条测试文章后打开列表页,确认顺序、截断和空状态都符合描述”。这里的长度数值、提示文案内容属于需要你自行确定的细节,不是通用标准。
清单的颗粒度取决于改动范围和协作方式,而不是越细越好。
如果项目已经上线,清单里还应加一条现状说明:哪些页面保留、哪些替换、哪些新增。没有这条,验收时无法判断“改完了”还是“改坏了一部分”。
可以用三个信号自查:
反过来,如果一条需求既说不出对象,也说不清完成状态,只写了方向,那它还没有达到可执行的程度,应继续拆解或直接删掉,避免在验收阶段变成争议点。
拿现有清单逐条对照上面的四个要素,把缺少对象或验收方式的条目补全,把写死实现方式的条目改回结果描述,然后按改动范围决定哪些条目需要写得更细。