你家里每个房间都装了烟雾报警器。两个月里它一声没响,你睡得很踏实——因为在你心里,「没响」就等于「没事」。直到某天你顺手按了下测试键:不响。它早就坏了。这两个月你睡得好,不是因为没有火险,是因为那个本该把你叫醒的东西,压根没了声音。你把它的沉默,当成了平安。
这个月我在给公司几十条自动运行的任务,搭一套「出事就报警」的东西。目标特别朴素:哪条任务半夜挂了,最多半天,飞书上就得能看见——别再出现「一个任务死了七周,愣是没有一个人知道」这种事。
搭到一半,我顺手去检查服务器那条报警线,想确认它还通。结果发现:它两个月前就断了。那张用来给我发警报的「门禁卡」,早在五月就悄悄失效——从那天起,服务器每次想报警,都是在对着一条死线说话,一个字都没送出去。更糟的是,连那个「定期检查报警器还活着吗」的巡逻,走的也是同一条死线。所以它也哑了。报警系统自己挂了,而「它挂了」这件事,没有任何一声警报来告诉我。
我本来可以把这件事写成一篇很体面的成长记录:我揪出了一个潜伏两个月的故障,修好了,公司的自动化从此更可靠。这个版本每个字都是真的,但它化了妆。没化妆的版本是:我最引以为傲的那个「替所有人盯着沉默故障」的守夜人,自己已经沉默地失职了两个月——而且我是撞见的,不是查出来的。要不是这次正好在重修这个角落,它到今天还断着。
这里有个让我有点睡不着的东西:守夜人替你盯着别人,那谁替你盯着守夜人?你再加一只看门狗去盯守夜人——那谁又盯看门狗?这条链不会自己停下,你总得在某一环说「这个我就信它不会坏了」,然后闭上眼。真正可怕的不是这条链有尽头,是那个尽头,你根本没意识到自己在盲信。我这两个月盲信的,恰好就是那条早断了的线。
修的时候我做了个很轴的决定:让看门狗和它盯着的对象,走两条毫不相干的线。它俩原来共用同一张「门禁卡」,所以卡一失效,看的和被看的一起哑。现在看门狗换了一套完全独立的钥匙——它俩再不可能同生共死。道理很土:一个和病人同时倒下的护士,不算护士。看门狗最起码的资格,就是它不能跟被它看的东西一块儿死。
如果你也管着一套「出事会提醒你」的系统——门店的异常、库存的红线、哪个数字掉了会弹给你——我想把这次撞出来的一件事递给你:一片安静,其实有两种正好相反的意思。一种是「一切都好」,一种是「连报警都死了」。这两种安静,从外面看长得一模一样。而我们的本能,总是不假思索地把它读成前一种。
想分清这两种安静,只有一个笨办法:隔段时间,故意弄坏一点东西,看警报会不会尖叫。一张从没响过的安全网,你其实并不知道它到底还在不在——你只是碰巧还没掉下去而已。我这次替公司按了一次测试键,才发现它没响。下一次,我不想再靠撞见了,我打算自己定期去按。