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