结论先给:如果这个功能已有真实访问或业务动作,且维护成本可被现有资源覆盖,可以留用并补上入口与说明;如果它只有代码没有使用者,或维护会持续占用必须投入主线的人手,就应下线。判断依据不是“已经花了多少开发时间”,而是“继续留着会让下一步付出什么”。
需求取消只说明当初的目标变了,不说明功能本身没有价值。评估时把功能放进下面三类之一,处理方式会清楚很多。
这里的关键动作是查一次真实使用记录,而不是凭印象讨论。查完之后,如果发现访问量低但集中在少数老用户身上,下一步就不是直接删除,而是先确认这些用户是否仍在依赖它完成某件事。
已经投入的开发时间属于过去,不应成为留用的唯一理由。留用真正要比较的是未来成本,可以按下面几项逐条核对:
如果其中两项以上需要专人处理,而使用记录又很弱,留用的理由就不充分。反过来,如果功能独立、逻辑简单、升级时几乎不用动,即使使用不多,也可以先留着,把下线排在主线工作之后。
假设某网站有一个两年前开发的旧版报价计算器,需求方早已取消继续投入,但后台记录显示每月仍有少量访问,且访问者会提交联系方式。此时直接删除会切断一条线索来源;更稳妥的动作是保留计算器,但把它从主导航移到旧工具页,并在页面上说明适用范围和替代入口。执行后观察一个周期,如果联系动作仍然存在,就继续保留;如果访问和提交都归零,再进入下线。
这个例子说明的是判断方法,不是真实项目结果。它成立的前提是:你能读到访问或提交记录,并且保留页面的维护量很低。缺少这两个前提,结论会变。
最明显的反例是:功能虽然有人用,但它依赖一个已经停止维护的第三方组件,或者它处理的是敏感数据而当前没有人能保证安全更新。这时“有使用”不能支撑留用,应优先安排替换或下线,而不是继续观察。另一种反例是:功能本身简单,却和主线流程深度耦合,删掉它需要改动大量代码。此时先做隔离,把入口收拢、依赖切断,再评估是否值得整体移除。
也就是说,使用记录是重要依据,但不是唯一依据。安全、合规和耦合程度可以把结论直接推翻。
比较稳妥的推进顺序是:先关闭对外入口或把它移出主要路径,保留代码和数据;然后观察一个完整业务周期内是否有人反馈找不到;最后再决定彻底移除还是归档。这个动作的结果会直接影响下一步——如果隔离后没有任何业务受阻,下线就可以按计划执行;如果出现明确依赖,就转为保留并补维护说明。这样既不因沉没成本硬留,也不因一句“需求取消了”误删仍在发挥作用的部分。