iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0

距離上次跟老楊談完,已經過了兩週。

阿偉現在正式帶著一個三人小組,負責公司的「跨服務資料整合專案」。簡單說,就是要把散落在各個系統的客戶資料整合起來,讓業務部和客服部能更快查到完整資訊。

小隊成員除了他之外,還有兩個人。一個是小林,就是之前阿偉教過的新人,現在已經能獨立作業了。另一個是小姜,比小林資深一點,寫了快兩年的 code,技術底子不錯,但個性比較保守謹慎。

這兩週來,阿偉漸漸發現帶團隊跟自己寫 code 是完全不同的世界。

週一早上九點半,阿偉盯著會議室白板上的兩套技術方案,感覺自己的胃在翻攪。

左邊是小林的提案:用 NoSQL,快速、彈性,據說很適合處理這種異質資料。但問題是小隊裡沒人有實戰經驗,連阿偉自己也只是看過文件而已。

右邊是小姜的方案:用現有的關聯式資料庫,穩定、熟悉,大家都會用。但小林質疑這樣可能在處理大量資料時會有效能瓶頸。

兩個人各說各話已經二十分鐘了。

小林說:「我們應該要嘗試新技術,這樣才能成長啊。而且 NoSQL 本來就是為了這種場景設計的。」

小姜反駁:「專案時程這麼緊,你確定有時間踩坑嗎?出問題誰負責?」

「那你的方案就不會出問題嗎?效能卡住了怎麼辦?」

「至少我知道怎麼調校,不會像你那樣連基本的設定都要從頭學。」

空氣開始凝結。

然後,兩雙眼睛同時看向阿偉。

「阿偉學長,你覺得呢?」

靠…

阿偉這才意識到,這不是技術討論會,這是要他做出決定。而且不管他選哪個,都會有人不爽。


晚上,咖啡廳。

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

「我真的不懂,為什麼我得負責做這種決定?」他攪著咖啡,「以前我就專心把自己的 code 寫好就行了。現在突然要我決定一個案子的技術路線,我又不是神。」

「那你最後怎麼處理?」我問。

「我...」他停頓了一下,「我說我回去想想,明天再給答案。然後就逃出會議室了。」

我笑了,「所以你現在是來找我求救的?」

「對啊。」阿偉毫不避諱,「我真的不知道該怎麼辦。兩個方案聽起來都有道理,但我總不能丟銅板決定吧?」

他停了一下,表情變得有點痛苦,「而且...我在想,如果我為了趕時程選了保守的方案,那我不就變成那種討厭鬼了嗎?」

我看著他,「那種討厭鬼?你是說哪種啊?」

「就是…我怕我變成那種只會妥協的爛主管啊。」阿偉說得很直接,「我記得以前都是老楊逼我在技術上退讓,我超不爽的。現在換我在這個位置上,我發現...我好像也要開始做這種選擇了。」

他嘆了口氣,「這種感覺真的很糟。」

決策不是喜好的問題

「阿偉,你覺得決策是什麼?」我問。

「就...就選一個答案啊。」他有點不確定。

「那如果我告訴你,你的工作不只是選答案,還要定義選擇的標準呢?」

阿偉愣了一下,「什麼意思?」

我在紙上寫了幾個字:

決策者的職責 ≠ 靠感覺給答案
決策者的職責 = 用對的方式找答案

「你想想看,」我說,「小林和小姜為什麼會吵起來?」

「因為一個想用新技術,一個想求穩定啊。」

「對,那他們在爭論的時候,有沒有提到這兩個方案對專案目標的影響?」

阿偉皺眉想了想,「好像...沒有。他們都只是在說自己的方案有多好。」

「對。」我點點頭,「所以這不單純是什麼技術爭論,這是沒有共同評估標準的爭論。」

我接著寫了幾個例子:

可能的評估標準:

 - 上線時程的風險?
 - 系統穩定性的要求?
 - 這個案子的效能要求?
 - 未來維護的成本?
 - 團隊學習的價值?

「你看,」我說,「如果你直接告訴他們用哪個方案,那你就只是在用你的偏好壓過他們的偏好。但如果你要求他們用這些標準來重新評估各自的方案呢?」

阿偉眼睛一亮,「喔~ 那他們就會開始用相同的前提來討論了。」

