前一陣子有兩個與資訊系統失常有關且備受矚目的新聞事件,亦即戴爾電腦網路購物系統與台北捷運內湖線的系統異常。相信很多人都認為這兩個系統會發生系統異常是相當離譜的事。上述兩事件除造成系統使用者的困擾,同時也會讓使用者對系統可靠度與穩定度失去信心,進而增加了系統的失敗成本。
平心而論,想在事前預料系統可能發生的問題,並加以預防或因應並不是件容易事。因為開發系統(尤其是軟體開發)常會碰到事先難以預料的問題。但若能在錯誤造成危害之前,及早發現問題並採取適當的行動因應之,相信應該能降低不少系統的失敗成本。
因此筆者想從戴爾與台北捷運內湖線這兩起重大系統異常事件,探討如何在系統失敗前發現錯誤,並避免為系統失敗付出巨大損失。
設計不夠好?
戴爾是世界知名的電腦直銷公司,擁有13年的網路直銷經驗。因此該公司會發生系統連續發生異常--產品標價錯誤--的問題,實在是令人感到不可思議。
在戴爾發生第二次標價錯誤事件之後,筆者聽到一位工程師出身的朋友表示,依據新聞的報導,以及他自己的網站開發經驗,幾可斷定戴爾筆記型電腦會頻頻發生價格錯標的烏龍,與系統設計不良有關。亦即系統未將促銷資料正確連結到產品資料。
從戴爾回應外界連續標價錯誤事件的說法來看:第一次錯誤是因為人為作業疏失,第二次錯誤則與系統異常有關。由此來看,朋友的說法似乎有些道理。
但若是從系統開發流程的角度來看,筆者則有一個疑問。
如果是設計有問題,那應該在系統正式運行前即可被測試出來,為什麼到錯誤釀成災禍後才會發現問題?朋友表示要做到完整測試系統是很困難的,還不如把系統設計做好,這樣系統自然不會出錯。
...朋友說的沒錯,好的設計的確可以減少系統發生錯誤的機會,但問題是朋友的想法在實務上是有操作困難的。
因為「夠好」的設計是很難被清楚定義的,尤其是在專案時程急迫與資源有限的情況下,另外世上也沒有可以一體適用各種狀況的資訊系統。
事實上,在系統運作環境與顧客需求常常改變的情況下,系統設計最後多半會變成一種權衡與取捨之道;也就是說,沒有可解決所有問題的最佳設計,只有為解決某重要問題的最適當設計。
如果我們不能在一開始就清楚定義出具體的系統問題,那所謂的較好的設計也只不過是對未來可能發生的變化作準備的假設性設計,無奈的是未來的變化常常是超乎設計系統架構者的預料。
當我們對系統的假設不再成立時,就會產生系統出現異常的風險。以戴爾維力,,導致該公司的線上購物網站頻頻發生系統異常的關鍵可能不在設計的好壞,而是沒有掌握好問題的複雜度。
造成錯誤的原因
依照筆者的系統開發經驗,即使是那些長期運作正常的系統也會因為運作環境改變而出現功能失常等狀況。筆者認為戴爾應該也是碰到類似的狀況。畢竟若是系統在一開始的設計階段即有問題,那很難解釋為什麼過去可以正常運作的系統會在今天出現問題。
如同商業周刊在「戴爾烏龍 在於沒換腦袋」一文提到的:
繼續閱讀: >>戴爾系統無法偵錯的關鍵——戴爾仍以經營企業顧客的思維在做消費者生意,否則怎會沒把消費者異常下單行為納入管理流程?
戴爾成立以來都是以企業市場為重,占營收比重超過八成。直到二○○七年才進入消費市場,這是很大的突破,因為經營企業市場,客戶數量少,強調服務與產品穩定度,但經營消費市場,客戶數倍增,就必須靈活彈性。
但此次事件讓我們看到,即使經歷兩年,戴爾網路系統的「腦袋」還沒轉過來,管理階層也是一般。(未完,請按下一頁繼續)



5.ArthurYH 於 2010/01/07 09:05 回應
溫伯格所提的 8 個F, 在小弟現在服務的單位中常見的就出現 4 個. 但是不會有人說這是失敗的, 因為1.這間公司不是做軟體的 2.都是單位大老闆說什麼做什麼, 所以不會有人去說這個系統或專案是失敗的. 過個一年半載的, 眼尖的人會發現換個名字再玩一次....但我認為, Dell 這個包, 應該是資料的變更程序有問題. 就像是沒有驗收就上線.
4.讀者 於 2009/10/19 09:33 回應
作者說得非常中肯,軟體專案的執行過程中確會有很多問題,作者依照他多年的經驗提出了解說與整理,我相信身在其中的人都會心有戚戚焉,這些原則也許大家都知道,但是能夠做到的人有幾個呢?在批評別人之前先想想,你是否有足夠的經驗與知識整理出這樣的文章嗎?如果沒有,建議還是感謝作者再次提醒我們這些原則的重要性吧。3.Project Man 於 2009/10/15 10:18 回應
這是一種觀念和思考的角度....看得懂的∼就繼續看下去∼看不懂得∼那也很抱歉∼就我之前的專案經驗∼這樣的事情的確是存在,而且嚴重的問題∼其實我也不懂樓上的兩位的工作經驗和經歷∼也許你們有更棒的經驗和觀察角度可以分享,如果沒有.....那我只能一直笑而已啊∼2.wohaha 於 2009/10/10 14:11 回應
給個一針見血的答案,不然有點騙稿費的味道,大道理大家都懂,但是就是無一體通用1.路人啦 於 2009/10/09 10:34 回應
不知道在寫些什麼?既不了解問題,就不要用人性弱點去臆測∼
要說臆測問題核心,倒不如擺著不管,多言無益。