一、SRS不是功能清单
有人以为敏捷就是把文档扔掉,全靠站会口头同步,这是对敏捷的误解。临沂小程序开发公司的团队在微信小程序项目中采用轻量文档路线:用户故事卡片加几条验收标准,接口约定写成简短说明,该留的文字沉淀一样不少。区别只是更新节奏——需求随迭代滚动调整,而不是前期写一份厚文档锁死。
写需求时要善用模板但不迷信模板。一份实用的SRS通常包括:引言与背景、用户角色与使用场景、功能需求逐条描述、非功能需求指标、接口与外部系统关系、数据报表需求、验收标准与边界说明。其中"边界说明"尤其重要——写清楚本版本不做什么,往往比写做什么更能控制范围蔓延。
需求评审是SRS诞生过程中不可或缺的一环。评审应当拉上开发、测试、设计与客户方代表,逐条过文档,重点找歧义、找遗漏、找自相矛盾。评审记录下来的问题要在文档中逐条闭环修改,而不是口头答应了事。经过正式评审并签字的SRS,才具备作为合同附件与验收基线的资格。
二、需求分层各有读者
文档写完不是终点。需求会变,SRS必须跟着版本化管理:每次变更记录修改人、时间、内容与影响范围,并同步通知所有相关方。一份从不更新的文档比没有文档更危险,因为读者会默认它仍然准确,基于错误信息做设计,代价只会更大。
在敏捷项目里,有人觉得写文档是瀑布时代的包袱,其实不然。敏捷只是把"一次性厚文档"换成"持续更新的轻量文档":用户故事卡片加上验收标准、接口约定写成简短的设计说明,该留的文字沉淀一样不能少。区别在于更新节奏,而不是要不要写。
三、文档维护的纪律
SRS的读者最终是未来的同事。半年后接手项目的人,没有机会去问当初的客户,只能靠文档理解系统为什么长这样。因此写作时应当把"为什么这样设计需求"的理由也记录下来,例如某个字段为什么这样定义,避免后来者把当时的权衡当成错误改掉。
中小企业写SRS常见的极端是两个:要么完全不写,全靠微信群口头传达,三个月后没人记得当初说过什么;要么追求大而全,照搬标准模板写了上百页,没人看得完。务实的做法是把篇幅控制在真正被各方会读、会用的程度,核心需求逐条写清,背景描述点到为止。
文档跟着迭代持续更新,三个月后回看项目决策时才不会无从查起。
从合作双方的关系看,SRS同时也是项目合同的技术附件。开发方按文档交付,甲方按文档验收,文档越清晰,扯皮空间越小。企业在与软件服务商签约前,应当把需求文档当作最重要的谈判成果来对待,而不是把它当成走流程的附属材料。
备注:敏捷减少的是一次性厚文档,不是文档本身。