Ragic 部落格
企業電子化的專家 Ragic 教你如何利用各種軟體、
雲端服務讓公司快速升級!
加入 Ragic 企業電子化的行列!
雲端工作術
各類應用示範
案例故事
逃離惡夢
關於 Ragic
Facebook Twitter YouTube
雲端資料庫
部落格
關於Ragic
雲端工作術
各類應用示範
案例故事
逃離惡夢
關於 Ragic

棍! 廠商寫的系統訊息亂七八糟 - 論規範外包商Error Handling的重要(上)

作者:Ben Chu

一、魔鬼降臨

在總裁一句 "人事凍結" 的命令下, 身為一間大企業的MIS工程師, 展開了與外包商長期的角力。"魔鬼就在執行的細節裡" 一句話點破了外包管理省工省事的神話。為了避免包商拿了錢一拍兩散的常態, 或千拜託萬拜託卻另外要你簽個 25% MA。因此驗收合約的精細度就變得很重要, 今天要和大家談的就是規範Error Handling和Return Code這檔事。

參與專案外包工作已經十個年頭, 從三五人的小公司到號稱遵循CMMI/ISO制度的大公司, 幾乎沒看到有專案, 在需求文件中對包商交付系統的 Error Handling 做規範。因此當專案結束, 維運人員接手一段日子後, 才發現原來系統傳回 "帳號密碼錯誤", 有時候事實上是 "資料庫連線失敗" 或 "伺服器磁碟已滿"。搞得維運人員灰頭土臉, 三不五時被老闆叫去罵系統寫的爛。其實探究原因, 這是由於開發系統時, 工程師常以工程的角度去做Error Handling, 而非以維運角度去處理。

"那要如何在合約中簡單的規範下包商的處理方式呢?" 下面將建議幾個法則。 (這裡我們不談 "throw early, catch late" 之類的程式編寫原則, 那是下包商工程師撰寫上的藝術, 我們在合約中不需多加干涉。)

二、法則1: "用責任區來編Error Code"

對工程師來說, 處理一個錯誤, 最重要的就是 "技術上這是哪類的錯誤?", 分類方法可能是 DB, AP, Network, ... 但對維運人員來說, 看到一個錯誤, 最重要的就是 "誰該處理?", 分類方法是 "使用者密碼錯誤-使用者要處理", "排程匯入供應商的產品資料格式有誤-供應商的錯", "網路中斷-喂!網管醒醒", ...

為了強迫包商工程師改變思考習慣, 避免他不分青紅皂白的全部 "try...catch..." 起來傳回同一個錯誤。進而變成有效的下包商驗收準則, 你必須先找出與這系統相關的 "責任區", 如果Error Code有4碼, 第一碼可以是責任區的代號, 像:

1xxx-代表使用者操作問題 - 像帳號密碼有誤。

2xxx-代表供應商介接系統問題 - 可能是匯入資料格式有誤, 或根本連不到供應商的主機。

3xxx-代表系統基礎環境有問題 - MIS部門要check是否磁碟已滿, 或網路設備異常。

其它三碼則由下包商工程師自行編排分類。 相信我, 這時間花的值得, 這樣工程師在寫程式時就會試著去判斷問題的原因, 發生錯誤時, 你手下可憐的維運團隊也不需要再推敲追查半天, 你也不需要無助的找大老闆坐鎮, 來開那種永遠沒結果的跨部門推責大會。另外, 當程式歸責錯誤時, 也可以明確指出是程式 "defect", 要求下包商修正。下包商再也沒有理由說 "這個是新需求, 要再算錢!"。

部落格背後使用 Ragic! : 最強大的 No Code 企業電子化工具
把資料放在Excel上不只是拖累團隊的行政效率,他也很容易出錯並且無法進行任何內控。
當您的團隊成長時,使用Excel管理資料就會越來越痛苦。
建立你們的第一個雲端資料庫!

馬上註冊
免費試用 Ragic!

用 Google 帳號註冊

立即科技 Ragic, Inc.
02-7728-8692
台北市中正區南昌路二段81號9樓