危險了,世界賴以執行的軟體

發表於2012-08-19

摘要:Bats因交易系統出問題而取消IPO,Facebook首次公開募股,納斯達克無法確認訂單長達數小時,瑞銀因此而損失超過3.5億美元,而Knight Capital因系統出錯也損失了4.4億美元。那些本應支撐證劵市場的關鍵軟體,卻讓很大一部分的世界財富被鎖住。危險了,賴以軟體執行的世界。

什麼是軟體?十年前,或許大多數人認為軟體就是微軟的Word和Excel,而今天,大多人認為它可能就是Gmail、Twitter或憤怒的小鳥。但對於繁忙而又重要的全球經濟而言,軟體就不是使用者智慧手機上那簡簡單單的應用,它像沃爾瑪的供應鏈、曼聯的訂票系統或豐田汽車的生產線一樣,規模巨大但卻破舊。

要知道,那些關鍵時候本應該支撐證劵市場的關鍵軟體,卻讓很大一部分的世界財富被鎖住。這些新聞很多,比如今年3月,Bats交易平臺主導自己的IPO,但因自己的交易系統出問題而不得不取消IPO。今年5月Facebook首次公開募股,納斯達克無法確認訂單長達數小時,瑞士銀行巨頭瑞銀因此而損失超過3.5億美元,後來只增加了4000萬股股票後,最終虧本出售。除此之外,還有上週的Knight Capital,它負責美國11%的股票交易,因系統出錯而購買了太多的股票,從而損失了4.4億美元。

發生上述這些事情的根本原因,是大多數的軟體不是很好。是的,編寫一款好的軟體很難,有數以千計的機會犯錯,更困難的是,程式設計師很難預見到軟體程式面臨的所有情況。尤其是上面那個瑞銀和Knight Capital的例子,這是軟體之間的資料互動,而你無法控制。因此,如果你不知道所要支援的所有使用案例,那麼程式設計師將很難測試好軟體。

危險了,世界賴以執行的軟體

要想解決這些問題,這很不容易同時代價也很高。首先,你得需要很積極的開發人員,你需要了解面向質量的所有開發流程,而不是武斷的直接開發。另外,你還需要一種團隊文化氛圍,人們可以經常誠實的評審彼此的工作。此外,你還需要有綜合、全面的測試流程,能夠進行大規模的自動化測試,以確保成千上萬的程式碼組成的複雜程式,能夠在所有時間、所有硬體上都能夠正常工作。除此之外,你還需要個人性化的管理人員,他能明白推出一款好的產品就算很晚也比準時推出一款壞產品要好的多,這也是一些小的軟體公司比一些大公司做的好的原因。

另外,為什麼有這麼多糟糕的軟體呢?實際上,這是我們大多數情況下忍受的結果。正是因為我們不斷的去忍受,才讓這些糟糕的軟體能一直這麼生存下去。

在相互聯絡日益複雜的金融系統裡,我們無法控制以及不清楚具體情況,我們可以去忍受。但當軟體程式出錯,他們不去尋找線性方式去可預見,對於這個我們不可忍受。舉一個簡單的例子,如果一個程式在每個數字後面新增一個0,那麼它無疑也可以新增三個零。今天的股票市場已經變成了戰場,而複雜的交易演算法、程式設計的一個小錯誤,可能瞬間讓人損失數百萬或數十億美元。

對於金融體系而言,計算機程式越來越重要,但當前的問題是,那些經濟貿易公司沒有足夠的激勵,以確保他們的軟體可以正常工作。當然,每個人都希望不要投入解決方案就可以有程式運營,但問題是,你還樂意犧牲多少?

軟體故障雖然是低概率性的,但一旦發生可能就是災難性的。壓力測試軟體,可以預防災難發生,但這很昂貴,所以組織機構在風險和注重成本中更可能會選擇接受風險。那些一直在執行的金融機構,無法驅動交易員或客戶經理懂得這些技術,同時這也是監管解決不了的問題,難道你能規定公司必須要寫出一款穩定可靠的軟體?

危險了,賴以軟體執行的世界。(編譯:張勇 責任編輯:高鬆)

原文來自:Theatlantic

相關文章