相信我,我是程序員
那封你祈求永遠(yuǎn)不要出現(xiàn)在收件箱的電子郵件突然冒了出來(lái)。你重新讀完它,僅為了確認(rèn)里面的詳細(xì)內(nèi)容。盡管你想要忽略它,但是這一封你不能忽略的郵件。你的回復(fù)終于寫(xiě)好了,卻猶豫要不要點(diǎn)發(fā)送。”讓我來(lái)重新修改一下” 你自己想。讓你左右為難的是,你所說(shuō)的是不是真實(shí)的情況。
軟件bug總是不幸地成為真實(shí)的世界體系的一部分,就像這句糾結(jié)的原話(huà)所說(shuō)的,
“真實(shí)的系統(tǒng)不完美,完美的系統(tǒng)不真實(shí)“
當(dāng)然,bug的嚴(yán)重性肯定是有等級(jí)區(qū)分的,有輕微的、有傷腦筋的、最后還有災(zāi)難性的。從最終用戶(hù)的角度看,輕微的bug通常會(huì)被忽略;傷腦筋的bug常常因?yàn)槟苡媚承┮?guī)避措施而無(wú)關(guān)痛癢地呻吟一下;嚴(yán)重的bug則完全不同,它們是舞臺(tái)上的攪局者。
嚴(yán)重的bug不經(jīng)常發(fā)生(至少不應(yīng)該發(fā)生),因?yàn)楫?dāng)發(fā)生時(shí)每個(gè)人都會(huì)注意到,影響可以大到金融損失,或者甚至死亡。2010年5月6日,股票系統(tǒng)里的一個(gè)bug導(dǎo)致了”閃電崩盤(pán)”,讓美國(guó)金融損失了一萬(wàn)億美元。1985年大約有6人因?yàn)榻邮芰薚herac-25設(shè)備的超劑量(100倍正常劑量)輻射而死亡,這又是一個(gè)直接由軟件bug導(dǎo)致的后果。(《軟件Bug引發(fā)的十次嚴(yán)重后果》一文就也說(shuō)了這個(gè)案例。)
鑒于肩負(fù)此事的重要性,可想而知,這可是一副重?fù)?dān)啊。這樣沉重的擔(dān)子,大部分人會(huì)希望盡量避免它也并不奇怪。簡(jiǎn)單的出路是要么把擔(dān)子傳給其他人,要么采取可能”經(jīng)濟(jì)”的措施面對(duì)真相。
不擔(dān)責(zé)任是一個(gè)Hack,一個(gè)短期處理??赡茉诙虝r(shí)間里湊效,但是不久,帶著所有的Hack,問(wèn)題會(huì)毫無(wú)疑問(wèn)的崩潰。當(dāng)問(wèn)題崩潰時(shí),情況會(huì)遠(yuǎn)不如最初避免短期處理的樣子。
專(zhuān)業(yè)人員,從醫(yī)生到程序員,那些依賴(lài)他們的人信賴(lài)他們。大部分人都理解事情有時(shí)候會(huì)出錯(cuò),人無(wú)完人嘛。大部分錯(cuò)誤都是可以原諒的,盡管它們令人氣惱或痛苦。然而故意的欺騙會(huì)打斷信任的紐帶,一旦打斷,將無(wú)法復(fù)原。
鼓足勇氣
承認(rèn)錯(cuò)誤需要勇氣,承認(rèn)失敗并且慘痛的失敗向來(lái)不易。如果你必須走這條路,那么首先要做的事是承認(rèn)你失敗,并且為此道歉,沒(méi)有任何借口。努力做到直接和人對(duì)話(huà),如果失敗,再通過(guò)電話(huà)。發(fā)電子郵件很多情況不怎么公正。解釋問(wèn)題的原因,然后提出解決方案將有助于帶你從錯(cuò)誤里走出來(lái)。
結(jié)論
作為程序員和系統(tǒng)構(gòu)建者,我們?cè)谛湃蔚念I(lǐng)地。信任和威望是往往需要長(zhǎng)時(shí)間來(lái)建立的東西。然而毀滅二者非???。我希望你不要讓自己處于這樣可怕的境地。如果你發(fā)現(xiàn)自己處于如此窘境,我希望你的威望和可信賴(lài)能夠帶給你勇氣來(lái)挽救它。