先给结论:在缺少完整数据或后台权限的情况下,不要急着删代码,也不要因为“已经开发完”就默认留用。可执行的最小动作是——把这项功能从用户可见入口撤下,保留代码与数据一段时间,同时用可获得的替代信号(服务器日志、错误记录、客服转述、页面点击的粗略计数)判断它是否仍被真实使用。如果没有任何独立证据表明有人依赖它,且维护它会持续消耗上线节奏,就进入下线流程;如果存在无法排除的依赖,就先降级为隐藏状态,等权限或数据补齐后再决定。注意:请求量归零不能单独证明可以删除,它也可能是入口早已被撤、爬虫不再访问或统计口径变化造成的。
假设某站两年前规划了一个“门店预约”功能,开发完成后因业务调整,需求被取消,但代码已经合并进主分支,数据库里也建了对应的表。现在团队要清理技术债,问题变成:留用还是下线?
这个情境的关键不是“功能好不好”,而是谁还在依赖它、撤掉它会破坏什么、保留它的代价是什么。三者缺一,判断都会偏。
第一步动作:把功能的入口链接从导航、页脚和站内搜索中移除,但不删除路由和接口,观察两到四周。结果会直接影响下一步——如果这段时间里日志中仍有稳定的、来自真实用户的访问,说明存在外部书签、分享链接或旧邮件里的入口,不能直接删;如果只有零星爬虫或监控探针的请求,则支持进入下线评估,但仍不足以单独定论。
已开发只说明沉没成本已经发生,它不构成留用的理由。真正需要评估的是三类依赖:
缺少完整数据或权限时,至少可以查两样东西:代码仓库里对该模块的引用(搜索函数名、路由名、表名),以及数据库中被外键或视图引用的对象。这两项不需要后台权限,能排除大部分系统依赖风险。
把判断写成条件,比凭感觉投票更稳。
如果两类条件同时出现,优先处理系统依赖和合规依赖,再谈用户体验层面的取舍。
没有分析后台、没有搜索词报告、没有用户访谈,仍然可以做这些最小动作:
这些动作能支持的结论是:有没有明显的外部或内部依赖。它们不能支持的结论包括:功能对业务没有价值、删除后一定不影响用户、访问量低就等于可以删。请求量归零的合理解释至少有三种——入口早已撤下、统计脚本失效、访问者改用其他路径。把其中任何一种当成“无人使用”的证据,都会导致误删。
推荐顺序是:先隐藏、再观察、后删除。隐藏阶段保留代码和数据,只关闭用户入口;观察期结束后,如果确认无依赖,先删除路由和界面,保留数据表一个周期;最后再清理数据表和残留引用。每一步都留下可回退的提交记录,这样即使判断有误,也能在影响用户之前恢复。
如果团队权限只够改前端,那就把动作限定在入口层面,把“删除接口和数据”列为待办,等有权限的人复核后再执行。这不是拖延,而是把不可逆操作挡在证据不足的阶段之外。