需求清单写到“开发方看完能准确报价、能判断工期、能指出哪些地方需要甲方确认”的程度就够了。再细会拖慢启动,再粗一定返工。判断标准不是页数,而是每一条需求是否包含三个要素:谁用、在什么场景下用、做成什么样算完成。缺少任何一个,多人协作时就会各自理解,最后交付对不上。
很多需求文档之所以扯皮,是因为把三种不同性质的东西写在了同一层:
把实现细节当功能写,是最常见的过度描述;把功能当目标写,是最常见的描述不足。乌鲁木齐网站开发面对的多是中小项目,人力有限,清单越聚焦这两点,协作越顺。
可验收的意思是:做完之后,甲乙双方能对着同一条描述判断“通过”还是“不通过”。对比下面两种写法:
不足的写法:“新闻模块要好看、好用。” 可验收的写法:“新闻列表支持按栏目筛选,每页显示10条,点击进入详情页;后台可新增、编辑、删除、置顶新闻,置顶后列表首位展示。”
后者没有规定用什么框架,但开发方知道要做什么,甲方也知道验收时看什么。适用条件是:只要这条功能会影响用户操作或后台管理,就按可验收标准写;如果只是视觉偏好,放到设计确认环节,不要塞进功能清单。
需求清单写到什么程度算够,一个实用信号是:清单里还有多少条是“我以为对方知道”的。多人协作中,最危险的不是写错,而是没写却默认一致。建议在清单末尾单列一节“待确认项”,把以下内容逐条列出:
这些不是技术问题,但会直接决定工期。写清楚之后,开发方可以先把不受影响的部分做完,不必整体等待。
如果清单越写越长,可以用最小可交付版本收口:先列出上线必须有的页面和功能,其余标为二期。判断依据是——没有它,网站能不能正常对外使用。例如企业展示站,没有留言表单可能还能上线,但没有联系方式和主体介绍就不成立。
这样做的代价是二期可能被推迟,收益是启动更快、返工更少。适用条件是预算和工期都有限、业务需求还在变化的情况;如果项目本身要求一次性交付完整系统,就不适合拆。
拿现有清单逐条检查:每条功能是否写清了操作对象、触发条件和完成标准;把纯技术选型移到附录;把没定的内容集中到“待确认项”。改完之后,让不参与写作的同事读一遍,如果他能说出每条要做什么,这份清单的程度就够了。