註冊 | 登入 | RSS Feeds
ZDNet | Taiwan.CNET.com |

廣告:
2009/10/08 05:00:00
如何在系統異常前發現錯誤?
葉木金
PlurkFacebook
   

另外網路上也有一篇jeremy寫的文章,提到戴爾大中華區中小企業處總經理許肇元對該公司短短10多天連續出了兩次錯誤的解釋。我們也可以從這篇專訪文章了解戴爾系統異常的問題所在。

「因為我們成長的速度太快,而系統並沒有配合我們的成長。像是我們的訂購流程,每個零組件都可以客製化,訂一台筆電的流程換算下來就幾十個關卡,每個關卡都跟價錢有關,牽一髮而動全身。這次事件中,我們真的學到很多,也重新檢視了我們的系統。」

從上述回答即可明瞭造成戴爾線上購物網站頻出包的關鍵並非單純的系統(單一)功能失常,而是戴爾忽略了商業模式改變會對系統造成一定影響,因而沒有準備好該如何事先預防與事後因應。

簡言之,造成戴爾的線上購物網站發生錯誤的癥結點並非部分功能,而是整合系統整體後出現問題、並且造成系統異常。

那麼台北的木柵內湖線頻頻發生系統異常是不是也是類似的原因?從相關新聞報導來看,原因與內湖線無法順利整合木柵線系統有關。

筆者認為這大概從決策當局決定採用規格無法統一的中運量系統,以及冒險採用無線通訊新技術時,即已註定了這樣的結果。再加上測試時間不足,自然會使品質問題更加雪上加霜而惡化。

造成系統失敗的條件

如果戴爾電腦和台北捷運內湖線的系統異常問題真如種種跡象顯示的與系統整合出問題有關,那我們不禁要問:為什麼它們的整合都會出現問題呢?

從筆者系統開發的經驗來看,極可能是因為系統整合牽涉的問題太多或者是太複雜,使得開發者難以掌握;再加上人們在尚未意識到系統複雜度前,常會認為自己有能力解決所有的問題,但偏偏事實不是如此。亦即負責設計系統架構者認為其想到了每個細節但偏偏事與願違。

一言以敝之,系統失敗的根源其實是來自於人性的弱點,雖然這個真相往往被硬體、作業系統或平台的功能失常所掩蔽。

如同著名的軟體工程顧問溫伯格在《第一級評量》提到,造成軟體系統失敗的條件有八個 F,它是分別是弱點(Frailty)、愚蠢(Folly)、執迷不悟(Fatuousness)、好玩(Fun)、欺騙(Fraud)、狂熱(Fanaticism)、硬體功能失常(Failure)與運氣(Fate)。筆者發現這些造成失敗的條件,正是表現人性弱點的不同面向。

弱點

弱點是做想做的事卻做不到,它是軟體失敗的終極源頭。因為人不是完美的,做不到設計所要求的,不論那是一個程式設計,或是一個過程設計。

溫伯格認為管理階層的責任是設計出一個程序以規範程式如何修改,承認自然界的事實,與確保程序本身被執行。而且他認為人們傾向在發生錯誤後懲罰嫌疑犯其實很不好,因為他會讓人隱藏錯誤、浪費時間在找嫌疑犯、以及分散注意力忽略管理階層的責任;建立並執行能及早找出失敗,並預防悲慘後果的程序。

愚蠢

愚蠢是做到想要做的事,但它卻是錯的事。愚蠢的基礎是無知,雖然它在當下沒有發生錯誤,卻會在以後造成錯誤。不過透過學習可以改善無知,進而將愚蠢矯正過來。

溫伯格認為建立完整訓練師徒制、技術審查計劃、提供落實計劃的支援,是管理階層可以用來矯正愚蠢的職責。

執迷不悟

執迷不悟是指不肯學習,一直做出蠢事,一次又一次的做。此外,想要管理好一個愚蠢的人,卻不提供他根除愚蠢所需的訓練和經驗,這也算是一種執迷不悟的行為。

溫伯格認為在軟體工程機構中,除了把執迷不悟的人送到其它行業去,否則沒有什麼防護措施可以抵擋執迷不悟的人。

(未完,下次將與您分享系統異常與其餘五個F的關聯,以及人性與系統異常的關連性)

作者目前在某知名公司擔任架構設計工程師,擁有台科大MBA學位,曾參與國內大型專案,並具有專案管理專業證照 (PMP)。在此之前從事資訊科技工作20年,歷任不同IT領域,具有豐富軟體開發經驗。
| 第1頁 | 第2頁 |
 
 

thumbs Upthumbs Down
+0
推薦
0/0 票
 

 
加入我的圖書館 訂閱關鍵字 單頁閱讀
加入網路書籤> 加入funP | 加入Google書籤 | 加入Yahoo!奇摩分享書籤 | 加入twitter | 加入facebook | 加入plurk |
友善列印 | 轉寄朋友

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

讚?讚0 個人喜歡這個留言
 
2.wohaha 於 2009/10/10 14:11 回應
給個一針見血的答案,不然有點騙稿費的味道,大道理大家都懂,但是就是無一體通用
讚?讚0 個人喜歡這個留言
 
1.路人啦 於 2009/10/09 10:34 回應
不知道在寫些什麼?
既不了解問題,就不要用人性弱點去臆測∼
要說臆測問題核心,倒不如擺著不管,多言無益。
讚?讚0 個人喜歡這個留言
 


留下你的意見
會員 * 帳號:
* 密碼:
  1. 欄位可選填,若全不填,則顯示為「匿名」。
  2. 不支援html語法
非會員

*姓名:
*E-Mail:

Blog:
  重新載入驗證碼
* 驗證碼: 記住我