先别问“做都做了要不要留”,而要问“留着它,后续每次改版、测试、升级要付多少代价”。判断依据不是沉没成本,而是这项功能是否仍有明确使用方、是否影响主流程、是否带来持续维护负担。把页面或模块当作待处置资产,逐项核对证据,再决定保留、隐藏还是删除。
“需求取消”通常只说明业务方不再推进,不等于功能没有使用者。先确认它当前处于哪种状态:
这三种状态对应的处理方式不同。第一种优先评估交接和验收,第二种要先决定是否彻底封堵,第三种则要评估拆除成本。若把三者混在一起,很容易出现“前台删了、后台还在跑”的隐患。
访问量归零或调用量下降,不能单独证明功能该删。它至少还有几种合理解释:入口被撤后用户找不到、统计代码或埋点被改过、调用方迁移到别的接口、数据只在特定周期产生。要区分这些解释,可以查以下几类记录:
假设某活动报名页的需求在活动取消后撤回,但后台仍有导出报名数据的按钮。日志显示导出接口每周被调用一次,调用账号属于财务。这时“需求取消”只取消了活动,没有取消对账动作。若直接删除,财务对账会中断。正确动作是先与调用方确认对账周期,再决定是保留只读入口还是迁移数据。
已开发的功能,开发成本已经发生,不能作为留用理由。真正要比的是两条路径的未来成本:
可以做一个注明假设的短比较:假设该模块每月需要一次回归测试,每次约两小时;下线准备需要一次约八小时,之后不再产生测试成本。若未来一年内没有明确使用方,下线在第四个月左右开始省下时间。这个例子只说明比较方法,实际数字要按你自己的团队节奏替换。
如果留用,下一步是把它写进维护清单并指定负责人;如果下线,下一步是列出依赖方并逐一确认。没有指定负责人的“暂时留着”,通常会在下一次升级时变成故障点。
有些功能确实还有少量使用方,但不再值得占用主流程位置。此时不必二选一,可以降级处理:
降级后要验证两件事:原使用方是否仍能完成操作,以及监控是否还能发现异常。若降级导致调用方报错,说明依赖关系没有摸清,应回到证据收集阶段,而不是直接恢复全部入口。
下线动作建议按“先断入口、再停任务、后清数据”的顺序推进,每一步都保留可核对记录:
如果停机后没有任何报错,也不能直接断定处理正确,还要确认监控本身覆盖了该模块。若监控已随入口一起移除,报错可能只是没有被采集到。所以下线最后一步是检查监控盲区,而不是庆祝访问量归零。
把结论落到一张处置单上:功能名称、当前状态、证据来源、留用或下线、负责人、复核日期。下一次需求变更时,这张单子就是判断依据,而不是重新争论“做都做了”。