Skip to content
OpenWalk
Go back

瑞士奶酪模型

Edit page

你或许听过这个故事:一位经验丰富的机长,在一次常规飞行前,做完了所有检查。然而降落时,飞机出了事故。事后调查发现,飞机在起飞前就有一个零件出了问题——那个零件本该在检查中被发现。

调查继续深入,发现机长确实做了检查。但那个零件的问题极其隐蔽,属于「在正常检查流程中有时会漏掉」的那一类。更关键的是,副驾驶在协同检查时,因为相信机长的经验,自己并没有实际执行完整的检查流程。再往上追溯,这家航空公司的维护流程规定在过去三年里一直在「优化」,所谓的「优化」其实是削减了检查项目。人员减少了,流程压缩了,隐患就这样一层层积累下来。

最后你看到的是:机长漏检了。机长是那个被问责的人。

但真正的问题不是机长。


事故不是没做到位,是太多层同时失效了。

瑞士奶酪模型(Swiss Cheese Model)是英国心理学家詹姆斯·瑞森(James Reason)在1990年代提出的。他用一块带洞的瑞士奶酪来比喻安全防御系统:每一层防御都是一片奶酪,都有洞。这些洞不是静止的——它们会移动、会变大、会变小、会消失、会重新出现。

事故发生的那一刻,不是某个洞没补上,而是所有层的洞恰好对齐了。光从第一个洞穿进去,穿过第二片的洞,再穿过第三片的洞,一直穿到第四片——灾难就这样穿透了所有防线。

这个模型之所以反直觉,是因为我们习惯性地认为:事故是「没做好」的结果。做好了培训、做好了检查、做好了流程,事故就能避免。但模型告诉我们:每一层防御都有漏洞,这是不以人的意志为转移的客观事实。事故不是因为某个洞没补,而是因为足够多的层在同一时刻各自失效到了让光线通过的程度。

这不是悲观主义。这是工程现实。

漏洞在动。人员换班,注意力漂移。设备老化,性能下降。流程僵化,不再适应新情况。压力增大,人在高压下判断力会系统性下降。这些因素每时每刻都在让某些洞变大、变小、消失或重新出现。事故不是静态的「没补上」,是一个动态过程——是足够多的隐性条件在某个时刻共振的结果。

理解这一点并不容易。我们的大脑天生倾向于寻找简单的因果关系——某个错误导致了某个结果。找出那个犯错的人,惩罚他,然后社会恢复了秩序感。但这种秩序感是幻觉。真实的事故机制是:一个零件出了问题,一个检查没做完整,一个流程被压缩,一线人员刚好在疲劳状态下工作——这些因素单独拎出来,每一个都不足以导致灾难。但它们叠加在一起,就是一场事故。

医学界有一个更直观的概念叫「瑞士芝士效应」——每一片芝士上的洞都不大,单独一片芝士仍然能挡住大部分光线。但当五片芝士的洞恰好重叠,光就穿过去了。人体对疾病感染的抵抗也是类似:皮肤是第一道防线,巨噬细胞是第二道,免疫系统是第三道,每一层都有缺陷,但叠加在一起,大多数病原体还是被挡住了。

理解了事故是怎么发生的,还不够。真正重要的问题是:谁该为事故负责?

瑞森把漏洞分成两类。一类是「显性失效」(Active Failures),这是一线操作人员直接导致的失误——机长漏检了,护士给错了药,交易员输入了错误数字。这类失效是导火索,是海面上的冰山一角,是读者在新闻里看到的那种「人为失误」。

另一类是「隐性条件」(Latent Conditions),这是系统设计、管理决策、组织文化中早已埋下的缺陷——维护流程被压缩了,人员配置不足,制度设计鼓励超时工作,跨部门沟通有断层。这类缺陷早在事故发生前几年就存在了,它们不直接导致失效,但它们让失效更容易发生。

哥伦比亚号航天飞机在2003年解体坠毁。官方报告指出了一个问题:发射前工程师已经发现了潜在的隔热材料损伤,建议推迟检查。但这个建议没有被采纳。表面的「失误」是宇航员和地面人员在明知有风险的情况下仍然发射。但更深层的问题是NASA的风险管理文化——在进度压力下,安全建议经常被忽略,系统性问题长期被压制。那个宇航员不是莽撞,他只是整个系统积累了几十年的问题在那一刻的触发器。

