先给结论:不要因为“需求已经取消”就立刻下线,也不要因为“代码已经写完”就默认留用。判断标准应回到功能本身是否还有真实用户、是否产生维护成本、是否影响后续迭代,以及保留它会不会让新需求更难落地。下面用一个明确假设的情境,把决策过程拆开。
假设某资阳本地企业网站制作项目,原本计划上线“经销商查询”功能:用户输入地区,页面展示对应联系人。开发完成后,业务部门决定暂停经销商渠道拓展,需求随之取消。此时功能代码已经合并,数据库表已建,后台也留了录入入口,但前端没有正式对外发布。团队面临的选择不是“留还是删”这么简单,而是要先判断它处在什么状态。
这个情境的关键在于:功能已开发,不等于功能已上线;需求已取消,不等于功能永远无用。如果它还没有对外入口,处理成本通常低于已经产生用户访问和数据积累的功能。先确认状态,再决定动作。
评估前需要把以下信息摆到桌面上,缺少任何一项都容易做出偏颇判断:
完成盘点后,通常会得到三种状态:未上线且无数据、未上线但已有数据、已上线且有访问。三种状态对应不同决策。
可以用一组可区分的条件来判断,而不是凭感觉。以下条件按假设情境展开:
如果条件同时指向两边,优先处理已经对外可见且内容过期的功能,因为这类功能对用户的伤害最直接;内部未公开的功能可以暂缓处理,但要登记为技术债。
在多数情况下,最稳妥的动作不是立刻删除,也不是原样保留,而是先隔离。具体做法包括:关闭前端入口或改为仅管理员可见;保留数据表但停止写入;在代码中标记该功能为停用状态;记录它依赖的接口和字段。这个动作的结果是:用户不再看到过期内容,团队也不必在未想清楚前做不可逆的删除。
隔离之后,进入观察期。观察期内需要回答两个问题:是否还有内部流程依赖它?恢复需求是否重新出现?如果观察期内没有任何依赖,也没有恢复信号,就可以进入下线流程;如果出现新的使用场景,则回到留用评估,而不是直接恢复上线。
下线时建议按顺序执行:先移除前端入口和导航链接,再处理对外可访问的地址,最后清理后台入口和定时任务。数据是否删除要单独判断,不要和代码下线混在一起。数据可以先归档,确认无引用后再处理。
无论选择留用还是下线,都要把结论和依据记录下来,供下一次改版或交接时参考。记录内容不需要复杂,至少包括:功能名称、当前状态、决策结论、决策依据、复查时间。这样做的实际影响是,后续接手的人不会因为看到一段孤立代码而重新猜测它的用途,也不会把已经下线的功能误当成在用功能。
如果选择留用,要明确它处于“停用待恢复”还是“内部可用”状态;如果选择下线,要确认没有其他功能在读取它的数据或接口。假设情境中的经销商查询功能,若前端从未发布、后台也无真实数据,隔离后观察一段时间无依赖,就可以下线;若后台已录入大量地区联系人且被客服使用,则应保留为内部工具,而不是直接删除。
最终判断可以归结为一句话:需求取消只说明当初的目标变了,不自动决定功能的去留。真正要评估的是它现在是否还被使用、是否还在产生成本、是否阻碍下一步开发。把这三个问题回答清楚,留用或下线就不再是拍脑袋的决定。