別等到燒壞才停下來:高壓工程工作裡,我怎麼保持續航
後端工程師,主力 Go,做過交易所撮合與高併發系統,待過高壓環境也當過主管,現在學著用比較長遠的方式跟這份工作相處。
我不太喜歡「burnout」這個詞被講得太輕。這幾年它變成一種社群媒體上的流行語,誰都可以隨口說一句「我快 burnout 了」,然後配一張在咖啡廳的照片。但真正的倦怠不是那樣的。真正的倦怠是你坐在電腦前面,盯著一個你以前覺得很有趣的問題,然後發現自己什麼感覺都沒有。不是討厭它,也不是害怕它,就是——空的。
我想誠實地寫一篇關於這件事的文章。不是要給誰建議,也不是要喊什麼「工程師也要照顧自己」的口號。我只是想記錄一段我自己走過、而且差點沒走出來的路。
那段差點燒壞的日子
那時候我在一間交易所做撮合引擎相關的東西。撮合這種系統的特性是,它不能停、不能慢、不能錯。每一筆單背後都是真的錢,而且是別人的真的錢。延遲多個幾毫秒,可能就是有人賺到或賠掉一筆,客訴就進來了。系統半夜出事,沒有人會說「明天再修」,因為市場是不睡的。
我那時候 on-call 的頻率很高。不是說每天都被叫,而是那種「你永遠不知道會不會被叫」的狀態,比真的被叫還累。我手機放在床頭,調最大聲,連睡覺都有一半的意識掛在那支手機上。後來我發現自己會在沒有任何通知的情況下半夜驚醒,去摸手機看是不是漏接了什麼。那大概是第一個徵兆,只是當時我沒當一回事。
接著是睡眠。我以前是那種沾枕頭就睡著的人,但那陣子我躺在床上,腦袋會自動開始跑當天的 log,跑那個還沒解掉的 race condition,跑明天 standup 要報什麼。我不是在「思考」,我是停不下來。早上起來比睡前還累。
然後是熱情這件事。這個最難察覺,因為它是慢慢消失的。我一直是個對技術有點偏執的人,會自己回家看 paper、會為了搞懂一個 lock-free queue 的實作熬夜畫圖。但那段時間,有人丟一個技術上很漂亮的問題給我,我心裡第一個反應竟然是「又來了」。那一刻我嚇到了。因為那不是我。
最具體的一個畫面是這樣的:有天晚上大概兩點,我被叫起來處理一個線上問題,弄完大概四點,躺回去睡不著,乾脆爬起來繼續看 code。早上我太太起床看到我坐在客廳,問我幾點睡的,我說我沒睡。她沒罵我,只是看著我說了一句「你最近不太像你」。我那時候還在嘴硬,說只是這陣子比較忙。但那句話我記到現在。
「累」和「倦怠」不是同一件事
我花了很久才搞懂這兩個東西的差別,而且我覺得這個區分非常重要,因為它們的解法完全不同。
累是物理性的。你跑了一個馬拉松式的上線,連續工作了十六個小時,你累。但你睡一覺、放個假,它會回來。累是有底的,它會復原。
倦怠不是。倦怠是你睡了一整個週末,禮拜一早上起來,還是覺得不想面對。倦怠是一種對「意義」的耗損。它不是你的身體沒電了,是你心裡那個「為什麼我要做這個」的引擎熄火了。
我那陣子一直用「累」的方法去解「倦怠」的問題。我以為我只是需要休息,所以我請了假,去日本玩了一個禮拜。結果回來第一天,我坐在位子上,那個空的感覺一秒鐘就回來了。那次我才真正意識到,這不是休息能解決的,因為問題不在我的體力,在更深的地方。
倦怠的核心,往往不是工作太多,而是工作和你在乎的東西斷了連結。 我那時候做的事情其實還是有挑戰性的,但我每天醒來想到的不是「我要解決什麼」,而是「我又要去撐過一天」。當你的工作從「創造」變成「撐」,那個就是警訊了。
我做的第一件事:設界線,而且是難看的那種
很多談 work-life balance 的文章會講得很優雅,好像你只要排個行事曆、設個番茄鐘就好。我的經驗是,真正有用的界線一開始都很難看,因為它需要你拒絕一些東西,而拒絕在高壓環境裡是有代價的。
把 on-call 當成一個需要被設計的系統
我做的第一個改變,是不再把 on-call 當成「個人英雄主義」。以前我會覺得,反正我熟、我修得快,那就我來吧。但這種想法害死人。它讓 on-call 的負擔集中在少數人身上,而且讓這件事變得不可持續。
我開始推動幾件事,有些是我自己能控制的,有些是我去跟團隊吵來的:
- 輪值要真的輪。 不是名義上排了表,實際上都同一個人在扛。如果輪值表上有人永遠在「剛好」幫不上忙,那這個表就是壞的。
- 被叫起來處理的事,隔天要有補償。 凌晨三點被叫,隔天早上就不該有 standup 等你。這不是福利,這是讓系統能長期運作的基本物理。
- 不是每件事都該半夜叫人。 我們花了時間去重新分類告警,把「真的會死人」的和「明天再看也沒差」的分開。光是這件事,就讓半夜的鈴聲少了一大半。很多時候,半夜的告警不是因為系統真的危急,是因為當初設 alert 的人懶得想清楚什麼才是真正的緊急。
這件事我想特別強調:on-call 的健康不是個人意志力的問題,是制度設計的問題。 你不可能靠「我比較能撐」去解一個結構性的疲勞。那只是把問題往後延,而且利息很高。
下班就是下班,通知是我打開的,不是它打開我
我以前手機上每個工作相關的 app 都開推播。Slack、信箱、監控、甚至 PR 的 review 通知。我等於是讓全世界都有一條線可以隨時拉一下我的注意力。
後來我做了一件很簡單但心理上很掙扎的事:下班後關掉工作 app 的推播。不是封鎖,不是搞失蹤,真的有緊急狀況 on-call 的管道還是通的。但那些「順便看一下」的東西,我關掉了。
一開始我會焦慮,會忍不住自己去點開來看。因為高壓環境會訓練你一種錯覺,覺得你隨時 standby 才是負責任。但其實不是。你需要的不是隨時在線,是在你該在線的時候能全力以赴。一個沒睡飽、注意力一直被切碎的人,根本不可能在真的需要的時候做出好判斷。
我太太有次說,她覺得我關掉推播之後,吃飯的時候終於是真的在跟她吃飯,而不是人在這裡、眼睛在手機。這句話對我的影響比任何生產力文章都大。
休息不是偷懶,是續航的一部分
這個觀念在工程師圈,甚至在台灣的職場文化裡,是很反直覺的。我們從小被教的是努力、是撐、是不能輸在起跑點。休息常常被當成一種道德上的瑕疵,好像你休息就是不夠拚。
但我後來想通一件事:我做的是一個需要長期運作的系統,而我自己也是那個系統的一部分。 沒有人會讓一台 server 七天二十四小時跑滿載而不做任何維護,然後期待它三年都不出事。但我們卻常常這樣對待自己。
我開始把休息當成一種需要被排進去的維護工作,而不是「有空再說」的東西。具體一點講:
我固定每週留一個下午,完全不碰跟工作有關的任何螢幕。一開始我會給自己找一堆藉口,覺得這個時間拿來解 bug 多好。但我撐著做了幾個月之後,發現一個很反直覺的現象:我那些卡很久的問題,常常是在這種完全放空的時候突然想通的。不是我刻意去想,是大腦在背景自己跑完了。
我也重新撿回了一些跟電腦無關的東西。我開始固定運動,不是為了健康那種抽象的理由,是因為運動的時候我的腦袋是空的,那大概是我一天裡唯一不在跑 log 的時間。後來我才知道,這種「強制讓大腦離線」的時間,對倦怠的恢復其實是關鍵。
我想說的不是「你要去運動」或「你要培養興趣」這種話,那太廉價了。我想說的是:休息的目的不是為了讓你回去工作之後更有生產力——雖然它確實有這個副作用——休息本身就是值得的,因為你的人生不是只有那些 commit。
找回對技術的熱情,是用「減法」做到的
很多人以為熱情燒完了就是燒完了,回不來了。我以前也這麼覺得。但我後來發現,我的熱情其實沒有死,它只是被埋在太多雜訊底下。
那段最低潮的時候,我做了一件對我幫助很大的事:我重新開始做一個跟工作完全無關的小東西。沒有 deadline,沒有人會 review,沒有 KPI。我就只是想搞懂一個我好奇很久的東西,用我喜歡的方式,慢慢寫。
那個過程裡我突然想起來,我當初為什麼會喜歡寫程式。不是因為它能換到薪水,也不是因為解決了什麼商業問題,是因為那種「我把一個混亂的東西想清楚、然後讓它跑起來」的單純快樂。這種快樂在高壓的工作裡很容易被磨掉,因為工作的程式總是綁著太多東西——期限、責任、別人的期待、出錯的代價。
所以對我來說,找回熱情不是去「加」更多東西,是去「減」。減掉那些讓技術變得沉重的脈絡,回到它最初讓我著迷的那個核心。
我也學會了一件事:不是每一段時間你都會對技術充滿熱情,這很正常。熱情是會起伏的,就像感情一樣。你不會因為某段時間對伴侶沒那麼心動就覺得這段關係完了。技術也是。低潮的時候,不要急著下「我是不是不適合這行」的結論。有時候你只是累了,需要的是調整節奏,不是換跑道。
為什麼工程師很少談心理健康
我當過主管,也當過純 RD,兩個角度都待過。我觀察到一件事:工程師這個圈子,談心理健康是有一種隱性的羞恥感的。
我想原因有幾層。
一層是我們這行很容易把自己的價值跟「產出」綁在一起。你的 commit、你解掉的問題、你扛起的系統,這些變成你是誰。所以當你狀態不好、產出下降的時候,你會覺得那不只是「我這陣子比較累」,而是「我是不是不行了」。這種把自我價值跟生產力綁死的思維,是很危險的。
另一層是工程文化裡有一種「硬」的崇拜。我們會講某某人多猛、可以連續幾天不睡上線、可以一個人扛整個系統。這些故事被當成英雄事蹟在傳。但沒有人會去問,那個人後來怎麼了。那種硬撐被包裝成能力,但很多時候它只是還沒崩而已。
還有一層,是我們很習慣把問題當成一個可以「解」的東西。系統有 bug,我們 debug;效能不好,我們 profiling。但心理狀態不是一個 bug,它沒有一個 root cause 讓你 fix 完就好。這種「無法被工程化解決」的不確定性,會讓很多工程師不知道怎麼面對,乾脆不去看它。
我自己花了很久才接受一件事:承認自己狀態不好,不是軟弱,是一種準確的自我觀測。 一個連自己系統都不監控的工程師,我們會說他不專業。那為什麼我們對自己這個最重要的系統,反而連看都不敢看?
我不是說每個人都要去看心理諮商,雖然如果你需要,那完全沒什麼好丟臉的。我想說的是,至少給自己一點誠實。當你發現自己連續好幾個禮拜都提不起勁、睡不好、對什麼都無感的時候,不要急著用「最近比較忙」帶過去。那可能不是忙,那可能是你的系統在發告警,只是你把那個 alert 靜音了太久。
我現在的狀態,以及一些不漂亮的真話
我不想把這篇文章寫成一個「我克服了倦怠,從此過著幸福快樂的日子」的故事。那不真實。
倦怠不是一個你打贏一次就結束的關卡。它比較像一種慢性的東西,你會一直需要去管理它。我到現在還是會有狀態不好的時候,還是會有某幾個禮拜覺得很重、很想逃。差別在於,現在的我比較認得出那些徵兆了,而且我不會再像以前那樣,等到快燒壞了才停下來。
我也想誠實講,設界線是有代價的。當你開始拒絕一些東西、開始保護自己的時間,不是每個人都會喜歡。在某些環境裡,「隨叫隨到」就是會被當成優點,而你選擇不那樣做,是會有觀感上的損失的。我沒有完美的答案。我只能說,我用我的健康換來的那些「好觀感」,最後並沒有比我的健康值錢。
如果你現在正在那個狀態裡——半夜驚醒、對什麼都無感、覺得自己只是在撐——我想跟你說的不是「加油」,那兩個字在那種時候根本沒用。我想說的是,你感覺到的那個東西是真的,它不是你抗壓性不夠,也不是你不適合這行。它是一個訊號,而訊號的存在,是為了讓你做出調整。
小結
我寫這篇不是因為我把這件事想通了,而是因為我還在路上,而這條路我希望少一點人走得像我當初那麼孤單。
如果要我把這幾年學到的濃縮成幾句話,大概是這樣:累和倦怠是兩回事,前者靠休息,後者靠重新連結你在乎的東西;界線需要你主動去設,而且一開始通常很難看;休息不是偷懶,它是讓你能長期運作的維護;熱情會起伏,低潮不等於終點;還有最重要的——你不是你的產出,你是一個會累、會倦、需要被好好對待的人,而那個需要被好好對待的對象,第一個應該是你自己。
別等到燒壞才停下來。系統會給你告警的,問題只是你願不願意聽。