结论要先看条件:如果这个功能已经进入生产环境、有真实用户路径依赖,或者下线会牵连数据迁移与权限结构,那么留用并补登记需求更稳妥;如果它只存在于测试环境、没有对外入口,或者维护它会持续占用后续迭代窗口,那么下线更合理。判断的关键不是“谁当初提的需求”,而是“今天谁在为它付出可核对的成本”。
多个角色对同一事实有不同理解,往往是因为“取消”被当成一个词用。实际至少分三种:提出方明确撤回、提出方失联或转岗导致无人认领、需求目标被其他功能覆盖。这三种事实对应的处理不同。
把分歧转成可核对的项目,第一步就是让每个角色写下自己依据的事实来源:是会议记录、工单状态、口头通知,还是代码提交信息。来源不同,结论自然不同。
不要靠投票决定。下面四项每一项都能被不同角色独立验证,适合作为共同依据。
一个假设例子:某筛选功能已开发完成,但提出方撤回需求。检索发现没有页面入口,也没有其他模块调用,只写一张独立数据表。四项都指向可下线。反过来,若发现订单导出脚本在调用它的接口,那么即使无人认领,也应先留用并补登记,再安排解耦。
最容易被忽略的反例是:功能当前没有入口,但它是某个合规、审计或数据留存要求的实现载体。此时入口可达性为零,不代表可以删除。另一个反例是功能本身无调用,但它生成的数据已被下游报表引用,删除代码不等于删除影响。
还有一种情况:需求取消发生在组织调整期,原提出方已转岗,新接手人尚未完成交接。这时“无人认领”只是过渡状态,直接下线可能删掉对方即将接手的能力。判断这类反例的方法很简单——要求反对下线的一方给出一个具体的下游依赖名称或数据使用方,能指名就暂缓,指不出就进入下线流程。
下一步动作建议由一个人牵头,产出一张对照清单:功能名称、入口状态、调用方、数据表、最近一次变更时间、每个角色的确认意见。牵头人不必是管理者,但需要能同时接触代码仓库和工单系统。
这张清单的直接影响是:如果调用方一栏为空且数据表无外部引用,就可以进入下线排期;如果某一栏存在争议,就把它单独列为待确认项,而不是整体搁置。很多项目卡住,不是因为结论难,而是因为争议没有被拆到具体字段上。
对于确认留用的功能,动作是补一条需求登记,写明保留理由和复核时间点,避免它再次变成无人认领的灰色地带。对于确认下线的功能,动作是先移除入口和调用,观察一段时间后再清理代码与数据,而不是一次性删除。这样即使判断有误,回退成本也可控。