先给一个有条件的结论:如果这项功能已经上线、且能在不增加维护负担的前提下继续产生可核对的访问或转化证据,可以短期留用;如果它从未被真实用户触发,或维护它需要持续投入人力与依赖升级,则应安排下线。判断的关键不是“已经花了多少开发成本”,而是“继续留着会消耗什么、下线会破坏什么”。
需求取消只说明当初的目标不再成立,并不自动说明功能应当删除。开发投入属于沉没成本,无论留用还是下线都无法收回,因此不应作为决策依据。真正需要比较的是两条路径的未来成本:
把这两组成本写成清单并标注负责人,比在会议上争论“删了可惜”更容易收敛。
访问量低是最容易被误读的信号。它至少有两种合理解释:一是用户确实不需要,二是入口藏得太深、文案不清或页面报错导致用户无法完成。两者对应的动作完全相反,因此要先排除第二种可能。
可以按以下顺序核对:
需要提醒的是,即使上述数据全部归零,也不能单独证明“下线一定正确”。数据缺失、统计脚本未覆盖该页面、入口在改版中被意外移除,都会产生同样的表象。此时应先修复埋点或入口,再观察一个完整周期。
假设某站点在规划阶段开发了一个“批量导出对比”功能,上线三个月后需求方取消了后续推广计划。核对发现:入口页面点击每周个位数,功能页无报错,站内搜索也没有相关词。这种情况下,留用的理由只剩“以后可能有人用”,而下线成本仅为移除入口和保留数据表。此时选择下线并保留数据只读备份,是成本更低的方案。
反例是:入口点击同样很低,但功能页错误日志显示鉴权接口长期返回失败。这时低访问量不能支持下线结论,应先修复鉴权再重新观察。若修复后点击明显上升,说明需求并未消失,只是被故障掩盖。
如果证据不足以支持立即下线,可以留用,但必须同时写下退出条件,否则它会长期占据维护清单。退出条件应当是可核对的,例如:连续一个观察周期内入口点击低于某一事先约定的阈值,或下一次框架大版本升级时该功能无法在预估工时内完成适配。
具体动作上,建议在代码仓库中为该功能添加标记注释,注明负责人、留用理由和复核时间。到复核时间后按同一套证据重新评估。这样做的结果是:留用不再是默认状态,而是一个有期限的决定,下一次评估时无需重新争论背景。
确定下线后,不要直接删除代码和数据结构。先移除用户可见入口,保留数据表和只读接口一个周期,确认没有外部调用或数据依赖后再清理。若功能涉及用户已产生的数据,应提前确认导出或告知方式。这个顺序能避免“删完才发现有别的模块在读同一张表”的返工。
完成下线后,把该功能的入口位置、数据表名和下线日期记录在规划文档中。下一次做建站规划方案时,这份记录能帮助判断类似需求是否值得重新开发,而不是从零开始猜测。