軟體工程師日常分享|重構專案、爆雷上線與辦公室裡的血淚日常

在外人眼中,工程師的日常好像就是坐在電腦前敲鍵盤。但實際進到公司後,才會發現真正的挑戰,常常不是程式碼本身,而是專案流程、跨部門協作,還有那些讓人哭笑不得的臨時狀況。
這篇就帶大家看看,一名軟體工程師嘉嘉的真實日常,從接手舊系統重構,到上線爆雷,再到辦公室裡的點滴心情。
規格書的必要與現實
規格書理想上能解決一些問題
在理想的軟體開發流程裡,規格書能扮演很重要的角色。它就像專案的地圖,把需求、功能、邏輯先寫清楚,不只方便工程師之間溝通,也能讓後續接手的人更快進入狀況。對主管來說,規格書還能成為追蹤進度的依據,聽起來幾乎是萬無一失的制度。
文件寫得辛苦卻少人真正使用
剛接手一個龐大的舊系統時,主管交辦的第一件事居然不是寫程式,而是先產出一份完整的規格書。聽起來很合理,畢竟文件能讓系統更清楚。結果實際做下去才發現,系統既複雜又老舊,很多功能根本沒人能說明白。於是花了好幾天拼命整理,把文件生出來了。
制度與現場需求是兩條平行線
問題是,文件生出來之後,真正要重構時大家卻很少拿它來用。同事更常見的做法是直接跑來問,或者自己 trace code。文件雖然存在,但實際派不上太大用場。於是就形成一種矛盾:文件是必須要有的,卻常常淪為形式,制度和需求常常走在兩條不同的軌道上。
時間不夠還要趕上線
上線時程本來要好好規劃
在理想的情況下,專案時程應該是早早就規劃好,每個階段都留有足夠時間測試與修改。上線日期通常會在專案一開始就排定,讓團隊能依照進度穩定推進。照理來說,臨時的「下週就要上線」根本不應該出現。
專案進行到一半突然被通知
實際情況中,不一定有理想中的專案時程。
在《無厘頭生存》EP42 中嘉嘉就分享過,專案做到一半,突然被通知「下週要上線」。當下心情就像原本在慢跑,結果被人硬推去跑百米衝刺。時間根本不夠,測試也沒完成,只能硬著頭皮往前衝。工程師最怕的不是難題,而是這種完全沒有心理準備的突襲。
進度表永遠追不上現實
這種狀況凸顯了專案管理常見的問題:紙上的進度表看起來很漂亮,實際上卻常常對不上現場進度。功能還沒完全 ready,需求還在變動,文件也來不及更新。結果就是專案進度和現實脫節,最後代價都壓在工程師身上。這就是軟體開發裡的「日常驚喜」,也讓人更清楚專案規劃與溝通的重要性。
測試不足的代價
測試應該是最基本的保險
在理想的開發流程裡,測試應該是專案不可或缺的一環。QA 會在上線前做完整的測試,工程師也能有時間進行單元測試與整合測試。這樣才能在正式上線前,把潛在問題抓出來,減少使用者遇到 bug 的機率。
上線後每天都在拆驚喜包
在嘉嘉的經驗中,現實情況和理想是相反的,團隊裡根本沒有專職 QA,加上測試時間嚴重不足,專案一上線,每天都會冒出十幾個 bug。工程師的日常瞬間變成「拆驚喜包」:早上剛修完一個問題,下午又跳出新的 bug,甚至晚上下班後還會接到電話。測試不足的代價,就是換來無止境的救火循環。
測試文化缺失 最後苦的是工程師
這不只是單一專案的問題,而是許多團隊的共通點。測試文化若沒有建立起來,最後的後果一定會落在工程師身上。與其把時間都浪費在修補,不如在專案初期就投入足夠的測試。這樣的投資能大幅降低後續的壓力,也讓開發節奏更健康。工程師的血淚日常,其實正提醒著:測試不是附加選項,而是專案能不能順利運行的關鍵。
工程師日常真實寫照
寫程式的時間常常被切割
很多人對工程師的印象,是安靜坐在電腦前專心敲程式,結果現實卻完全不是這樣。工作一整天,真正能專注寫程式的時間可能不到三分之一。
電話一響,要立刻處理使用者的緊急狀況;訊息跳出來,PM 又在問「這個功能能不能再加一下」。程式碼寫到一半被打斷,再回去時往往要花好幾分鐘重新找回思路。
長期下來,效率不但下降,心情也會變得很煩躁。這就是工程師最常見的日常:明明是寫程式的工作,卻經常在「被打斷」與「重新找回狀態」之間來回切換。
下班後反而才有專心的時刻
因為白天時間被切得太零碎,也些工程師反而在下班後,才終於能真正沉浸在程式裡。辦公室安靜下來,沒有人再丟訊息,也沒有電話打擾,bug 修起來特別有效率。這聽起來有點反直覺,但卻是很多工程師心照不宣的默契:真正的工作時段,常常發生在打卡下班之後。這雖然不是健康的工作方式,但卻是應付現實的無奈解法。
跨部門協作的斷層
資訊不透明帶來的尷尬
軟體專案裡最常見的問題,就是跨部門溝通不順。像是 DBA 改了資料庫卻沒完整通知,PM 到最後一刻才丟需求,主管臨時一句「這功能很急」,壓力全落在工程師身上。當天的工作排程被瞬間打亂,原本計畫好的功能進度也跟著延後。這種「臨時插隊」的狀況,其實比 bug 還讓人頭痛,因為問題不在技術,而是在溝通。
工程師變成臨時的溝通橋樑
當部門之間訊息不對等,最後往往是工程師自己跳出來當橋樑。明明本業是寫程式,卻要幫忙解釋需求、協調進度,甚至扮演「翻譯」的角色,讓 PM 聽得懂 DBA 的意思,讓主管理解專案的限制。這不是誰的錯,而是整個流程的漏洞。只是對工程師來說,除了要顧程式碼,還要顧溝通,無形中增加了更多壓力。久而久之,寫程式反而變成日常裡最單純的部分。
工程師的工作不只是寫程式,還有一堆「意料之外」的狀況。規格書寫得辛苦卻沒人用、臨時被逼著趕上線、上線後 bug 爆滿天飛、跨部門溝通卡卡,這些血淚日常組成了最真實的工程師生活。雖然過程中充滿挑戰,但也正是這些狀況,讓工程師在混亂中累積經驗,練就了隨時救火的功力。
想聽完整的故事,可以收聽 Podcast 《無厘頭生存》EP42。
想使用其他平台聆聽?在這些平台都有收錄 👉 無厘頭生存Podcast頻道介紹



