核心问题

为什么不知道一个围栏为什么存在之前,不要先拆掉它?

真实场景

代码里有一段奇怪判断:

如果用户来源是 legacy_partner,就跳过某个校验。

新人觉得这是坏味道,想删掉。后来发现这个合作方仍在使用老接口,删除会导致订单全部失败。

常见误区

坏判断是:

这个逻辑看起来不优雅,所以应该移除。

工程上,优雅不是第一原则。正确理解系统边界才是第一步。

工程视角

Chesterton’s Fence 的工程含义是:

在你不知道一段代码为什么存在之前,不要轻易删除它。

这不是反对重构,而是反对无知的重构。

PM 可以怎么做

PM 很适合追问“围栏历史”:

  • 这个规则对应哪个客户或业务?
  • 有没有数据证明它已经不用了?
  • 删除前是否可以加监控?
  • 是否需要灰度关闭?
  • 是否要通知业务方确认?

Atlas Action

对每个想删除的旧规则,建立一个“围栏卡片”:

规则是什么:
疑似原因:
当前使用量:
删除风险:
验证方式:
下线计划:

小结

切斯特顿围栏不是让你永远保留旧逻辑,而是提醒你:先理解,再拆除。

PM 的价值,是让“删除”变成可验证的工程动作。