「擺脫 COBOL 要花多少錢?」是每個董事會最先提出的問題,而誠實的答案是:它取決於的因素遠不只代碼庫的規模。本指南拆解在英國真正驅動 COBOL 遷移成本的要素、切合實際的預算與時程區間,以及那些把一個規劃良好的專案變成超支的風險。
要點速覽(TL;DR)
- 英國中等規模的 COBOL 遷移通常花費 200,000 至 800,000 英鎊,耗時 1 至 2 年;完整的大型主機除役則高達數百萬英鎊並持續多年
- 成本受代碼庫複雜度、未記錄的商業邏輯以及資料存取層重新設計的影響,遠大於單純的代碼行數
- 目標語言和遷移方式的選擇會實質性地改變預算
- 專案超支最常見的原因是低估範圍,尤其是未記錄的商業規則和資料存取層
真正驅動 COBOL 遷移成本的因素
代碼行數是標題數字,但單憑它是一個薄弱的預測指標。真正的成本驅動因素是:
複雜度,而不只是規模。 由整潔批次程式組成的 100,000 行系統,比密布著 EXEC CICS、動態 CALL 和錯綜複雜 REDEFINES 的 50,000 行系統更便宜遷移。同等規模下,交易處理系統的成本高於批次系統。
未記錄的商業邏輯。 COBOL 系統常常承載著 30 到 40 年嵌入代碼、卻沒有外部文件的商業規則。重新發現並驗證這些規則,往往是單項中最大且最難預測的費用項。
資料存取層。 針對 DB2 的 EXEC SQL 和 VSAM 檔案處理很少能自動轉換。它們必須在目標平台的資料存取技術上重新設計,這通常是繼商業邏輯發現之後最大的工作項。
資料格式轉換。 壓縮十進位(COMP-3)、EBCDIC 編碼和定寬版面都需要明確映射,並用真實資料進行測試。
目標語言與方式。 它們以可預測的方式改變預算(下文詳述)。
測試與切換。 建構一套證明輸出一致性的迴歸測試套件,並執行帶回滾的安全切換,是一項真實且絕不瑣碎的工作量,缺乏經驗的估算往往忽略它。
參考性成本與時程區間(英國)
這些區間涵蓋分析、遷移、測試和上線支援。它們不包括持續的營運成本、訓練,以及專案中途常常浮現的下游整合工作。
| 系統規模 | 方式 | 估計成本 | 典型時程 |
|---|---|---|---|
| 小型(< 50,000 行) | 平行重寫 | 80,000 至 200,000 英鎊 | 3 至 9 個月 |
| 中型(50,000 至 500,000 行) | Strangler fig | 200,000 至 800,000 英鎊 | 12 至 24 個月 |
| 大型(500,000+ 行) | 自動化 + 增量重構 | 500,000 至 2,000,000+ 英鎊 | 2 至 4 年 |
| 遺留大型主機除役 | 完整專案 | 1,000,000 至 10,000,000+ 英鎊 | 3 至 5 年+ |
請將它們視為規劃區間,而非報價。一份合理的估算需要代碼評估;每個區間內部的差異由上述複雜度因素決定。
目標語言如何影響成本
目標語言同時改變工作量特徵和長期持有成本。大致而言:
- Python 天然契合 COBOL 的程序式風格,並擁有最大的開發者群體,往往能降低轉換成本和長期維護成本。
- C# 對已採用 .NET 和 Azure 技術堆疊的組織高效,其原生
decimal型別減少了正確處理金融精度的工作量。 - Java 適合基於 JVM 的企業;
BigDecimal能正確處理精度,但會增加一些冗長度。 - Go 建構和部署高效,但缺乏原生十進位型別,會增加金融欄位的審查工作量。
- Rust 往往趨向任何規模區間的上限,因為其所有權模型會增加前期設計工作量。
COBOL 遷移概覽 將全部六種目標語言並排比較,協助你做出選擇。
遷移方式如何影響成本
- 自動化轉換 減少機械翻譯的工作量,但永遠無法產出一個成品系統;請為工具標記出的手工工作(嵌入式 SQL、CICS、動態呼叫、十進位精度)預留預算。
- 平行重寫 在過渡期間會使營運成本大致翻倍,因為兩套系統同時執行,但它將連續性風險降到最低。它適合較小的關鍵任務系統。
- 增量式(strangler fig ) 將成本分攤到一段時間內,並降低一次性切換的風險,代價是更長的混合期。它是英國大型企業系統最常見的方式。
大多數真實專案會把自動化轉換與增量式推出相結合。
導致超支的風險
遷移會因可預測的原因而超支。五大風險:
- 低估的商業邏輯發現。 規則在代碼裡,而不在文件裡。請為發現工作明確預留時間。
- 資料存取重新設計。 DB2 和 VSAM 存取無法自動移植。請把它當作獨立的工作流。
- 迴歸測試不足。 沒有在真實資料上進行輸出一致性測試,你無法證明遷移是正確的。請在遷移開始之前建構測試套件。
- 十進位精度錯誤。 映射到浮點型別的金融欄位會悄然破壞金額。請映射到目標語言中正確的十進位型別。
- 切換失敗。 切到生產是風險最高的時刻。一份帶回滾和對帳的詳細切換計畫是必需的。
如何獲得準確的估算
可靠的數字來自代碼評估,而非代碼行數統計。一份好的評估會盤點程式和 copybook,識別 EXEC SQL / EXEC CICS / 動態呼叫的熱點,衡量商業邏輯密度,並繪製資料存取面。Mecanik COBOL 遷移服務
提供面向英國企業的評估和全流程遷移;對於 IBM z/OS 上的大型主機資產,遺留大型主機遷移服務
在代碼之外還負責基礎設施的除役。
關鍵要點
- 英國中等規模的 COBOL 遷移通常在 1 至 2 年內花費 200,000 至 800,000 英鎊;大型主機除役則高達數百萬英鎊。
- 複雜度、未記錄的商業邏輯和資料存取重新設計對成本的影響遠大於代碼行數。
- 目標語言和遷移方式都會以可預測的方式改變預算。
- 超支源於低估發現、測試和切換;一份合理的代碼評估是報價唯一可靠的依據。
常見問題(FAQ)
在英國,COBOL 遷移的成本是多少? 小型系統通常花費 80,000 至 200,000 英鎊,中型系統 200,000 至 800,000 英鎊,大型系統 500,000 英鎊以上。完整的大型主機除役專案從 1,000,000 英鎊直至數千萬英鎊。決定你落在區間何處的是複雜度,而非代碼行數。
COBOL 遷移需要多長時間? 小型且文件完善的系統需要 3 至 9 個月。中型企業系統持續 12 至 24 個月。大型主機專案完成完整除役需要 3 至 5 年或更久。
為什麼 COBOL 遷移成本差異如此之大? 因為複雜度差異極大。未記錄的商業邏輯、嵌入式 SQL 和 CICS、資料格式轉換、目標語言以及遷移方式,都會改變成本。兩個相同代碼行數的系統可能相差一個數量級。
自動化轉換能降低成本嗎? 它能減少機械翻譯的工作量,但沒有工具能產出成品系統。你仍需為工具標記出的資料存取層、十進位精度決策、測試和切換預留預算。
COBOL 遷移超支最大的原因是什麼? 低估範圍,尤其是未記錄的商業邏輯和資料存取重新設計。在遷移開始之前建構一套用於輸出一致性的迴歸測試套件,是控制該風險最有效的方法。
評論