需求清单写到“每个页面或功能模块都能被独立验收”的程度即可,而不是写到像素级或代码级。判断标准是:把清单交给一位没参与沟通的设计师或开发者,他能据此判断做什么、不做什么,并能在交付时逐条确认是否完成。如果还需要反复追问“这里到底指什么”,说明写得不够;如果已经规定到用哪个标签、哪一行代码,则多半写过头了。
网站设计方法中的需求清单,通常要覆盖三个层次,缺一层就会在验收时扯皮。
三层都写到“可判断”就够了。目标层写清意图,结构层写清范围,约束层写清边界,不必继续往下拆成视觉稿或代码。
与其纠结写多细,不如先想清楚每条需求将来怎么验收。能写出验收信号的条目,通常已经足够具体;写不出来的,说明还没想清楚。
假设一个需求写成“导航要清晰”。这条无法验收,因为“清晰”没有判断依据。改成“主导航包含产品、价格、关于、联系四个入口,在手机宽度下折叠为菜单按钮,点击后展开全部入口”,就可以逐项检查。这里举的是假设例子,用来说明颗粒度,不代表任何真实项目。
反过来,如果写成“菜单按钮使用某个具体组件库的某个版本,展开动画时长 300 毫秒”,这就进入了实现细节。除非团队有明确的技术约束,否则这类内容应留给开发者,写进清单只会限制方案空间,还会在技术调整时变成无谓的返工点。
实际操作时,可以按下面的顺序整理,每条都落到具体对象上:
这样整理后,清单会自然停在“行为与范围”这一层,不会滑向视觉细节,也不会停在“要专业、要大气”这种无法执行的口号上。
写不够的典型表现是:只写页面名称,不写页面目的;只写“要有表单”,不写提交后怎么处理;只写“参考某类风格”,不指明参考的是布局、配色还是语气。这类清单在开发中途必然产生大量补充沟通。
写过头的典型表现是:规定具体字号、具体间距、具体动画曲线;把某个框架或组件的用法写进需求;把未来可能的功能也提前写死。这些内容要么属于设计执行,要么属于技术选型,放进需求清单会让它变得难以维护。
一个实用的判断方法是:如果一条需求在项目进行中很可能因为测试反馈而调整,它就不该以硬性条目的形式出现在清单里,而应作为偏好或待定项单独标注。
拿现有需求清单逐条自问:这条能不能被独立验收?不能的补上验收信号,能但已经细到实现方式的,降级为约束或偏好。把补完的清单交给一位未参与前期沟通的同事试读,统计他提出的疑问数量,疑问集中在哪一层,就说明那一层还需要继续写清楚。