医疗事故的统计更能说明问题。研究表明,护士给错药事件中,90%以上不是护士个人的能力或态度问题,而是系统性问题——护士人手不足、工作时间过长、药品存放流程混乱、缺乏交叉验证机制。出事之后找到那个「犯错」的护士不难,但真正的根因在系统设计层面。改变一个人比改变一个系统容易得多,但改变一个系统比改变一个人有效得多。

这就是为什么「追责个人」在安全领域是一个危险的做法。追责满足了人们对「正义感」的短期需求,却压制了更重要的东西——信息流动。当承认错误变得危险,Near-miss(差点出事但没出)就永远不会上报,系统性缺陷永远暴露不了。航空业在引入无指责报告系统之后,Near-miss上报数量增加了300%以上,直接推动了数十项系统性改进。数字背后是一个简单的逻辑:每一次Near-miss都是一个「洞没对齐」的时刻,记录下来才能分析,才能改进。不记录,就没法学习。

真正该负责的,不是那个「犯错」的人。是那个让犯错变得可能、让危害变得致命的环境。

这里有一个微妙的转换:从「追责」到「归因」,看起来是文字游戏,实际上是整套思维方式的改变。追责问的是「谁该被打板子」,归因问的是「什么条件让这事发生」。前者指向一个人,后者指向一个系统。前者给出惩罚,后者给出改进的方向。


但问题还有更深的一层。找到了系统性问题,我们还需要问:系统为什么会设计成这样?为什么要接受「人注定会犯错」这个事实?

因为认知科学早就证明了:人的注意力是有限资源,工作记忆平均容量是7个左右的项目,注意力的持续集中时间大约是20到30分钟,之后会系统性下降。疲劳会损害判断力,社会压力会导致服从权威而忽略风险——这是物种的生物结构决定的,不是个人品德问题。

这就引出了一个关键的设计原则:在设计复杂系统时,必须把人放在系统边界内,而不是系统外。

当人在系统内,他的局限性是设计的已知参数——你会规定最小休息时间、最大连续工作时间、关键操作需要双人确认。当人在系统外,系统会假设人可以超越自己的生物限制——于是出现了「超人」式的岗位要求:连续工作36小时不出错、同时处理十几个紧急事件还能保持冷静。这些要求违背生理,最终导致系统性失效。

核电站的操作手册里明确规定了最大连续工作时间。不是因为规定本身有什么道理,而是因为人因工程研究早就证明了:人在连续工作超过特定时长后,判断力会断崖式下降。规定不是在限制人,是在承认人的局限性,然后在这个承认的基础上设计系统。

设计冗余而不是设计完美流程。冗余的意思是:即使一层失效,其他层还在运转。不是依赖某个关键人物每次都做对,而是让每次失误都不会成为灾难。

航空业的双重检查制度是最好的例子。飞行员和副驾驶各自独立完成检查清单,不是甲做完给乙核对,而是两个人分别检查。这意味着即使其中一人漏掉了某个问题,另一人大概率能补上。两层都不完美的奶酪叠在一起,洞对齐的概率就小多了。

医疗行业也在学这个。想想手术暂停制度(Time-out):在手术开始前,整个手术团队会停下来确认患者身份、手术部位、手术方式。这些信息其实在之前已经核对过多遍。但为什么要重复?因为每多一层验证,洞对齐的概率就小一点。这不是不信任前一个人,是承认每一层都有可能出现暂时性的失效。

更进一步,医疗行业还有「三人规则」:给药时需要三个人分别确认——备药护士、执行护士、最后一个是患者或家属。三个人同时出错的概念比一个人低了几个数量级。不是相信没有人在做好事,是确保即使有人在某个时刻走神,系统还能抓住那个错误。


冗余的逻辑听起来简单,但实践中有一个反直觉的困难。

「坚固」是工程学里的一个危险词汇。

我们倾向于把安全理解为「不被穿透」——做好防护,挡住风险。但瑞士奶酪模型揭示的真相是:在足够长的时间线上,任何单点防御都会被穿透。设备会老化,人会疲劳,流程会僵化,环境会变化。唯一可靠的策略,是让「被穿透」之后还有备份。

企业的现金储备是冗余的典型案例。账面上趴着大量现金,在日常运营中看起来是浪费——不如拿去投资,不如发给股东。但危机时期,现金是唯一能救命的东西。2008年金融危机中,雷曼兄弟因为缺乏足够的流动性破产,而高盛因为平时积累的冗余储备活了下来。事后分析雷曼的倒下,你会发现它并不是没有好的投资机会、没有优秀的人才——它只是没有在平时储备足够的冗余来度过极端时期。塔勒布说的「爆仓之后什么都没有了」——这不是投资建议,是概率论的推论。

