這封信件想表達改版的急迫性跟必要的點,即便如此也說明不了為什麼新團隊無法掌握系統結構,也沒有那個技術能力「維運」,或許有一種雙手一攤的心態,反正我們是新接手的團隊,過去怎樣不管,系統就是要整個翻新。
我們假設新團隊真的有能力,得知要改版的第一個月內(系統升級不是市場買菜說買就買),主導這次系統升級的主管就需要定義好情境。
假定開發團隊的人力極度吃緊,開發時間又不給,整個團隊要往屎坑跳,尤其是...前端(FE/UI 混合編制)只有,5位後端、4位前端混UI設計師,5 個月的死線(約 23 週),以及 15 年累積的龐大資料與技術債。
主責的PM就要能夠釐清舊系統的邊際、細節在那裡、配合著新系統的目標,盤點現在有多少人力跟能力在新系統上進行開發。
- 工程師負責新舊系統的對齊,主、次功能先規劃出來,哪些功能混亂盤根錯節的程度到哪、資料表的欄位又對應到哪些功能,要怎麼進行資料的轉移。
- 視覺設計跟工程師配合,在新系統上要顯示的資料、行為流程、欄位有哪些,避面把了一堆不必要的欄位又撈出來。
例如:
- 會員系統 (SSO) 與權限驗證 (Auth) 機制
- 文章管理
- 列表資料
- 搜尋、分類、狀態、權限...etc
- 內容資料
- 編輯器、SEO、標籤...etc
- 相簿管理
- 上傳、檢視、分享、標記、權限...etc
- 設定管理...
- 樣式管理...
- 好友管理、拜訪記錄...
- 合作機會...
- 通知管理
- 簡訊、mail、系統內通知
記住!!!重點在於,怎麼把舊系統功能移植到新系統上,所以要懂的抄,把既有邏輯拿來沿用,有問題的優化,沒問題的沿用。
叫你抄邏輯不是抄程式碼,不要自己猜。
這樣前前後後弄也要4週x5工作天,甚至6週x5工作天的時間盤點、定案。
再來人力的分配,已經知道新、舊系統的Gap,既然不想維護舊系統,那就把新系統規劃好,用功能切人力,每個功能保底至少要一位後端、一位前端、一位切版加畫面調整的UI設計師。
為了減少溝通成本,為了避免傳統前後端分工造成的「等待浪費」,我們將 9 人部隊拆解為三個「垂直功能小組 (Feature Squads)」,每個小組對自己的功能模組負全責。
開始進入實戰環節,每個功能必須有「對應的負責人」,避免責任推託。
A 隊 - 內容核心組 (Content Core)
- 任務:文章管理、相簿管理(最硬的骨頭,資料量最大)。
- 配置:2 後端 + 1 前端 + 1 UI/UX (主導)。
- 重點:確保舊文章 HTML 轉移後不跑版、圖片路徑正確。
- 解決情境 - 髒 HTML 的容錯:舊文章裡充斥著 `font` 標籤、壞掉的 `iframe` 。A 隊不嘗試完美解析每一篇文章,而是開發一個可轉移的「Legacy Container(遺留容器)」。新文章使用乾淨的 Block Editor(區塊編輯器);舊文章則原封不動塞進容器中,並用 CSS 限制其最大寬度與溢出行為,確保「雖然醜,但能看,且不會撐爆手機版面」。
- 解決情境 - 圖片路徑映射:幾億張圖片不進行實體搬運。A 隊建立一個高效的 Mapping Service,將舊的 `/images/2010/xxx.jpg` 請求,在 CDN 層直接 Rewrite 到新的雲端物件儲存路徑。
B 隊 - 會員與社交組 (User & Social)
- 任務:Auth、設定、好友、通知、樣式管理。
- 配置:2 後端 + 1 前端 (邏輯強) + 1 UI (支援)。
- 重點:權限邏輯(誰能看文章)、登入狀態維持。
- 解決情境 - 密碼無痛升級: 舊密碼加密方式已不安全。B 隊實作「雙重驗證策略」:用戶登入時,系統先試新加密邏輯,失敗則試舊邏輯;一旦舊邏輯驗證成功,系統自動在背景將密碼升級為新加密格式並寫入新欄位。用戶無感,但安全性提升。
C 位 - 架構與遷移組 (Infra & Migration)
- 成員:Tech Lead (兼任) + 1 資深後端
- 任務:由 最資深的後端 (Tech Lead) 兼任,不背具體畫面功能。
- 重點:負責資料庫 Schema 設計、寫資料轉移腳本 (ETL)、制定 API 規範。
- 解決情境 - API 規範先行: C 隊不參與畫面開發,而是專注於定義 Swagger/OpenAPI 文件。A、B 隊的前端不需要等後端寫完 API 才能動工,直接依照規範使用 Mock Server 開發畫面。
- 解決情境 - ETL 資料清洗: 面對 15 年累積的資料庫,C 隊撰寫 ETL 腳本。遇到亂碼或格式錯誤的資料(例如 Email 欄位裡填的是電話),直接在遷移過程中寫入「例外 Log」並設為 Null,而不是讓整個遷移程序崩潰。
經過漫長19週的高強度開發,最後一個月,我們不開發新功能,只做兩件事:修 Bug 與 演練上線。
我們不打算進行「熱切換(Hot Swap)」,風險太高。 我們規劃了「停機 6 小時」的劇本:
- 鎖定舊站: 開啟唯讀模式,停止所有寫入(發文、留言),確保資料靜止。
- 增量同步: C 隊執行最後一次資料同步腳本,搬移最後一刻產生的差異資料。
- DNS 切換: 指向新系統。
- 安全手段:如果新站上線後發生致命錯誤,因為舊站資料沒被動過(只是唯讀),我們可以隨時把 DNS 切回去。這就是我們的保命符。
雖然不想馬後炮,但這封信會出現是必然的,不管文章內的重點是什麼都掩飾不了,新團隊上任後風風火火的搞砸對於龐大用戶的信任。
歷史總是那麼相似,這些情境雖然已經過了有6,7年之久,但我還歷歷在目,我自己也搞砸過兩個系統,第一次不懂、第二次太有把握,還好在問題弄大之前,都有跟業主好好溝通,避免這種超大型的公關災難...。
也因為這些經驗,還好案件的成功率大大提升不少也都順利收案。
在那之後,聽到有合作案要談系統轉移,我都很慎重再三確認細節,當我聽到業主講出,別的團隊說,他們多久可以上線,但細節卻是輕描淡寫,我只能給予祝福...
對於痞客邦的事件,我想這是最後一篇了,如果有不一樣的劇情,再來討論。




















