先给结论:把“需求取消”当成下线信号通常过于草率,把“已经开发完成”当成留用理由同样不可靠。更可操作的判断是看该功能是否仍在承担真实入口、是否产生可观测的维护负担、以及下线后会不会破坏已有用户的预期。三者中有一项明确指向留用或下线,就可以先做决定;三项互相矛盾时,先做隔离观察,而不是立刻删除代码。
假设某个集众思建站项目里,运营曾提出一个“按部门筛选公告”的功能,开发上线后需求方撤回,功能却留在了页面上。小范围试用时,确实有几位内部用户点过它,看起来“还有人用”。但当站点内容量增加、部门划分调整后,这个筛选条件经常筛出空列表,反而让访问者以为站点没有内容。这类现象说明:个别样本成立,不等于规模化后仍然成立。
不能直接照搬的边界在于:如果站点的内容结构、部门数量或访问来源与试用阶段差异很大,试用期的点击记录只能证明“有人点过”,不能证明“这个功能值得长期保留”。
需求被取消,可能取消的是原定的业务目标,而不是这个功能本身的查询价值。例如原需求想推动某类内容曝光,后来业务方向变了,但访问者仍可能按部门找公告。这种情况下,功能的问题往往出在入口位置、默认选项或文案,而不是功能逻辑本身。可留用的条件是:你能指出它服务的是哪一类访问者、在哪个页面路径上被需要,并且维护它的成本主要是内容维护而非代码维护。
另一种可能是,需求取消后没有任何一方继续为它提供内容或数据,筛选条件逐渐变成摆设。此时它仍然出现在界面上,只会增加理解成本和测试范围。应下线的条件是:连续观察期内没有稳定入口流量、筛选结果长期为空或近似为空、并且每次改版都要为它单独做适配。满足这三条,删除通常比保留更省事。
不要只看总点击量。总点击量会把“误点”“爬虫访问”“内部测试”混在一起。更有区分力的证据有三组:
如果入口来源集中、结果质量尚可、维护触发少,倾向留用并调整入口;如果入口来源分散、结果质量差、维护触发频繁,倾向下线。请求量或点击量归零不能单独证明该功能无用,它也可能是入口被折叠、页面改版或统计口径变化造成的,需要结合上面三组证据一起看。
假设某集众思建站项目保留了一个“按标签聚合”的页面,需求方早已撤回标签运营计划。团队先不删除,而是把它从主导航移到页脚,并保留四周观察。若四周内来自页脚的访问极少、且没有新的内容依赖它,就可以进入下线流程;若仍有稳定访问,则说明它承担了导航之外的查找需求,应改为在内容页内嵌标签入口,而不是继续占用独立页面。这个例子的数字只用于说明比较方法,不代表任何真实项目的统计结果。
可执行的动作是给功能加一层“隔离状态”:保留代码和内容,但从主路径撤下入口,记录它是否仍被访问、是否仍被其他页面引用、是否仍出现在站点地图或内部链接中。隔离一段时间后,如果没有任何页面依赖它、也没有稳定访问,就可以删除模板、路由和对应的内容字段;如果仍有引用,则先清理引用再删除,避免留下死链。这个动作的结果会直接决定下一步:删除后需要回归测试相关页面,保留后需要明确谁负责维护它的内容,否则它会再次变成无人认领的遗留功能。
对已有经验的团队来说,真正要评估的不是“开发成本已经花了多少”,而是“继续留着它,下一次改版要额外付出多少”。已经投入的开发量属于沉没成本,不能作为留用理由;能否说清它当前服务谁、由谁维护、下线会影响谁,才是可复核的判断依据。