那封你祈求永远不要出现在收件箱的电子邮件突然冒了出来。你重新读完它,仅为了确认里面的详细内容。尽管你想要忽略它,但是这一封你不能忽略的邮件。你的回复终于写好了,却犹豫要不要点发送。”让我来重新修改一下” 你自己想。让你左右为难的是,你所说的是不是真实的情况。
软件bug总是不幸地成为真实的世界体系的一部分,就像这句纠结的原话所说的,
“真实的系统不完美,完美的系统不真实“
当然,bug的严重性肯定是有等级区分的,有轻微的、有伤脑筋的、最后还有灾难性的。从最终用户的角度看,轻微的bug通常会被忽略;伤脑筋的bug常常因为能用某些规避措施而无关痛痒地呻吟一下;严重的bug则完全不同,它们是舞台上的搅局者。
严重的bug不经常发生(至少不应该发生),因为当发生时每个人都会注意到,影响可以大到金融损失,或者甚至死亡。2010年5月6日,股票系统里的一个bug导致了”闪电崩盘”,让美国金融损失了一万亿美元。1985年大约有6人因为接受了Therac-25设备的超剂量(100倍正常剂量)辐射而死亡,这又是一个直接由软件bug导致的后果。(《软件Bug引发的十次严重后果》一文就也说了这个案例。)
鉴于肩负此事的重要性,可想而知,这可是一副重担啊。这样沉重的担子,大部分人会希望尽量避免它也并不奇怪。简单的出路是要么把担子传给其他人,要么采取可能”经济”的措施面对真相。
不担责任是一个Hack,一个短期处理。可能在短时间里凑效,但是不久,带着所有的Hack,问题会毫无疑问的崩溃。当问题崩溃时,情况会远不如最初避免短期处理的样子。
专业人员,从医生到程序员,那些依赖他们的人信赖他们。大部分人都理解事情有时候会出错,人无完人嘛。大部分错误都是可以原谅的,尽管它们令人气恼或痛苦。然而故意的欺骗会打断信任的纽带,一旦打断,将无法复原。
鼓足勇气
承认错误需要勇气,承认失败并且惨痛的失败向来不易。如果你必须走这条路,那么首先要做的事是承认你失败,并且为此道歉,没有任何借口。努力做到直接和人对话,如果失败,再通过电话。发电子邮件很多情况不怎么公正。解释问题的原因,然后提出解决方案将有助于带你从错误里走出来。
结论
作为程序员和系统构建者,我们在信任的领地。信任和威望是往往需要长时间来建立的东西。然而毁灭二者非常快。我希望你不要让自己处于这样可怕的境地。如果你发现自己处于如此窘境,我希望你的威望和可信赖能够带给你勇气来挽救它。