先不要投票决定去留。把争议落到一个具体页面或代码模块上,用“谁在用、维护谁出、下线影响谁”三项事实核对,再决定保留、隐藏入口、冻结代码还是移除。多数分歧来自各方对同一事实的理解不同:产品记得需求取消,开发记得功能可用,运营看到入口还在,谁都没错,但项目缺一份共同可核对的记录。
选一个已经开发完成、但需求已取消的功能,例如某个筛选面板或导出按钮,作为唯一评估对象。围绕它建立一张核对表,至少包含四列:入口位置、调用方、数据读写、责任人。入口位置写它出现在哪些页面或接口;调用方写哪些模板、脚本或外部系统会触发它;数据读写写它是否写入独立字段、日志或第三方;责任人写当初提出、开发和现在维护的人。
填写时让每个角色只回答自己确知的部分。产品确认需求取消的范围是整块功能还是某个入口;开发提供代码引用清单,而不是凭记忆判断;运营提供实际访问或点击记录,而不是“好像有人用”。如果同一格出现两种说法,例如开发说无引用、运营说后台仍能看到数据,就把这一格标为待验证,而不是当场争论。下一步不是继续讨论,而是按待验证项做一次最小验证:在测试环境关闭入口,观察是否有报错、任务失败或数据断流。
核对完成后,通常只剩三种可执行选择,每种都有明确的成立条件。
三种路径不是按功能新旧划分,而是按调用事实和维护成本划分。一个刚开发完的功能可能因为无人调用而直接移除;一个老旧功能可能因为财务对账仍在读取而必须保留。
假设某站点曾计划上线“高级筛选”面板,开发已完成,需求随后取消,但入口仍挂在列表页。核对发现:产品确认需求取消;开发称模板中仍有一处引用;运营提供的数据显示近一个月该入口没有有效点击;后台有一张筛选条件记录表,但没有其他系统读取。
此时可执行动作是:先在测试环境关闭入口,观察列表页、搜索接口和后台任务是否报错。若无异常,将入口从模板中移除,保留记录表但停止写入,并设定一个复核时间点。到点后再次检查引用和数据读取,若仍无调用,再删除代码与表结构。这个顺序的关键在于:先用最小动作验证“无人依赖”,再决定是否彻底移除。如果关闭入口后出现报错,说明存在未记录的调用方,应回到核对表补充调用方信息,而不是强行下线。
无论选择哪条路径,最终都要留下可复查的记录。记录至少写明:评估对象、判断依据、选择路径、执行动作、观察窗口和复核时间。判断依据要引用具体证据,例如代码引用位置、访问记录时间段、数据表读取方,而不是“大家同意”。
执行动作要能对应到下一步:如果选择隐藏入口,下一步是确认无报错并更新引用清单;如果选择移除,下一步是按顺序执行并验证;如果选择保留,下一步是补负责人和监控。这样,当需求方、开发或运营再次提出异议时,讨论对象不再是记忆,而是这份记录和它对应的验证结果。需求取消不等于功能必须消失,功能已开发也不等于必须留下;真正决定去留的,是调用事实、维护责任和下线影响的核对结果。