「對!而且你知道嗎?」我說,「你記得你之前學到的那些,整理量化指標的方法嗎?現在就派上用場了。」

阿偉拿出手機,翻出他之前整理的文件。

「風險控制、效率提升、團隊發展...」他喃喃自語,「所以,我可以要求他們用這些維度,來說明各自方案的優劣囉?」

「沒錯。這樣我們就不是在做你個人的喜好判斷,而是在做權衡取捨了。」我說,「就像你寫 code 時,可能會面臨需要在效能和可讀性之間取捨的時候一樣,沒有絕對的對錯,只有在特定條件下的最佳解。」

阿偉沒說話,但看起來還是有點掙扎。

「你還在擔心什麼?」我問。

「我就是...」他皺著眉頭,「我還是覺得,如果我最後為了時程或穩定性選了保守方案,那就是在妥協技術品質啊。這不就是以前我討厭的那種管理方式嗎?」

「阿偉,」我說,「你現在要小林和小姜提出評估標準,是為了什麼?」

「是為了...」阿偉頓了一下,「是為了讓我們可以清楚知道,選擇每個方案要付出什麼代價。」

「對。」我點點頭。

阿偉的表情鬆動了一些。

「你不是在技術上妥協,」我說,「你是在把技術選擇,從『我覺得哪個好』,提升到『在這個專案的條件下,哪個方案能在可控的風險下,做出最好的成果』。這才是一個好的工程師該有的判斷力。」

阿偉慢慢點頭,「所以...這還是工程師的思考方式囉?只是思考的範圍變大了?」

「對。所以我們其實還是在用工程師的邏輯做決策,只是現在要考慮的變數變多了。不只是技術這項變數,還要考慮時間、人力、風險這些變數。」

原來我也在添亂

阿偉喝了口咖啡,看起來輕鬆了一些。

但過了一會,他又皺起眉頭。

「其實,」他有點猶豫,「這兩週帶我們小隊以來,我還遇到另一個問題。」

「什麼問題?」

「就是...外面的人一直來找我們,」阿偉說,「像是業務部的小王,這兩週已經來了三次了。有時候是問『這個功能什麼時候會好』,有時候是說『客戶那邊有個小問題能不能幫忙看一下』。」

「然後呢?」

「然後我就...」他停頓了一下,「我就把這些事情轉給小林或小姜處理。反正我想說,這些事情應該不難,他們應該處理得來。而且我自己也有 code 要寫,不可能每個小事都自己來啊。」

我看著他,「那你有確認過,小林和小姜當時在做什麼嗎?」

阿偉愣了一下,「呃...沒有。我想說反正他們是小隊的成員啊,本來就要分擔工作嘛。」

「所以可能他們本來在專心處理重要的功能,然後被你轉過去的『小問題』打斷,對吧?」

「喔,幹。」阿偉的表情變了,「我好像...一直在干擾他們的工作節奏。」

「對。」

「我本來還以為,影響他們工作的是小王,結果搞半天原來扯後腿的是我啊…」阿偉有點沮喪。

「有時候,我們常常不自覺地成為問題的一部分。至少我們現在發現了嘛。」我安慰他。

聽到我這麼說,阿偉點了點頭。

我拿出筆,解釋道,「你現在的角色不只是技術決策者,你還是雜訊過濾器。像這樣…」

外部世界 → 阿偉(過濾) → 阿偉的小隊(專注)

「你記得你之前學會的『總機大法』吧?」

「記得,就是要先釐清需求,確認是不是真的緊急。」

「對,那個技巧現在要升級了。」我說,「以前你是用來保護自己的時間,現在你要用來保護整個小隊的專注時間。」

「那我具體該怎麼做?」阿偉問,「我總不能每次都說『不行,這不夠急』吧?小王他們也會覺得我很難搞。」

「你還記得以前有一陣子,小陳很愛動不動就跑來要你幫忙嗎?」

「記得啊。後來我用你教的方法,事情就解決啦。」

「對。那這次我們也可以建立類似的機制,」我說,「比如說,跟小林和小姜約定,每天下午預留一個小時,萬一有外部的碎片化需求時,就在這個時間段處理。」

「喔?」阿偉眼睛一亮。

