结论先说:复用旧报告时,不能按页面或模块是否被改动来判断沿用与新增,而要按“可独立验收的交付单元”重新切分。只有当旧报告中的某个单元在新一期里仍然完整成立、且未被重新设计或重写,它才算沿用;只要该单元被拆开、换实现方式或换了验收口径,就应归为新增。这个判断在单个样例上通常成立,但一旦项目从三五个页面扩展到几十个页面、多人并行改动时,就会出现反例。
很多团队复用旧报告时,习惯用“这个页面没动,算沿用;那个页面动了,算新增”。这套方法在页面数量少、改动集中时有效,因为此时页面本身就是交付单元,改动边界清晰。但它的成立条件很窄:改动必须落在页面内部,且不影响页面之间的结构关系。
更稳的做法是把交付单元拆到比页面更小的粒度,例如:导航结构、表单字段与校验逻辑、列表筛选规则、内容模板、跳转关系。判断规则是:
三条都满足,才可以标为沿用;任何一条需要重写,就归为新增。这个动作的直接结果是:沿用部分可以直接引用旧报告的验收记录,新增部分必须重新走一遍确认,避免把“看起来没动”的单元当成已验收。
假设一个湘潭本地项目第一期做了二十个内容页,旧报告按页面逐个记录为已完成。第二期只新增三个页面,同时调整了全站导航的分组方式。按页面口径看,二十个旧页面“没动”,应全部沿用。但实际上,导航分组一变,所有页面的入口位置、层级关系和面包屑都变了,旧报告里针对每个页面记录的导航相关验收结论已经不再成立。
此时如果继续按页面沿用,就会出现:旧报告说导航已验证,新一期却没人重新确认新分组下的跳转和层级。这就是规模化后的典型反例——改动落在共享结构上,影响面覆盖全部旧单元,沿用判断失效。
识别这类反例的信号有三个:改动是否触及被多个单元共同依赖的结构;旧报告中的验收结论是否依赖该结构;新一期是否改变了该结构的规则而非只是内容。命中任意一个,就应把受影响的单元从沿用清单移到新增清单,重新确认。
假设旧报告把“联系表单”记录为:字段、校验、提交后提示、失败重试。新一期只把提交后提示的文案换了一句。按单元切分:字段、校验、失败重试仍逐条成立,标为沿用;提交后提示的验收标准变了,标为新增。下一步动作是只对“提交后提示”重新确认,其余部分引用旧记录。这样既不会把整块表单当新增重复劳动,也不会把改动过的提示当成已验收。
反过来,如果新一期把表单从同步提交改为异步提交,那么字段、校验、提示、重试的输入输出和异常处理都变了,四个单元全部归为新增。判断依据不是“改了几行”,而是验收口径是否需要重写。
复用旧报告前,先做一步:把旧报告中的交付单元和它们共同依赖的结构列出来。然后对照新一期的改动,标出哪些结构规则变了。规则变了的,其下游单元全部移出沿用清单。这个动作的结果是得到两份清单——可直接引用的沿用清单,和必须重新确认的新增清单。后续的确认工作只针对新增清单展开,沿用清单只做引用和抽查,不再重复走完整验收。这样既控制了重复劳动,也避免了共享结构改动被漏检。