相信我,我是程序员

jopen 12年前

        那封你祈求永远不要出现在收件箱的电子邮件突然冒了出来。你重新读完它,仅为了确认里面的详细内容。尽管你想要忽略它,但是这一封你不能忽略的 邮件。你的回复终于写好了,却犹豫要不要点发送。”让我来重新修改一下” 你自己想。让你左右为难的是,你所说的是不是真实的情况。

        软件 bug 总是不幸地成为真实的世界体系的一部分,就像这句纠结的原话所说的,

        “真实的系统不完美,完美的系统不真实

        当然,bug 的严重性肯定是有等级区分的,有轻微的、有伤脑筋的、最后还有灾难性的。从最终用户的角度看,轻微的 bug 通常会被忽略;伤脑筋的 bug 常常因为能用某些规避措施而无关痛痒地呻吟一下;严重的 bug 则完全不同,它们是舞台上的搅局者。

相信我,我是程序员

        严重的 bug 不经常发生(至少不应该发生),因为当发生时每个人都会注意到,影响可以大到金融损失,或者甚至死亡。2010 年 5 月 6 日,股票系统里的一个 bug 导致了”闪电崩盘”,让美国金融损失了一万亿美元。1985 年大约有 6 人因为接受了 Therac-25 设备的超剂量(100 倍正常剂量)辐射而死亡,这又是一个直接由软件 bug 导致的后果。

        鉴于肩负此事的重要性,可想而知,这可是一副重担啊。这样沉重的担子,大部分人会希望尽量避免它也并不奇怪。简单的出路是要么把担子传给其他人,要么采取可能”经济”的措施面对真相。

        不担责任是一个 Hack,一个短期处理。可能在短时间里凑效,但是不久,带着所有的 Hack,问题会毫无疑问的崩溃。当问题崩溃时,情况会远不如最初避免短期处理的样子。

        专业人员,从医生到程序员,那些依赖他们的人信赖他们。大部分人都理解事情有时候会出错,人无完人嘛。大部分错误都是可以原谅的,尽管它们令人气恼或痛苦。然而故意的欺骗会打断信任的纽带,一旦打断,将无法复原。

        鼓足勇气

        承认错误需要勇气,承认失败并且惨痛的失败向来不易。如果你必须走这条路,那么首先要做的事是承认你失败,并且为此道歉,没有任何借口。努力做 到直接和人对话,如果失败,再通过电话。发电子邮件很多情况不怎么公正。解释问题的原因,然后提出解决方案将有助于带你从错误里走出来。

        结论

        作为程序员和系统构建者,我们在信任的领地。信任和威望是往往需要长时间来建立的东西。然而毁灭二者非常快。我希望你不要让自己处于这样可怕的境地。如果你发现自己处于如此窘境,我希望你的威望和可信赖能够带给你勇气来挽救它。