背景痛點
客戶用了 30 年的進銷存 + 生產管理系統。問題:完全沒有原始碼,原來的廠商失聯,手上只有跑著的 .EXE 跟 .DBF 資料檔。
想升級沒辦法 — 沒源碼就改不了、加不了新功能、修不了 bug;想換廠商沒辦法 — 沒人敢「黑盒接手」一套 30 年的關鍵業務系統;繼續用又怕老 EXE 哪天在新 Windows 跑不動。
14 個邏輯模組(採購、進貨、庫存、生產排程、銷售、出貨、應收、應付、報表⋯)、21 張主表、累積近 100 萬筆資料。每一個模組的業務規則都要重新搞清楚。
我們怎麼做
第一步:逆向業務邏輯。 從 .DBF 結構、.EXE 行為、現場員工怎麼操作,一條一條把業務規則重新整理出來。這不是技術活,是商業邏輯重建 — 每個欄位代表什麼、每個動作觸發什麼、每張報表要怎麼算。這階段花的時間最多。
第二步:用 VFP9 重寫。 為什麼還用 VFP?因為 (a) 客戶現有資料是 .DBF,VFP 原生支援,遷移無痛;(b) 員工已經熟悉 VFP 介面風格;(c) VFP 是 Windows native,速度快、部署簡單。這是務實的選擇,不是技術潔癖。
第三步:資料遷移 + 上線。 舊 .DBF 全部清理(trim、補編碼、去重)後 import 進新系統,dry-run 比對筆數確認零遺失。上線後員工繼續用,但這次系統有源碼了 — 想加什麼、改什麼,都做得到。
第四步(現在進行中):規劃 Web 版。 客戶想要更現代的東西 — 行動端、跨地遠端、跟外部系統整合。我們交付了規劃書,技術選 Next.js 15 + Prisma + Postgres + NextAuth.js v5。規劃啟動,實作待開工。
成果
VFP 版在用、穩定、持續維護中。客戶終於從「沒源碼的黑盒」回到「有源碼的可控系統」。
下一階段 Web 版規劃定稿,等客戶決定啟動時間。這就是『有源碼』vs『沒源碼』兩種路徑的差別 — 沒源碼的案子要分兩階段做,急不得。