外包系統爛尾怎麼辦?接手維修、重構或重寫的完整決策指南
前一家外包商消失、系統一堆 bug 又跑不動?本文教你先做系統健檢評估殘值,用決策表判斷該修、該重構還是砍掉重練,以及找接手廠商前要準備的資料與合約自保重點。
系統爛尾的常見徵兆
「爛尾」很少是一夕之間發生的,通常有跡可循。以下幾個徵兆,中兩條以上就該開始準備後路了:
- 改 A 壞 B:每次請廠商修一個小地方,就有另外兩個功能跟著出問題,代表程式碼已經糾纏到牽一髮動全身。
- 速度越來越慢:資料量成長後頁面越開越久,反映當初的資料庫與架構設計沒有考慮成長。
- 原廠回應越來越慢:從秒回變成已讀,報價越來越貴、時程越來越長——廠商在用價格勸退你。
- 沒有任何文件:問「這個功能的邏輯是什麼」,得到的回答是「要問當初寫的工程師,但他離職了」。
- 你手上沒有原始碼:程式、資料庫、雲端帳號全在廠商名下,你其實只是在「租」自己的系統。
最糟的劇本是拖到原廠正式失聯、系統掛掉才被迫處理——那時你連系統還能不能救都不知道。
第一步:先做系統健檢,別急著重寫
被爛系統折磨過的老闆,十個有八個第一句話是「乾脆全部重做」。先冷靜——重寫是成本最高、風險也最高的選項,而且新系統上線前,舊系統還是得繼續撐著營運。正確的第一步是健檢,把現況盤點清楚:
- 原始碼:拿得到嗎?版本是最新的嗎?有沒有版本控制紀錄?
- 資料庫:結構文件在哪?資料能不能完整匯出?有沒有定期備份?
- 部署環境:系統跑在誰的主機上?帳號密碼在誰手上?網域是誰註冊的?
- 帳號權限:金流、簡訊、地圖等第三方服務的帳號歸屬與費用由誰支付?
- 文件:規格書、API 文件、操作手冊,有多少算多少。
這份盤點清單同時是接手評估的依據:拿得回來的東西越多,接手成本越低;什麼都拿不回來,才會真的走向重寫。
修、重構、重寫怎麼選
健檢完成後,依系統狀況對照三條路:
| 路線 | 適用情境 | 成本與時程 | 風險 |
|---|---|---|---|
| 修(Bug 修復+接手維護) | 架構堪用,主要是累積的 bug 與小問題;業務邏輯仍符合需求 | 最低;以事件或月維護計價,屬小型專案級距 | 低;系統持續營運,逐步改善 |
| 重構(保留邏輯、改造體質) | 功能符合需求但程式碼品質差、效能瓶頸明顯;改 A 壞 B 頻繁 | 中;分模組進行,1–3 個月,多屬 10–50 萬中型級距 | 中;分段驗收可控,不中斷營運 |
| 重寫(砍掉重練) | 架構已無法支撐業務、技術過時到找不到人維護、或原始碼拿不回來 | 最高;等同新專案,參照系統開發費用行情 | 高;需雙軌並行、資料遷移,務必分期 |
實務上最常見的答案其實是混合路線:先修——讓系統止血穩定;再重構——分模組逐步換血;真的不行的部分才局部重寫。一次性全部重寫聽起來痛快,但營運中的系統很少有本錢這樣賭。
接手廠商會怎麼做:標準四階段
專業團隊接手陌生系統,流程大致是四個階段:
- 診斷:通讀程式碼與資料庫結構,用工具掃描品質與資安漏洞,標出技術債的分布與嚴重度,產出健檢報告與處理優先序。
- 止血:優先處理影響營運的急性問題——會當機的 bug、被撐爆的效能瓶頸、明顯的資安破口,讓系統先穩定下來。
- 重構:依健檢報告分模組改造,每一段都有明確的驗收標準,邊改邊補文件與測試,讓系統從「只有前廠商懂」變成「有文件可循」。
- 交付:完整移交原始碼、文件與帳號權限,並建立後續的維護機制。
易飛特的程式解決方案處理過超過 100K 行的接手程式碼,最常聽到客戶說的一句話是「原來不用打掉重練」。多數被判死刑的系統,其實都還有救。
要準備哪些東西給接手團隊
找接手廠商評估前,把下面的東西盡量備齊,報價會又快又準:
- 健檢清單的盤點結果:原始碼、資料庫、主機帳號、網域——有什麼、缺什麼,誠實列出來。
- 問題清單:目前最痛的 5–10 個問題,附發生頻率與影響範圍(例如「結帳頁每天當機 2–3 次,客服接到投訴」)。
- 系統的商業脈絡:這個系統支撐什麼業務流程、每天多少人用、哪些功能最關鍵。
- 與原廠的合約:確認原始碼與智財權歸屬,接手方需要知道法律邊界在哪。
如何避免下一次爛尾
接手只是解決這一次,合約與交付習慣才能避免下一次:
- 原始碼歸屬白紙黑字:合約載明智慧財產權歸屬業主,並約定以版本控制(如 Git)持續交付,而不是結案才給一包壓縮檔。
- 帳號自己持有:雲端主機、網域、資料庫、第三方服務一律用公司自己的帳號開通,廠商用受邀權限進來工作。
- 分期驗收:把專案切成可驗收的階段,每期付款對應可運作的成果,不要一次付清賭結案。
- 文件是交付項目:規格書、部署文件、操作手冊列入合約的交付清單,沒有文件不算結案。
系統又慢又常壞、原廠已讀不回?把你的健檢清單帶來易飛特的 30 分鐘免費諮詢,我們直接告訴你這套系統救不救得起來、該走哪條路、大概要花多少。
常見問題
沒有原始碼還能接手嗎?
能,但選項會變少。第一步是嘗試向原廠取回——依合約主張權利,或以結清費用交換交付。真的拿不回來時,資料庫通常還能從主機端匯出,此時會以「保留資料、重建系統」的方式處理:資料是企業的命,系統可以重建,資料遺失才是災難。這也是為什麼健檢的第一件事就是確認備份。
接手維修怎麼計價?
通常分兩段:初期的系統診斷(依系統規模,數萬元級即可完成,產出健檢報告與處理建議),以及後續的處理費用——單次修復按事件報價、持續維護按月計費、重構按模組報價。診斷報告會把「花多少錢、解決什麼問題」攤開來,你可以拿著報告分階段決策,不必一次押注。
直接重寫會不會比較快?
多數情況不會。重寫等於新專案的成本與時程,而且舊系統的業務邏輯往往沒有文件,全靠程式碼還原——重寫團隊還是得先讀懂舊程式。更現實的是營運不能停:新系統上線前舊系統得繼續跑,雙軌期的維護成本常被低估。除非架構已完全無法支撐業務或原始碼拿不回來,否則「先止血、再重構」幾乎都是更划算的路。
原廠不配合交接怎麼辦?
先回到合約確認原始碼與智財權歸屬,發正式函件主張權利;若合約當初沒寫清楚,可嘗試以結清尾款交換完整交付。同時立刻做兩件事自保:從主機端備份資料庫與檔案(如果你有主機權限),並盤點自己名下有哪些帳號。接手廠商可以在資訊不完整的狀況下開始診斷,不需要等原廠點頭才動工。
這件事,讓易飛特陪你一起做
易飛特提供 30 分鐘免費諮詢,由資深顧問協助你釐清需求、評估預算與時程,所有專案構想嚴格保密(NDA Compliant)。
預約免費諮詢