需求清单写到“可验收”的程度就够了:每条需求都能对应一个页面、一个操作或一条判断标准,做完后能明确回答“符合”或“不符合”。写不到这个程度,开发只能猜;写得过细,又会把实现方式提前锁死,反而增加返工。判断标准不是字数多少,而是每条需求是否具备对象、行为和结果三要素。
需求清单通常分三层,写清层次比写长更重要。
第一次接触时最常见的错误,是把目标层写成功能层,例如只写“要一个好看的官网”。这不是需求,无法验收。可以把它改写成“首页需在首屏说明主营业务,并提供进入产品列表和联系页的入口”,这样才有判断依据。
最关键的一步,是给每条功能需求补一句验收条件。可以用一个简单句式:谁,在什么条件下,做什么,出现什么结果。
假设一个需求是“文章要能搜索”。这句话无法验收,至少存在多种解释:搜标题还是搜正文?是否区分大小写?无结果时显示什么?补成验收条件后可以写成:
访客在搜索框输入关键词并提交后,列表显示标题或正文包含该关键词的文章;无匹配结果时显示“暂无相关内容”。
这样开发和验收都有共同依据。以下检查项可用于逐条过需求清单:
需求清单不必写到像素级。颜色、间距、动效细节属于设计说明,可以在需求确认后单独细化。写得太细的代价是:一旦业务调整,清单本身变成负担,修改成本高于重新沟通。
清单写完后,不要只看文字是否完整,要按角色走一遍。
走查时把每条需求标成三类:已明确、有歧义、缺失。有歧义的当场改成验收条件,缺失的补进清单。判断结果很简单:如果两个人对同一条需求的理解不一致,它就还没写到可验收的程度。
网站上线后,需求会继续变化。清单应保留版本记录,注明每条需求的来源、确认时间和变更原因。新增需求时,先判断它属于原有范围的补充,还是新范围;前者更新验收条件,后者单独评估工作量和影响。
维护阶段还要定期回看:哪些需求上线后从未被使用,哪些验收条件已经不符合当前业务。把过时条目归档,而不是直接删除,便于追溯当初为什么这样设计。
下一步可以直接做一件事:挑出清单里最模糊的三条需求,各补一句“谁在什么条件下做什么,出现什么结果”,再拿给另一位参与者确认理解是否一致。