先给结论:不要因为“需求已取消”就直接删,也不要因为“代码已经写完”就默认留。判断依据是这项功能是否仍在产生可验证的业务价值,以及保留它需要持续付出多少维护成本。如果功能已有真实访问或业务方仍在使用,先转为观察项;如果无人使用、入口已撤、数据依赖还在消耗资源,就应安排下线。
需求已取消但功能已开发,通常对应两种不同情况。第一种是需求撤销:业务方明确不再需要这项能力,例如活动规则调整后,原先的报名分流页不再使用。第二种是前提消失:功能本身可能还有价值,但触发它的条件变了,例如原来只服务某个渠道,现在该渠道暂停合作。两者的处理方向不同。
需求撤销时,优先看功能是否还有独立入口和真实访问。如果入口已经撤掉、没有外部链接指向、后台也没有人调用,留用只是增加代码面积。前提消失时,则要先确认新前提是否稳定:若只是暂时停用,直接下线可能带来恢复成本;若新前提会长期存在,就应进入下线评估。
可区分原因的证据:查看访问日志、接口调用记录、后台操作记录和业务方确认记录。访问量归零不能单独证明该功能无用,也可能是入口被撤、埋点失效、爬虫减少或统计口径变化。至少要把“无人访问”和“入口已撤”分开判断。
如果满足以下任一条件,建议暂时留用:功能仍有稳定访问;业务方虽取消当前需求,但明确表示未来一个可预期周期内可能恢复;下线后会影响已产生的数据、订单、合同或对外承诺。此时留用不等于继续投入开发,而是把它转为低维护状态。
实际动作可以这样安排:先冻结新需求,不再为这项功能增加字段、页面或接口;再补充最小监控,记录调用次数、错误率和最后使用时间;然后在代码或配置中标记归属人和复核日期。这样做的结果是,后续每次排期都能看到它的真实占用,而不是靠记忆判断。若监控显示连续多个复核周期无调用,再进入下线流程。
例外也要写清楚:涉及资金、用户隐私、合规留存或对外承诺的数据,不能因为页面无访问就立即删除。此时应保留数据读取能力,只下线展示入口或交互流程。
如果功能没有真实访问、没有业务方认领、入口已经撤除,同时仍在消耗构建时间、依赖升级、安全扫描或数据库资源,就应安排下线。这里的关键不是“删代码”这个动作,而是把下线拆成可回退的步骤。
这个顺序会影响下一步:如果先删数据再发现仍有调用,恢复成本会明显上升;如果先关入口并观察,就能用调用记录验证判断,而不是靠猜测。
假设某网站曾为线下活动开发签到页,活动结束后需求取消。若签到页仍有用户通过旧二维码进入,且业务方说下季度可能复办,就适合留用但降级维护:保留页面和签到接口,停止新增功能,设置复核日期。若二维码已失效、后台无人查看、签到接口每天仍被定时任务调用,就适合下线:先撤入口,再停定时任务,最后归档签到数据。
两种选择都成立,区别在于前提是否稳定、使用是否真实、恢复成本是否可接受。不要用“已经开发完了”当作留用理由,也不要用“需求取消了”当作立即删除的理由。
无论留用还是下线,都建议留下一条简短记录:功能名称、原需求、取消原因、当前使用证据、维护成本、决策结论、复核日期和责任人。这样下次遇到类似情况时,团队能判断是继续观察还是执行下线,而不是重新争论一遍。