人体免疫系统也是冗余逻辑。平时似乎「闲置」,遭遇新型病原体时却是唯一防线。如果一个人从来没有打过某种疫苗,他的免疫系统就是冗余不足——遇到那种病原体就是灭顶之灾。而广泛的疫苗接种,是在人群层面建立冗余——即使个体免疫不足,群体层面还有阻挡。

这就解释了为什么「追求完美」反而是脆弱性的来源。

追求完美的人,把全部资源押注在单一路径上——我只要足够努力、足够谨慎、足够优秀,就能避免所有风险。但在一个复杂系统里,任何单点防御都必然有漏洞。把所有鸡蛋放在一个篮子里,即使那个篮子看起来再坚固,也扛不住黑天鹅事件。黑天鹅事件不是「小概率事件」——在一个足够长的视野里,它是「必然会发生的事件」。

追求完美的组织,设计出越来越复杂的检查流程。他们相信:问题在于没检查到位,所以要加更多检查。但检查层数越多,每层之间的依赖关系越复杂,系统越脆弱。更重要的是,当backup存在时,primary的可靠性反而会下降——人会产生「其他层会兜底」的依赖感,反而降低了本层的警觉。这就是「冗余悖论」。

法航447事故是一个极端案例。飞机有自动警报系统,有备用传感器,有多重保护。但在高空遇到气流时,飞行员在紧急情况下过度依赖自动化设备,忽略了手动操作的必要性。当自动化设备给出错误信息时,人完全没有介入,还在相信设备。这是冗余悖论的极端形式——备份存在,但没有人用。

真正有效的策略,是接受不完美,然后设计不完美也能运转的系统。不是消灭漏洞,是确保漏洞永远不会同时对齐。

「确保」这个词在这里有一种误导性。更准确的说法是:让漏洞同时对齐的概率,低到可以接受的程度。百分之百的安全不存在,但足够低的失效率是可以通过冗余设计实现的。工程学里有一个概念叫「九个九」——99.9999999%的可靠性。这是通过多层冗余叠加出来的,不是通过让某一层完美实现的。


那这套逻辑怎么用在日常生活里?

第一层是自我认知:告别完美主义陷阱。

人本身就是有漏洞的奶酪——不是自嘲,是事实。建立多层防御体系,比填平漏洞更实际。接受自己会犯错,接受自己的局限性,然后在这个基础上设计自己的生活和工作的冗余机制。

职业发展上,追求多维度能力而非单一专精的完美。技术快速变革的领域,今天的金饭碗可能是明天的夕阳技能。几个不相关的技能叠加在一起,形成的冗余才能对抗职业风险。写作能力、编程能力、数据分析能力、项目管理能力——这些能力各有各的用途,也各有各的失效场景。组合在一起,互为备份,职业生涯的稳定性就高了很多。单一技能再强,如果恰好是会被自动化取代的那种强,结局就是失业。多维度能力的叠加,本质上是在职业层面建立冗余。

财务上,道理一样。不要把全部身家押注在单一投资上,哪怕那个投资看起来再稳固。保持一定的现金储备,哪怕收益率低一点。冗余平时是成本,极端时刻是救命。2008年金融危机、2020年新冠疫情——每一次极端事件都在教育人们这个道理:平时觉得浪费的东西,关键时刻能救命。

职场中的冗余也值得重视。不要只维护一个核心圈子,只做一个上级的关系,只依赖一种技能的收入。任何一个单一关系断了,你的系统还能运转——这才是健康的职场架构。

第二层是社会认知:从追责个人到修复系统。

当团队发生问题,第一反应不应该是「谁错了」,而应该是「哪几层防御在这一刻同时失效了,为什么」。无指责复盘不是为犯错的人开脱,是让系统性问题浮出水面。

如果每次出事都追责个人,团队会学会隐藏问题。不报告Near-miss,不承认失误,不说「我不太确定」——因为说了会变成背锅侠。结果是真正危险的系统性缺陷永远在暗处积累,直到某一天以灾难的形式爆发。有一个说法叫「事故是系统的学费」——每一次事故都是系统在告诉你它有漏洞。问题是,你愿不愿意交这笔学费来换取这个认知。

