iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0

週三下午兩點,阿偉的手機震了一下。

小王傳來訊息:「阿偉,昨天那個客戶的訂單資料怪怪的,能幫我查一下嗎?有點急。」

阿偉看了一眼,回覆:「小王不好意思,現在剛好是我寫code的時間。你可以先找業務部的系統管理員處理,如果真的解決不了,下午五點後我們再討論。」

他放下手機,有點得意。自從學會保護小隊的專注時間後,他已經成功擋掉好幾次小王的「假緊急」了。

很好。接下來三個小時沒有會議,他終於可以好好寫點code了。

他戴上耳機,打開IDE,深吸一口氣。

二十分鐘後,Slack跳出訊息。

小姜:「阿偉學長,這個第三方API的timeout設定我不確定要設多少,你覺得呢?」

阿偉的手指停在鍵盤上。

他看著那個訊息,腦中閃過剛才拒絕小王的畫面。

可是...小姜是我們小隊的欸。而且這種設定如果搞錯了,可能會影響系統穩定性。我身為小隊長,應該要幫他把關吧?

「等我一下。」他回覆。

然後花了十五分鐘跟小姜討論。其實小姜自己已經查過文件了,也有初步想法,只是想確認一下。阿偉給了建議,順便幫他調整了一些參數。

好,繼續寫。

又過了半小時,小林走到他旁邊。

「學長,這個新功能的資料結構設計,我想了兩個方案,你可以幫我看一下哪個比較好嗎?」

阿偉嘆了口氣。他剛才明明跟小林說了,這是專注時段。但小林拿著兩個方案的草圖...看起來確實有認真思考過。

「好啦,我看看。」

他走到小林的位子,發現兩個方案各有優劣。他花了二十分鐘分析,最後幫小林選了一個,還順便改善了一些細節。

回到座位,已經快五點了。

阿偉盯著螢幕上那個寫到一半的function,突然覺得很荒謬。

他剛才成功擋住了小王,卻擋不住小林和小姜。

這三個小時到底幹了什麼?


晚上,咖啡廳。

阿偉一坐下來就開始抱怨。

「我不是說好要保護大家的專注時間嗎?結果現在被消耗最慘的人是我自己。」他的聲音裡帶著一種無奈,「我感覺自己不是在當什麼小隊長,比較像是在當他們的保姆耶。」

「保姆?」我挑眉。

「對啊,」阿偉有點無奈,「而且你知道嗎?我發現其實小姜和小林,他們都有能力自己做決定啊。小姜明明已經查過文件了,也有初步想法,但還是要來問我『你覺得呢』。小林也是,他都已經想出兩個方案了,卻還要我幫他選。」

「那你有拒絕他們嗎?」

阿偉沉默了一下,「沒有。因為...我怕他們做錯決定啊。timeout設太短影響用戶體驗,設太長又可能拖垮系統。資料結構設計如果選錯方案,以後要重構就麻煩了。」

他喝了口咖啡,「而且我現在身為小隊長,如果我沒有把關,到時候出問題可是我要扛耶。」

你在帶人還是在代勞?

我看著阿偉,「所以你現在的邏輯,是覺得自己做比較快,所以就自己做囉?」

「對啊,這不是很合理嗎?」阿偉理所當然地說,「我十分鐘就能搞定的事情,如果要教他們可能要花半小時。」

「那如果下週他們又遇到同樣的問題呢?」

阿偉愣了一下。

「還是你再花十分鐘?」我繼續問,「下下週呢?下個月呢?」

「唉...」阿偉抓了抓頭髮,「你是說我這樣做,其實是在養成他們的依賴囉?」

「可不只是依賴而已,」我說,「你還在剝奪他們成長的機會。」

阿偉皺眉:「怎麼說?」

「你想想看,小姜的timeout設定問題,如果他自己權衡過效能和用戶體驗的取捨,下次遇到類似問題是不是就有判斷能力了?小林的資料結構設計,如果他自己分析過兩個方案的優劣,他的架構思維是不是就會進步?」

「可是...」阿偉有點掙扎,「萬一他們判斷錯誤呢?timeout設太長系統會被拖垮,資料結構選錯以後要重構超麻煩的耶。」

「對,」我點點頭,「但這就是成長的過程啊。你還記得你以前還是菜鳥的時候嗎?」

阿偉想了想,苦笑:「記得啊。我那時候為了解決一個segfault,整整debug了兩天。」

「那你覺得,這兩天算是浪費嗎?」

「也不算是…」阿偉搖頭,「因為那次之後,我對記憶體管理的理解,一下子就清楚很多了。」

