上一篇 為何系統越老,工程師越「痛」? 提到軟體工程師在維護老舊系統時所面對的痛點。當然,處理老舊系統的時候,其實我們還是有一些使用者也不會知道的故事。今天就跟大家分享,我們工程師如何實現關關難過,關關硬過。

🫣祖傳的CODE,能跑請勿動
別說祖孫代溝,連資訊系統和工程師也會存在代溝悲劇。根據TIOBE程式語言最新資料統計,2025年前6大程式語言分別為:Python、C、C++、java、C#、JavaScript。那 2026 、2030、2040 年呢 ?人人都追著 AI CODING 學習,深怕落後他人。但是進入職場後,才發現你學的新技術在老系統裡根本寸步難行。怎麼辦?
我們唯一做法就是:能跑請勿動🤣🤣元老也會有退休的一天,燙手山芋的系統傳到年輕一代,只能說能跑就不要動。任何一行程式碼的調整都會影響整個系統。有些寫法跟現在程式碼撰寫方式不一樣,框架也不一樣。
業管單位天天想加功能,主管大大畫餅功力越來越強,工程師只能沉默:我對這個老叩叩還有代溝。老系統框架已經固定了,你要加功能猶如房子頂樓加蓋鐵皮屋導致系統結構脆弱。臺風一來屋頂吹飛,就像脆弱的功能駭客一攻擊就裸裸的內部核心程式被看光光。
原則:千萬不要直接「動到最核心」的程式碼
📝工作日誌、技術手冊是寶藏
雖然前期系統開發並未留下頗多系統規格書,但是工程師都有自己一套技術筆記。工作筆記不是寫給主管,是寫給 一年後的自己。系統需要導正資料的步驟、每個使用者權限設定、維護計畫等,工程師都會寫下筆記預防下次會再碰到。前人離開,沒時間交接,筆記傳承,也是一個珍貴的寶物。
處理老系統很像偵探遊戲,要闖關就把前人的筆記當作寶,不斷地摸索研究。空檔時間就查看系統紀錄檔(System Log)就會知道過去什麼因素造成系統傷害。 根據手上的筆記慢慢實作與驗證找出它為什麼這樣運作。
🕵️ 先評估再承諾
需求者:這功能很簡單吧?上面加一個輸入框就好啦!
工程師:請給我時間先評估可行性。
這種對話是不是常聽到。其實不是工程師不會,而是本身系統有風險。接到需求時,我們都不會急著回覆對方。儘管業管單位一直吵,主管一直催,我們都會先評估一下影響的範圍。
資安最重要。系統要加什麼功能,改什麼邏輯,我們會先考慮「此功能恐是否符合資安要求」。假設使用者要求密碼輸入框要加入「小眼睛」看一下自己輸入什麼密碼。雖然密碼加「小眼睛」很簡單,但是在政府機關、大專校院都有一套資安法規要遵循, 是不一定允許這樣調整喔~~~
微調影響程度。最常見的方式就是檢查程式邏輯、模組的關聯、是否會造成使用者操作錯誤、還有的技術雷。老系統比較複雜,看起來簡單的微調,但程式異動影響範圍甚廣。我們會根據影響範圍提出建議階段性修補或是替代方案。
👩💻修補系統如同修補老房子
在不影響系統核心架構的情況下,工程師處裡方式如同修補老房子。老房子哪裡漏水就抓漏,水管電線老舊就更換。資訊系統一樣,哪裡有BUG 就改哪裡,使用者操作錯誤就導正資料,硬體設備或資料庫版本老舊,就更換新版本,新設備。
新框架、新CODE 寫法沒辦法直接套在老系統上,我們只能以修邊方式補強功能或是額外架一個中介服務將新資料寫入舊資料庫。也許你會覺得現在有 AI,很多事情透過AI 協助都可以迎刃而解。但是我們最怕就是動到大動脈,核心程式修到面目全非就一發不可收拾。畢竟系統還是穩定的運作,尚未遭到資安危機。
💪 該如何面對「老系統的焦慮」?
新鮮人入職第一年的我,每次看到老系統卡卡、奇怪流程,我都很焦慮。我也多次向主管反應要將系統砍掉重建。經過歲月的磨礪,現在已經不是那個不知天高地厚的菜鳥。家有一老如有一寶,老舊系統能穩定運作靠的是前人持續努力、深度思考、堅持不懈,並勇於嘗試與從失敗中滾動式調整邏輯。熱情投入其中,跟著前輩腳步思維,還真讓我找出一片天。






















