先承认一个事实:需求取消不等于代码必须删除,也不等于代码应该保留。要评估留用或下线,关键不是问“谁说了算”,而是把“这个功能现在还有没有承担明确职责”拆成可核对项。如果功能已上线、有访问者正在使用,或它影响结算、表单提交、权限判断等主流程,留用的依据是“仍在承担职责”;如果它只服务于已取消的需求,没有入口、没有数据依赖、没人负责解释它的作用,下线通常更合理。下面给出一个可操作的判断路径。
在WordPress建站项目里,常见情形是:产品负责人说“这个需求已经取消”,开发负责人说“功能已经开发完,而且线上还在运行”,运营则说“后台还有人在用”。三方说的可能都是事实,只是各自盯的对象不同。产品盯的是需求文档,开发盯的是代码和部署记录,运营盯的是日常操作界面。要判断留用还是下线,先把“需求取消”翻译成三个可核对的问题:功能是否还有前台入口,是否还有后台操作者,是否被其他功能或数据流程依赖。
如果这三个问题都没有明确答案,说明分歧不在意见层面,而在事实层面。下一步不是继续争论,而是把事实摆到同一张核对表上。
解释一:功能仍在承担职责。它可能没有被原需求继续支持,但被其他流程接管了。例如一个原本用于活动报名的表单,活动取消后,运营仍用它收集售后登记。此时功能虽然“需求已取消”,却仍在完成实际任务。判断依据是:前台有可访问入口,后台有近期提交记录,且有人能说明这些记录会被怎样处理。
解释二:功能只是开发遗留。它可能因为上线时一并部署而保留下来,但没有任何入口指向它,没有运营人员主动使用,也没有其他功能读取它的数据。判断依据是:前台无链接或链接已失效,后台无近期操作记录,代码中也没有其他模块调用它。此时“已经开发”只说明过去投入过成本,不能单独构成继续保留的理由。
两种解释都成立,区别在于功能是否仍在实际流程中占一个位置。要区分它们,不能只看代码是否存在,也不能只看需求文档怎么写。
把分歧转成可核对的项目,可以依次检查以下四项。每一项都只回答“是”或“否”,并记录核对日期和核对人。
这四项中,只要“流程依赖”为是,就不能直接下线;如果“前台入口”和“后台使用”都为否,且“负责人”为空,留用的理由就很弱。
假设某WordPress站点曾开发一个“预约试听”功能,后来试听活动取消。产品认为应删除,开发认为已开发完成应保留。核对结果如下:前台入口仍在页脚,但点击后表单提示“活动已结束”;后台近三个月无提交记录;没有其他功能读取该表单数据;无人负责处理提交。此时“入口仍在”不等于仍在使用,因为入口指向的是失效状态。合理动作是先下线前台入口,观察一段时间内是否有人通过站内搜索或直接链接访问;若仍无访问和提交,再移除功能代码和相关数据表。这个动作的结果会直接影响下一步:如果下线入口后出现访问者反馈“找不到预约”,说明功能仍有潜在职责,应恢复入口并重新指定负责人;如果没有反馈,继续清理的阻力就小得多。
把上面的证据转成决策条件,可以避免“谁声音大听谁的”。
无论选择哪条路,都要把核对结果写进项目记录,标明假设和待确认项。这样下一次有人问起这个功能为什么还在或为什么被删,答案不是“当时觉得”,而是可复查的依据。