「你看,」我說,「如果當時有個學長,每次都從天而降直接幫你把code改好好,你現在還會有這個能力嗎?」

阿偉沉默了。

「阿偉,現在的問題不是你會不會帶人,」我說,「而是你把『帶人』理解成『代勞』了。」

完美主義的陷阱

咖啡廳裡的音樂換成了輕柔的鋼琴曲,阿偉心不在焉地攪著咖啡。

「可是我就是會擔心啊,」他終於開口,「如果我放手讓他們自己做,萬一他們做出來的東西品質很差怎麼辦?到時候出問題,老楊還是會來找我負責啊。」

「所以你擔心的,是『品質』囉?」

「對,」阿偉很坦白,「我不想變成那種為了趕進度,就推出一堆技術債的爛主管。我還記得以前,我最討厭的就是那種只會妥協的主管。」

我點點頭,「我懂你的擔心。但我問你,你確定這樣做,真的能『保證品質』嗎?」

「至少我自己寫的code,我有信心啊。」阿偉拍著胸脯。

「那小林和小姜的呢?」我問,「你都把時間拿去下指導棋了,搞得連自己開發的時間都沒有,那你哪來的時間看他們的code?」

阿偉愣住了。

「你想啊,」我說,「你花三小時處理他們的瑣碎問題。於此同時,什麼都沒學到的小林和小姜又各自下去寫新功能,但因為你什麼都不放心、什麼都要沾一點,結果重要的部分你也沒時間看了,自己的核心功能又寫不完,最後反而埋下更大的技術債。」

「天哪...」阿偉的臉色變了,「我以為我在控制品質,其實反而是在放任風險孳生嗎?」

「對。這就是微觀管理的陷阱,」我說,「如果把時間都花在小事上,反而就沒有心力關注真正重要的事情了。」

阿偉低著頭,說不出話來。

「往好處想,至少我們在很早期就發現問題啦。」我安慰著阿偉。

「那…我現在該怎麼做呢?」

「我記得之前你有跟老楊講好,要保留讓你專心寫code的時間,對吧?」

「對。那時候我跟他約定,希望每週能留至少三天的時間給我。」

我拿出筆記本遞給阿偉,「好,那你把這禮拜你每個工作所用的時間,列給我看看。」

阿偉遲疑了一下,開始寫著…

管理時間
 - 跨部門窗口、對外溝通:0.5天
 - 帶 junior、糾正他們的做法、處理與解答junior的瑣碎問題:3.5天

技術時間
 - 設計與修改架構:0.5天
 - 撰寫核心功能、debug:0.5天
 - code review:… 0天

「靠…我還沒寫到code review這一條,一個禮拜5天就全用完了…」

「怎麼樣,你看出問題了嗎?」

「嗯。我幾乎把全部的時間,都灌在小林跟小姜身上了。」

「那你還記得,花在他們身上的3.5天,哪些是屬於可以讓他們成長的『指導』、哪些是把他們的事情搶來做的『代勞』嗎?」

阿偉搖搖頭,「沒有辦法…當時我沒想這麼多,所以都混在一起了。」

我接過阿偉手中的本子:

修改前 (全部混在一起)
 - 帶 junior、糾正他們的做法、處理與解答junior的瑣碎問題:3.5天

修改後 (拆分指導與代勞,差別在是否能使junior得到成長)
 - 目標總花費時間:1天
    - 指導:???天
    - 代勞:???天

「你看,」我說,「像這樣分成『指導』與『代勞』兩種,我們之後可以盡量只把時間花在指導上,而代勞要盡力避免。這樣長久下來,小林跟小姜的能力才能得到提升,你要花在他們身上管理的時間,就可以有效降下來了。」

阿偉盯著那張圖,「可是...我還是會擔心他們做不好啊。」

「嗯…這裡面的關鍵不是『不管他們』,」我說,「而是建立一個機制,讓你可以在『適度放手』的同時,還能『控制風險』。」

當責?那是什麼?

「你還記得學過的以前小陳的求助吧?。」我問。

「記得啊,」阿偉點頭,「就是要先問清楚狀況,再決定怎麼幫忙嘛。」

「對。但現在我們可以把這個邏輯升級,用在培養Junior上。」我說,「還有,我們可以利用之前在知識分享學到的概念,讓小林和小姜把學到的記錄下來,並納入Definition of Done。」

我把筆記本翻到下一頁,開始寫:

授權的三個關鍵:

1. 向人求助前的義務 (當Junior來求助時,要求他們先回答):
 - 你具體遇到什麼問題?
 - 你試過哪三種解決方法了?
 - 你覺得為什麼這些方法沒用?
 
