需求说明书的核心不是把想要的功能一条条列出来,而是把每一项需求写成可验收的标准。很多人第一次写需求说明书时,会写成“要有新闻发布功能”“页面要好看”“后台要好用”这样的句子,网站服务公司拿到之后只能靠猜,最后交付结果与预期不符,双方都觉得对方有问题。正确的做法是:每一条需求都包含对象、行为、条件和可判断的结果,让任何一方读完都能得出同样的结论。
把需求写成功能清单,是最普遍的起点错误。功能清单回答的是“要做什么”,需求说明书还要回答“做到什么程度才算完成”。比如“要有会员注册”只是功能名,而“访客用邮箱注册后,系统发送验证邮件,验证通过才能登录,未验证账号在七天后自动清理”才是可执行的需求。前者无法验收,后者可以逐条检查。
出现这个误解的原因很实际:第一次接触建站项目的人,往往先想到页面长什么样、有哪些栏目,而没想过数据怎么流转、异常情况怎么处理、谁来确认完成。网站服务公司的销售或项目经理在沟通时也常顺着功能名往下聊,双方都以为彼此理解一致,直到开发阶段才发现分歧。
一个可以直接套用的写法是:在什么条件下,系统做什么行为,产生什么可观察的结果。举例来说(以下为假设示例,不是真实项目):
这种写法的好处是,每条需求都可以在验收时逐项打勾。写的时候可以问自己:如果换一个人来测试,他能不能仅凭这句话判断通过还是不通过?如果不能,就还需要补充条件或结果。
除了功能本身,以下内容建议单独成节,避免混在功能描述里被忽略:
这些内容不需要写得很长,但需要具体。比如“提供后台账号”不如写成“交付时提供不少于一个管理员账号,并说明如何新增编辑角色”。
需求说明书初稿完成后,可以按下面几个检查项过一遍:
如果某条需求暂时无法写细,可以标注为待确认项,并约定由谁在什么时间前补充,而不是用模糊表述蒙混过去。待确认项本身也是需求说明书的一部分,它让双方都知道风险在哪里。
如果这是你第一次写需求说明书,不要一上来就写几十页功能。先用一页写清项目目标、本期范围、不包含的内容和验收负责人,拿这一页与网站服务公司确认理解是否一致。这一页通过之后,再按“条件—行为—结果”的格式逐条展开功能需求,并同步补充角色权限、内容来源和验收清单。这样做的成本最低,也最容易在早期发现双方理解上的偏差。