好的团队会主动寻找漏洞。Google的Project Aristotle发现,高绩效团队的核心特征不是成员的平均能力,而是团队的心理安全感——成员是否敢于说出不同意见、承认错误、提出不确定的问题。一个敢于说「我可能错了」的团队,比一个没有人会犯错的团队,安全性高得多。因为前者能暴露问题,后者不能。后者的问题永远在暗处积累,直到爆发。

第三层是世界认知:脆弱的反面不是坚固,而是冗余。

用概率论眼光看待这个世界。冗余平时看起来是浪费,极端时刻是救命。在足够长的时间线上,黑天鹅事件必然发生——个人层面的失业、行业层面的颠覆、文明层面的冲击。没有任何单一防御是可靠的。可靠的是冗余——即使一部分失效,系统还能运转。

这不是悲观。这是清醒。认识到这个世界是不完美的,认识到任何单点防御都会失效,认识到「到时候再说」在极端情况下会让你没有退路——这是审慎,不是悲观。审慎的人会为小概率事件做准备,悲观的人会放弃行动。差异在于,审慎的人一边做一边储备冗余,悲观的人一边抱怨一边什么都不做。


在实际工作中,这套逻辑怎么落地?

流程设计:不依赖超人的高标准检查,而是设计冗余验证。一个关键风险节点,至少两个独立检查环节,每个环节对人员能力要求在正常范围内,不依赖任何个人每次都做到完美。

航空业的做法值得借鉴。飞行员检查清单是双套的,两个人各自独立完成。不是一个人做完给另一个人复核,而是两个人同时分别检查,然后交叉核对。这种设计的思路是:任何单个人都可能因为注意力暂时漂移而漏掉某些东西,但两个人同时漂移的概率就低很多。不是相信谁会不出错,而是不相信任何人能在任何时候都不出错。

团队文化:建立无指责复盘机制。复盘时不问「谁错了」,而问「这一次,哪几层防御同时失效了,什么条件让这些失效叠加在一起」。真正的问题永远在系统层面。

Netflix有一条著名的文化准则:人才保留策略是「高绩效,不配合就离开」。但它的安全文化恰恰相反——鼓励员工在任何时候叫停,即使你不确定是不是有问题。这种「暂停并提问」的文化,在航空业和医疗行业都有大量案例证明能有效防止事故扩大化。一个简单的「等一下,有什么地方感觉不对」——有时候能阻止一场灾难。这句话的成本几乎是零——它只是要求团队在行动前多一个确认环节。但它的收益是巨大的,因为它让系统多了一层检验。

个人精进:建立多层防御。能力上追求多维度而非单一极致;财务上保持一定的现金储备而不全是高风险高收益投资;社交上维护多个独立的关系网络而非只有一个核心圈子。

有一个实用的检测方法:问自己「如果我现在的技能突然没用了,我会怎样?」如果答案是灾难性的,说明你的防御层太单一。如果答案是「会受影响,但还有其他的」,说明你的冗余是够的。这个问题可以迁移到很多维度:收入来源、社交关系、信息获取渠道。每一个维度都可以问同样的问题。

向上管理:主动寻找移动的隐患。每季度至少一次系统性检查人员负荷、设备状态、流程僵化程度、跨部门沟通断层——而不是等失效事件发生。被动的风险管理是被抓现行,主动的风险管理是让隐患曝光在它还小的时候。

核电站有一种实践叫「假设失效演练」——不是测试某个人会不会犯错,而是测试系统在不同失效组合下的表现。这种思维可以迁移到任何一个复杂流程中:想象各个环节同时出问题的最坏情况,然后问自己「那时候系统还能运转吗?」这个问题能帮助你看清当前系统的脆弱点在哪里,冗余在哪里是不足的。


说了这么多实践方法,最后想回到一个更根本的问题:这套模型到底在说什么?

瑞士奶酪模型最深层的含义不是「多层防御」——这是它的字面意思,不是它的灵魂。

它的灵魂是:在一个不完美的世界里设计可靠性的哲学。

它的起点是谦卑——人是有漏洞的奶酪,每一层都有洞,这个事实你改变不了。它的终点是智慧——不要试图填平漏洞,而是让漏洞永远不会同时对齐。

真正危险的从来不是漏洞本身。是那个让所有漏洞同时出现的条件。

所以,去找那个条件,而不是去追那个站在漏洞对面的人。


Edit page
Share this post on:

Previous Post
戒定生慧
Next Post
什么是长期主义?