把功能要求写成验收项,核心是把它从“要有什么”改写成“谁在什么条件下操作,看到什么可观察结果,判定通过还是不通过”。例如“要有留言功能”不是验收项;“访客提交姓名和手机号后,页面显示提交成功,后台列表出现该条记录,手机号格式错误时提示不通过”才是。多人协作时,验收项写得越接近可复现的操作与结果,交付争议和返工越少。
很多项目文档里写的是“新闻发布、产品展示、在线留言、后台管理”,这其实是功能范围,不是验收项。它只说明要做什么模块,没有说明做到什么程度算完成。开发方按自己的理解实现,需求方按自己的想象检查,双方都觉得自己没错,返工就发生在验收阶段。
原因在于,功能清单描述的是名词,验收项描述的是行为与结果。名词没有边界,行为有边界。把名词补上触发条件、操作路径、预期结果和判定方式,才具备可验收性。
适用条件是:这条要求可以被人在浏览器或后台重复操作一次。如果一条要求无法被重复验证,比如“整体体验流畅”,就不适合作为验收项,应拆成可观察的子项,或放到主观评审环节单独处理。
假设原句是“网站要能防止留言被乱填”。这是一个模糊要求,可以改写为若干条验收项:
第三条特意留了两个选项,是因为“防重复”本身有不同实现口径。写验收项时不能含糊,必须在开发前确定选哪一种,否则验收时双方会各执一词。这里的手机号位数只是示例规则,实际应以项目确认的规则为准。
可以按下面的顺序执行:
判断结果的方式是:如果两个人分别按同一条验收项操作,能得到相同结论,这条就算合格;如果两人结论可能不同,说明还缺条件或判定标准,需要继续细化。这套方法适用于功能类、流程类、权限类要求;对于视觉风格、文案语气这类主观内容,更适合用参考稿加评审确认,而不是硬套操作型验收项。
先挑出当前项目里最容易被反复争论的三条功能要求,按前置条件、操作动作、预期结果、判定方式改写成验收项,发给开发和需求方各确认一次。三方对这三条没有分歧后,再按同样格式处理其余功能,返工通常会明显减少。