觀點 工程

不要一次性遷移

九個月換掉四套系統,中間沒有停過一天出貨。做到這件事的不是計畫多周密,是我們放棄了「切換」這個動作本身。

「切換日」是一個假設

多數遷移計畫的核心是一個日期。那天晚上舊的停、新的開,中間有一段所有人都很緊張的時間。這個做法的問題不是風險高,是它把全部的風險壓進同一個晚上 —— 而你對那個晚上唯一的準備,是一份沒有人實際跑過的回滾計畫。

改成兩邊都必須是對的

海豐那個案子從第一週起,前提就是新舊系統同時正確。每一票貨同時寫進兩邊,每天凌晨自動比對一次,差異列成一張清單寄出來。沒有切換日,只有一個每天都會被回答的問題:今天有幾筆對不上。

真正的產出是那張差異清單

前六週,清單每天都不是空的。而每一筆差異都是規格書裡漏掉的一條規則 —— 某個客戶的特殊報關類別、只在月底出現的併單、一個從來沒有人寫下來但所有人都知道的例外。這些東西不會出現在訪談裡,只會出現在資料裡。

收斂本身就是進度

第七週清單開始變短,第十週剩個位數,第十四週連續五天是空的。那一天我們才第一次談「什麼時候關掉舊系統」。上線的時機不是排出來的,是被資料證明出來的 —— 而這個差別,在專案會議上非常好用。

代價是三成的工程時間

要說清楚:並行不是免費的。多一條寫入路徑要維護、多一份比對報表要看、每一次改動都要在兩邊都成立。整個專案的工程時間大約多了三成。這不是一個優雅的做法,它只是把風險換成了一個你付得起的價格。

什麼時候不該這樣做

如果舊系統的資料沒有人在用、如果停機兩小時不會有人受影響、如果這是一個內部工具 —— 那就一次切掉,把那三成省下來。並行是拿工程時間換停機風險,只有在停機真的很貴的時候才划算。這個判斷應該在提案階段就做完,不是在出事之後。