把功能要求写成验收项,核心是让每条要求都能被第三方独立判断“通过”或“不通过”。做法是:把模糊描述拆成“前提—操作—预期结果—判定标准”四段,再补上不通过时的处理方式。对时间和人手有限的企业建站推广项目,先写验收项再开工,比先开工再补验收更能省下返工时间。
“网站要好看”“后台要好用”“要能带来客户”都是愿望,不是验收项。验收项必须满足三个条件:有明确的操作入口、有可观察的结果、有唯一的判定结论。例如“后台要好用”可以改成:运营人员在后台发布一篇带两张图片的文章,从点击新建到前台可见不超过五步操作,且不需要联系技术人员。这里的“五步”是可数的,“前台可见”是可观察的。
判断一条要求能否验收,可以问自己:换一个没参与项目的人来测,他会不会得出和我一样的结论?如果答案不确定,这条就还需要拆细。
对每条要求套用下面这个结构,写完就能直接进验收清单:
假设一条原始要求是“表单提交后要有反馈”。改写后可以是:前提为访客未登录、使用手机浏览器;操作为填写姓名和手机号后点击提交;预期结果为页面出现明确的成功或失败提示,且提示文字说明下一步;判定标准为提示在点击后可见,不出现空白页或只有转圈动画。这是假设示例,用于说明写法,不是真实项目结果。
时间和人手有限时,不要把所有要求平均用力。按下面的顺序处理:
这样排序的代价是:优化类问题会带到上线后,需要预留一轮迭代时间。如果项目上线时间不可移动,这个代价通常可以接受;如果推广计划依赖上线即投放,则第二类验收项不能往后放。
第一,把手段写成结果。比如“使用某框架开发”是手段,不是验收项;验收项应写成“页面在常见移动设备上可正常浏览和操作”。第二,用“等”“相关”“友好”这类词收尾,它们无法判定。第三,只写正常路径,不写异常路径。至少要为表单、登录、支付类功能各写一条失败场景,比如“提交空表单时应出现提示且不跳转”。
另外,验收项应写清由谁在什么环境下测。同一功能在电脑浏览器和手机浏览器上可能表现不同,不写环境,验收时容易各说各话。
把现有功能要求逐条复制到一张表里,每条后面加“前提、操作、预期结果、判定标准”四列,填不出来的先标为待确认,再按阻断、影响推广、体验优化三档排序。填完这张表,再和开发方确认哪些项在上线前必须通过,哪些项放到上线后第一轮迭代。