先给结论:不要按“需求是谁取消的”来投票,而要把这个已开发功能拆成可核对的三笔账——当前是否有人在用、维护它需要持续付出什么、下线它会牵连哪些页面和数据。三笔账都能用现有后台数据、访问日志和代码依赖清单核对,分歧就能从“我觉得该留”转成“这几项事实对不上”。
常见情形是:业务方在需求评审后决定不做这个方向,但开发已经完成,功能也部署到了线上。此时会出现两种完全相反的理解。一种认为“需求都没了,留着就是技术债,应该尽快下线”;另一种认为“代码已经写完,删掉反而要花人力,留着又不占地方”。
这两种理解都不算错,错在它们讨论的不是同一件事。前者谈的是长期维护成本,后者谈的是当下删除成本。评估要做的,是把这两个成本放到同一张核对表上,而不是让两方各自坚持自己的那一半。
解释一:这是沉没成本,功能没有真实价值。支持这个解释的证据是:上线后一段时间内,该功能的访问量、触发次数或提交量长期处于极低水平;没有任何外部链接、站内入口或推广渠道指向它;业务方确认没有后续运营计划。
解释二:这是潜在资产,只是还没被用起来。支持这个解释的证据是:有真实用户通过搜索、收藏或直接输入地址到达该页面;功能依赖的数据表或接口被其他模块调用;下线会影响已发布的内容、已提交的表单记录或对外承诺过的页面地址。
两类证据并不互斥。一个功能可能访问量很低,但被其他代码依赖;也可能访问量不低,却没有任何业务方愿意接手运营。所以不能只看单一指标就下结论。
访问量低有很多合理解释:入口藏得深、没有做任何引导、统计代码本身没覆盖到、或者用户通过站外直接访问而未被记录。因此不要只看总访问量,而要看这几个可区分的信号:
如果以上信号全部为零,且持续观察了一个完整的业务周期,那么“没有真实使用”这个解释就更站得住。如果只有总访问量低,但存在完成动作的记录,就不能直接判定为无用。
留用的代价不只是服务器资源。真正需要核对的是:这个功能是否依赖某个即将升级的框架版本、是否引用了已停止维护的第三方组件、是否在每次发版时都需要单独回归测试。可以列一张简表,按“每次发版是否要动它”“是否有安全更新需要跟进”“是否有人能说清它的业务规则”三项打分。
假设一个功能每次发版都要额外花半天做回归,一年按若干次发版估算,这个人力就是留用的真实成本。这个数字不需要精确,但必须写下来,因为它会把“留着不占地方”这个模糊判断变成可比较的投入。
下线一个功能,真正的工作量往往不在删代码,而在处理牵连。需要核对:
把这几项列出来后,通常会发现“删除成本”比想象中高,或者比想象中低。关键在于:这个成本是一次性的,而维护成本是持续的。两者不能直接比大小,但可以放在同一个决策周期里比较。
假设某定州网站建设项目的“在线预约试听”功能在需求取消后仍保留。核对发现:过去一个季度有若干次页面打开,但没有任何一次提交记录;代码依赖一个仍在维护的表单组件;没有其他页面链接到它,也没有外部接口调用。此时可以判断:使用证据接近于零,维护成本中等,下线牵连很小。合理的动作是先隐藏入口、保留页面并观察一个周期,如果仍然没有提交,再执行下线并设置跳转。这个动作的结果会直接影响下一步:如果隐藏后出现用户通过直接地址访问并提交,说明之前的低使用率是入口问题,而不是需求问题,此时应重新评估是否恢复入口,而不是继续下线流程。
当多个角色对同一功能有不同判断时,不要继续争论“该不该留”。把下面三项写成待核对项,指定谁去取数、谁去确认依赖、谁去评估牵连。每一项都要有明确的来源,比如后台记录、代码引用列表或业务方书面确认。核对完成后,留用或下线的结论通常会自然浮现,因为争论的焦点已经从立场变成了事实。
最后提醒一点:无论选择留用还是下线,都要记录决策依据和复查时间。留用不等于永久保留,下线也不等于彻底删除。把复查条件写清楚,下一次面对类似情况时,就不需要从头再吵一遍。