2. 設定品質護欄:
 - 建立共同的基本品質規範
 - 遇到新問題?解決後要更新FAQ
 - 這樣下次其他人遇到同樣問題,就有參考資料了

「咦,你前面不是寫『三個關鍵』嗎?怎麼只有兩個?」

「最後一個」我說,「是要建立一個『當責』(accountability) 的機制。」

「當責?」阿偉疑惑地問。

「簡單來說,當責就是對自己的決定和行動負責,」我解釋道,「不是把自己的問題丟給別人,也不是被動地等別人告訴自己該怎麼做,而是主動思考、嘗試解決方案,並對自己做事的結果承擔責任。」

我拿起筆,又補上了第3點:

3. 建立當責原則
- 明確告訴你的小隊:「當我授權你們做某些決定時,我代表我們小隊負起完全的責任。」
- 但也加上但書:「相對地,得到我的授權後,你也需要為自己工作的成果負起責任。」

「像這樣,對於整個小隊最後的成敗,是由阿偉你負責的。對吧?」

阿偉點點頭。

「那麼,對小林跟小姜來說,他們也需要對自己個人的工作成果,負起相應的責任。」

「所以」阿偉若有所思,「我們的目標是讓小林和小姜學會當責,而不是什麼事都依賴我囉?」

「沒錯,」我點點頭,「這個機制能讓他們培養自主解決問題的能力,同時你還保留了最終把關的角色。」」

阿偉看著那三點,眼睛慢慢亮起來,「所以...這其實不是在強迫我自己,去接受小林和小姜青澀的工作品質,而是去建立一個流程,讓他們能在我設定的護欄內,將自己逐步成長到80分、90分囉?」

「沒錯!」我說,「而且你有發現嗎?這個機制其實也在保護你的時間。」

「怎麼說?」

「當Junior知道來找你之前,他必須先試過三種方法,」我解釋,「他們就會開始學會自己思考、自己找資料。那些其實他能自己排除的小障礙,就會在這個階段被過濾掉。」

「而來找你的問題,」我繼續說,「就會是那些真正需要你經驗和判斷的問題。這時候你的指導才有價值,而不是在浪費時間解釋timeout怎麼設了。」

阿偉若有所思地點頭。

「而且你想想看,」我說,「當他們開始更新FAQ、記錄解決方案時,整個小隊的知識庫就慢慢建立起來了。這不就是你之前在做的事情嗎?現在我們只是把這個習慣,進一步擴散到你們小隊而已。」

「對欸,」阿偉說,「這樣的話,我就不是在犧牲品質,而是在提升整個小隊的能力了。」

「沒錯。而且最重要的是,」我看著他,「你必須承諾,授權後的錯誤由你承擔。」

阿偉愣了一下,「這...責任很重吧?」

「當然重,」我說,「但這就是領導者的職責啊。你還記得那時候,你怎麼說服老楊讓你重構系統的嗎?你跟他說,如果重構出問題責任你扛,對吧?」

「對。我那時候確實是這樣說的。」

「那你想過,老楊是拿什麼來答應你的呢?」

阿偉停了一下,「喔~ 我懂了!老楊授權我可以做重構的同時,他也在為他授權給我的這件事負起責任,對吧?」

「沒錯!」我說,「現在也一樣。當你願意為當小林和小姜的後盾、給予他們信心時,他們才會真正信任你給的授權,才敢放手去嘗試喔。」


咖啡廳裡的人潮散去了不少,阿偉拿著手機繼續做筆記。

他停頓了一下,「你知道嗎,我突然意識到一件事。」

「什麼?」

「以前我總是希望自己的code可以達到100分的完美,」阿偉慢慢地說,「但現在我的職責已經不一樣了。我要追求的應該是在『風險可控』的範圍內,讓我們小隊的產出最大化。」

「你覺得,這代表什麼呢?」

「這代表,」他深吸一口氣,「我必須接受他們會犯錯。但只要這些錯誤是在我設定的安全護欄內、是可以從中學習的,那就是必要的成本。」

他看著我,眼神裡有種釋然。

「看來你終於理解了。」我笑了。

「而且,我也想通了一件事。」阿偉嘆了口氣,「如果我一直當小林和小姜的保姆,就真的會沒時間碰code,這樣很快我就會生疏了。到時候即使我想回去寫code,也回不去啦。」

他苦笑,「所以適度放手,其實也算是在保護我自己的未來吧。」


上一篇
Day 25:不會吧,第一次帶人就踩坑!
系列文
《工程師的辦公室修行日誌》:寫給那個專注寫 Code、卻忘了寫人生的你26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言