结论先给:只要这个功能仍在被访问、仍在产生业务数据、或仍被其他模块依赖,就应留用并转入维护;如果它已无访问、无数据写入、无外部依赖,且下线成本低于继续维护成本,就应安排下线。判断的关键不是“当初为什么做”,而是“现在还有谁在用、停掉会牵连什么”。
需求取消只说明立项理由消失,不说明功能本身没有价值。评估时先把功能归入以下三类之一,处理方式完全不同。
区分这三类的证据来自访问日志、数据库写入记录和代码引用检索,而不是来自需求文档的当前状态。
留用不是“放着不管”。一个已开发但需求取消的功能,留用意味着继续承担安全更新、兼容性适配、数据备份和故障排查。下线也不是“删掉文件”,通常包括关闭入口、导出并归档历史数据、解除接口依赖、移除代码、更新相关文档。
假设某功能每月只有个位数访问,但它的数据表被财务导出脚本引用。此时下线的真实成本包括改写导出脚本和验证历史数据完整性,可能高于继续留用。反过来,如果功能没有任何数据写入,也没有外部引用,下线的动作就只是移除入口和代码,成本很低。
把两边的动作逐条列出并估算工作量,比争论“有没有用”更容易得出结论。
访问统计为零有多种合理解释:入口被误删、页面被搜索引擎降权、统计脚本本身失效、或者功能只在特定季节或特定活动期间被使用。这些情况下,访问为零是现象,不是删除依据。
更稳妥的做法是先确认入口是否可达、统计是否正常、是否存在定时触发或后台调用。如果这些检查都通过,且连续观察一个完整业务周期仍无任何访问和数据写入,才把“完全孤立”作为下线前提。
不要直接在正式环境删除。先把功能入口从导航和页面中移除,保留代码和数据表,观察一个业务周期。这个动作的结果会直接决定下一步:
隔离观察是把“不确定”变成“可判断”的低成本手段,它的结果比任何一次会议讨论都更能说明该功能该留还是该下线。