先给结论:不要因为“需求方说不要了”就立刻删,也不要因为“代码已经写完”就默认保留。正确做法是把已开发功能当成一项待处置资产,用维护成本、数据责任、入口暴露面、复用概率四个维度分别打分,再决定留用、隐藏、冻结还是下线。对鸡西本地企业站来说,这个判断尤其容易走偏:样本少、开发资源集中,一个功能在单个项目里“没人用”并不等于规模化后仍然无害。
下面从一个常见矛盾切入:需求评审时确认取消,但开发排期已经完成,功能静静挂在后台或某个页面路径里。此时团队往往分成两派,一派主张留着不碍事,一派主张马上删干净。两种直觉都可能错。
在只有一个站点、一个维护人的情况下,一个已取消但已开发的功能通常不会立刻制造麻烦。它可能只是一个没有链接指向的页面、一段后台开关、一个未被调用的接口。此时“留着”看似成本为零。
但当同一套建站方案被复制到多个企业站,或同一后台服务多个站点时,情况会变化。未被删除的功能仍可能被扫描到、被旧文档引用、被新同事误当成正式能力继续开发。个别样本成立的经验——比如“我们站上没人访问这个页面”——不能直接外推到规模化场景,因为规模化会放大入口暴露面和责任归属的模糊度。
面对已开发功能,团队想保留它,通常出于两种完全不同的原因,必须分开判断。
解释一:沉没成本挽留。因为已经投入了开发工时,删除意味着承认这部分投入没有产出。这种心理会让人高估功能价值,把“已经写完”误当成“应该保留”。它的典型信号是:没人能说清这个功能未来由谁使用、在什么业务条件下启用。
解释二:真实复用价值。功能虽然当前需求取消,但其能力可能在其他站点、其他业务线或下一阶段需求中直接复用。它的典型信号是:有明确的复用对象、复用时间窗口,以及复用时不需大改的接口边界。
这两种解释在表面上都表现为“先留着”,但后续动作完全不同。前者应尽快下线,后者应转入受控保留。
不要靠开会表决,要靠可核查的证据。以下四个信号能帮助区分“该留”还是“该下线”。
实际操作上,可以先做一次功能清点:把已取消需求对应的页面、接口、后台开关和数据库表列出来,逐项标注上述四个信号。清点结果会直接影响下一步——若四项都指向低复用、高责任,就进入下线流程;若至少一项指向明确复用,就进入冻结或隐藏流程。
假设某鸡西企业站已开发一个“经销商查询”页面,需求方后来取消了对外展示计划。团队面临留用或下线。可以这样假设比较:
如果该页面只展示公开的经销商名称和城市,且未来半年内确有其他站点复用计划,留用并隐藏是合理的。如果页面包含联系人手机号或区域授权信息,即使当前无人访问,也应优先下线,因为数据责任不会因为“没人用”而消失。这个例子的数字仅用于说明比较方法,不代表任何真实项目结论。
不要只在“留”和“删”之间二选一。更细的处置能减少误判。
选择哪种处置,取决于前面清点出的证据,而不是取决于开发是否已经完成。已经完成开发只说明沉没成本存在,不说明应该继续承担维护责任。
下线不是删完就结束。至少应记录三件事:为什么下线、当时假设的复用条件是什么、如果需求重启需要从哪里恢复。这样做的结果是,下一次有人提出“这个功能以前做过”时,团队不必重新争论,而能直接对照当时的判断条件。若条件已变,再重新评估;若条件未变,就维持下线。这个动作把一次性的删除决定,变成了可复核的处置记录,也会影响后续建站时对需求变更的响应方式。
对鸡西企业建站而言,需求取消但功能已开发并不罕见。关键不是追求“零遗留”,而是让每一个遗留功能都有明确的处置状态和责任人。留用要有留用的依据,下线要有下线的记录,这样才不会在下一个项目里重复同样的判断难题。