Chesterton Fence:在了解其存在原因之前,切勿移除任何事物
Source: Dev.to
Chesterton Fence 原则
想象一下,你在乡间小路上行走,看到一条横跨道路的栅栏。你的第一反应可能是把它拆掉——毕竟它似乎毫无用处。G. K. Chesterton 认为,这种本能恰恰是相反的。如果你不明白这道栅栏为何而建,就没有资格将其移除。
Chesterton Fence 是一种改革原则,指出:在你移除或改变某件事物之前,必须先弄清它最初被放置的原因。理由很简单——如果你不知道某事物存在的原因,就无法预测将其移除后的后果。
这并不是反对变革的论点;而是反对盲目变革的论点。栅栏确实可能毫无用处,但你需要通过理解而不是假设来确认这一点。该原则是一个实用的思维模型,适用于所有影响既有系统的决策者。
应用
程序员
旧代码库里充斥着看似毫无意义的代码——神秘的配置标志、冗余的检查、异常具体的错误处理。想要通过删除这些代码来“清理”代码的冲动很强,但有经验的开发者都知道那些恐怖的案例:
- 一个“多余的”空值检查实际上在处理一个罕见的边缘情况,若去掉会导致生产环境崩溃。
- 一个“冗余”的数据库查询在防止竞争条件。
- 一个“奇怪的”超时值是经过数月痛苦调试后调校出来的。
该原则并不意味着“永远不要重构”。它的意思是“在重构之前先理解”。阅读 git 历史,查找提交信息,和编写该代码的人交流,在删除任何一行之前先弄清上下文。
组织
新上任的经理常常急于改变他们认为低效的流程。许多组织流程是为了解决特定问题而演化出来的。例如,看似毫无意义的每周状态会议,可能是唯一防止两个团队重复工作的机制。了解其历史有助于你做出更好的改动。
政策
政府法规从外部看往往显得官僚且不必要,但很多法规的存在是因为特定的失败或危机。未了解促成这些法规的灾难就盲目取消安全规章,只会让同样的灾难再次发生。
个人习惯
即使是你自己的“坏”习惯也可能有隐藏的用途。下午的咖啡仪式可能不仅仅是为了咖啡因——它可能是你在孤立工作日里唯一的社交互动。在消除一个习惯之前,先弄清它满足了什么需求。
建立理解肌肉
Chesterton Fence 的核心在于 second‑order thinking——不仅考虑变化的直接影响,还要考虑其下游后果。围栏可能是为了防止牛群跑到道路上;如果将其移除,就会产生交通危险。
历代最伟大的战略思考者都会研究先前的情况,理解现有结构背后的理由,只有在此基础上才会做出明智的改变。
实用检查清单
- 问“它为什么存在?”
- 寻找原始上下文
- 考虑如果将其移除会怎样
- 在移除之前提出修改方案
- 记录你的理解
该原则并不意味着要永远保留所有东西;它也不是对所有变更的抵抗借口。它包含两个步骤:
- 了解它存在的原因
- 然后决定是保留还是移除
如果你完成第一步后发现原来的原因已不再适用,移除这道“围栏”是完全合理的。该原则仅要求在行动之前先进行理解。
常见误解
- “没人知道我们为什么这么做,所以它一定不重要。”(事实恰恰相反——未知的原因需要更多谨慎。)
- “这东西很旧,所以已经过时了。”(仅凭年龄不能说明相关性。)
- “我比创建它的人更聪明。”(没有上下文的智力是危险的。)
- “我们需要快速行动。”(没有理解的速度会产生技术债务和组织混乱。)
内部化 Chesterton Fence 的团队会做出更好的决策。他们构建制度性知识,维护文档,并以适当的谦逊来对待变更。
进一步阅读
- 访问 KeepRule 以探索更多能够提升思考的原则。
- 阅读博客,了解心理模型在日常决策中的实际应用。
下次当你遇到看似毫无意义的事物时,克制拆除它的冲动。相反,问自己:**“这道围栏为什么在这里?”**答案可能会让你惊讶。