先把“功能该不该留”拆成三份可以核对的材料:需求取消的书面记录、已开发功能的真实调用与维护证据、以及各角色对同一事实的不同说法。然后由产品、开发和运营各自在页面上标注依据,而不是继续争论感受。结论只有留用、冻结或下线三种,且必须附带下一步动作和复核时间。
你手上通常有一张功能列表或一个已上线但入口隐蔽的页面。第一步不是投票,而是让每个角色在同一行里写下自己认定的事实。产品写“需求何时取消、取消原因”,开发写“代码在哪、依赖哪些接口”,运营写“有没有人用、从哪里进入”。三种说法往往互不矛盾,只是覆盖了不同侧面。
可核对的证据包括:代码仓库中该模块最近一次实质改动的日期;构建或发布记录里它是否仍被打包;访问日志或埋点中该路径的请求量;以及客服、销售或内部群里是否出现过相关反馈。注意,请求量归零并不等于功能无用,也可能是入口被移除、权限收紧或统计脚本本身失效,需要逐一排除。
把这些写进一张表后,分歧会从“我觉得该留”变成“我依据的是哪条记录”。这一步的实际动作是:指定一个人汇总,并在表头注明每列数据的采集口径和时间范围,否则后续比较没有意义。
留用成立的条件通常是三者同时满足:仍有稳定且可解释的使用来源;维护成本低到不占用迭代资源;并且它不阻碍后续架构调整。只要有一项明显不成立,就应优先考虑冻结或下线,而不是默认保留。
冻结适合这样的情形:功能当前无人使用,但删除会牵动共享代码、数据库字段或第三方对接,短期拆解风险高于保留。冻结的动作是关闭入口、保留代码、在清单中标注责任人和复核日期,并明确它不再接受新需求。
下线适合:调用证据长期为空、依赖可以一并清理、且没有对外承诺或合同约束。下线的动作要分步:先隐藏入口并观察一个约定周期,再移除前端引用,最后清理后端逻辑和数据。每一步的结果决定下一步是否继续,例如隐藏入口后若出现集中反馈,就应暂停并回到留用评估。
假设某站点曾为一次活动开发了邀请码兑换页,活动取消后页面仍可访问。汇总后发现:近三个月该路径请求量接近零,但代码与用户账户模块共用一张表。此时直接删除可能影响账户逻辑,因此先冻结入口、保留代码,并约定下次账户模块重构时一并评估。这个例子的数字只为说明比较方法,不代表任何真实项目结论。
评估结束后,输出不应只是一句“保留”或“删除”。一份可执行方案至少包含:功能名称与所在位置、结论、依据摘要、负责角色、第一步动作、完成标志、复核时间。依据摘要只写可核对的事实,例如“入口于某次改版后移除,日志中该路径无独立请求”,不写推测性判断。
如果多个角色对同一事实仍有不同理解,就把争议点单独列出,并指定用哪种方式核对,例如查发布记录、查权限配置或做一次小范围访问测试。核对结果直接决定结论是否调整,这比反复开会更有效。
最后,把这份方案放回你的功能清单或项目文档中,确保下一次有人问起时有据可查。留用不等于永久保留,冻结也不等于遗忘,两者都需要明确的复核节点,否则同一分歧会在下一轮迭代中再次出现。