当轮胎店十分钟后打烊:应急预案是备选方案,而非预测
当时我们正在恶地(Badlands)的岩石园里,右后轮胎报废了。备用胎已经用完了。所有人都掏出手机找替换胎,有人找到一家有我们需要尺寸的轮胎店。
它十分钟后就打烊。
而那位店员说得很清楚,他打烊后绝不多留。
于是我给轮胎店打电话,在电话里付了轮胎钱。我叫了一辆 Uber 去店里,跟司机沟通,承诺给一笔可观的小费,他同意把轮胎送到公园来。然后我打电话给公园办公室——我们对这个公园不熟——请他们如果我们错过了司机,就在门口帮我们收下轮胎。工作人员的反应堪称娱乐。他们从没见过轮胎被 Uber 送过来。那位保安只是问,我们究竟是怎么安排成这样的。
轮胎送到了。我们在现场把它装到轮毂上——这种做法并不被推荐——并在公园关门前赶回了拖车队。
那一天真正的意义在于:你不是为轮胎爆裂而计划,而是为“备用胎用尽”而计划。
轮胎爆裂从来不在我们的掌控之中。而“备用胎用尽”是我们早先做出的决定——一个我们带进公园的单点故障。这是最值得首先点名的错误,因为正是它酿成了整场冒险。我们本该带第二条备用胎,或一套修补工具,或两者都带。冗余是计划中最无趣的部分,却也是真正能预防事故的部分。
但事故无论如何都会发生。而当它发生时,计划不是一份预测——而是一串备选方案。看看我们这条链上的每一环的成本:一个付款买轮胎的电话、一次网约车叫单、一个向公园办公室的托付。每一环设置起来都微不足道。每一环触发起来都快。而且每一环都是通往同一结果的路径,所以即便某一环断了,下一环仍能带我们回家。
这才是值得效仿的结构。不是一份精心设计的恢复计划,而是若干廉价、并行排列、各自都能独立奏效的备选方案。轮胎店本可以拒绝。司机本可以放鸽子。办公室本可以错过我们。其中任何一环失败,我们仍有一条出路。
而在事故响应中我们恰恰相反:我们写一份详细的 runbook 就收工了。然后那份 runbook 的单点故障——那个唯一知道怎么执行它的人、那台宕机的工具、那个联系不上的供应商——就变成了第二起事故。
轮胎是问题所在。围绕它的系统才是解决之道。在你需要之前就建好备选方案的链条,并在每环还便宜的时候测试它。