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