「對,」我在紙上寫著,「這樣的話,小王的需求如果不急,那就幫他安排到小林或小姜的那個時段處理。這樣他們的其他時間就不會被打斷了。」

「那如果真的很急呢?」

「那你就要判斷,」我說,「這件事真的急到需要現在馬上處理嗎?還是小王只是習慣性喊急?如果真的是會影響客戶的緊急問題,那你就要決定是不是讓小林或小姜暫停手邊的工作。」

阿偉點點頭,「所以關鍵是,外部的人要先來找我,不能隨便直接找小林小姜對吧?」

「對。而且你要讓大家都知道這個規則,」我說,「包括老楊、小王這些人。告訴他們『如果有急事找我們團隊,請先找阿偉確認優先順序』。」

那誰來保護我的時間

「可是,我保護了小林跟小姜的開發時間,那我的呢?我跟老楊約好,要保留一部份的時間來寫code,可是我發現這兩個禮拜我很難專心耶。」

「嗯… 你覺得小林跟小姜,為什麼現在沒辦法專心寫code?因為他們一直被打斷,對吧?」

阿偉點點頭。

「那這兩個禮拜,你沒辦法好好寫code,是因為什麼?」

阿偉想了想,「代表… 我其實也沒有幫自己準備出寫code的時間嗎?」

「沒錯!」我說,「我們可以要求小林小姜排出固定處理雜事的時間,那你自己呢?你有沒有跟他們說『這幾個時段我在寫code,除非天塌下來否則別來找我』?」

「呃...沒有。」

「那就是問題所在,」我說,「你在保護別人的時間,卻沒有保護自己的。你幫小林跟小姜抵擋外部的干擾,那剩下屬於你們小隊的時間裡,你也得跟小林和小姜約好,哪些時段是你不能被打擾的。」

「那如果真的有緊急狀況呢?」

「那就要定義什麼叫『真的緊急』,」我說,「而且可以讓小姜當backup。如果你在專注時段,小姜可以先判斷,真的處理不了才來找你。」

阿偉思考了一會,手指輕輕敲著咖啡杯邊緣。

那接下來呢?

咖啡廳裡的人潮散去不少,只剩幾桌客人在低聲聊天。

「好,」阿偉終於開口,「我現在知道我要做什麼了。第一,要求小林和小姜用明確的標準重新評估方案。第二,以後外部的需求要先過我這關。」

「還有呢?」我問。

「嗯… 也要記得保護好自己的時間?」

「沒錯。」我笑著說。

阿偉拿出手機,開始打字。

「我要寫個 email 給小林和小姜,」他說,「請他們明天用風險、時程、維護成本這些標準重新整理各自的方案,然後我再做決定。還有,我要規劃好能夠保護好小林、小姜…喔,還有我自己開發時間的方法。」

我點點頭。

阿偉停下來,看著我,「你知道嗎,我剛剛突然想到一件事。如果這次我做的決定導致專案出問題,那責任是在我身上,對不對?」

「對。」

「以前我只要對自己的 code 負責,」他說,「看來,現在我要對我們小隊的結果負責了。」

他的語氣很平靜,但我知道這對他來說是個巨大的認知轉變。

「可是…我沒有把握每個決定都正確耶。」

「別太擔心。做決策這件事,就跟寫 code 一樣,是需要練習的。」我喝口咖啡,「我相信你的專業能力,可以判斷出好的方向。而且就算選錯了,也不是什麼世界末日嘛。」


咖啡喝完了,阿偉收起手機準備離開。

「對了,今天跟你聊完我才發現,」他說,「當我在煩惱要選哪個技術方案的時候,我完全沒想到小林和小姜的感受。」

「然後呢?」

「然後我現在意識到,」他有點不好意思,「如果我直接選了某個方案,另一個人可能會覺得自己的專業不被尊重。所以要求他們用同一套標準重新評估,其實也是在尊重他們兩個的專業判斷。」

我笑了,「看來你開始得出自己的體悟囉。」

「對啊,」阿偉說,「雖然還是覺得有點累,但...好像沒有想像中那麼可怕。至少今天晚上,我應該能睡得著啦。」


上一篇
Day 24:該選技術還是管理?我不知道自己適合哪一種
系列文
《工程師的辦公室修行日誌》:寫給那個專注寫 Code、卻忘了寫人生的你25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言