MANAGEMENT / JUDGMENT & SUPPORT
TL 帶著選項來,Manager 接住什麼?
依我的團隊分工、管理期待與版本選擇經驗整理;說明及提問為編輯延伸,仍待語氣確認。
我期待 Technical Lead(TL)先形成自己的想法。需要一起做決定或取得支援時,帶著幾個可能答案來討論。
各自負責,也共同協助
我把工作分成 System、WiFi、5G 三個 team。他們各自負責,也共同協助。
分工讓各個 team 有自己的責任。共同協助,則讓跨領域的問題有機會把不同專長接起來。這兩件事需要一起看:自己的部分由誰承擔,以及需要其他 team 時,協作怎麼接上。
TL 先有自己的想法
我期待 TL 先有想法。如果沒辦法決定,或需要支援,再帶著幾個可能答案來找我。
可能答案讓討論有了具體的起點。可以接著看:為什麼考慮這些選項、各自有哪些優缺點,以及哪個部分還需要一起判斷。TL 對問題的理解,也能在這個過程裡被說清楚。
Manager 把判斷接上支援
我的角色包括判斷、取捨、優缺點分析、資源調整與外部協調。
這些工作彼此相連。討論方案時,需要看它的優點,也要看採用它要承擔什麼。做了取捨,還要接著看資源如何配合,以及哪些事情需要外部協調。
TL 帶來對問題的思考,Manager 協助把判斷接上需要的支援。這是我對這兩個角色如何一起工作的期待。
版本選擇:TL 分析代價,Manager 決定時機
一次跨團隊的版本選擇,讓這個分工變得具體。我們需要跟上其他 team 的進展,也要顧及彼此的編譯與開發。TL 先比較跟進 develop 與採用穩定分支的優缺點,整理影響範圍,以及各自要付出的代價。
更新的成本,會落到誰身上?
新功能若只進到部分 repo,可能造成跨 repo 的相依性問題。輕則編譯不過;更難處理的是編譯沒有報錯,執行行為卻異常,甚至 crash。
這些風險可能需要大量時間除錯,還要協助處理其他 team 的編譯問題。更新的影響因此會擴散,拖累共同進度。比較選項時,也需要把這些投入與影響算進去。
接受功能落後的代價
當時,我決定先從穩定版本建立分支。這有明確的代價:新功能不會即時帶進來,我們的 device 在功能上,會比某些已進入 EA、RC 或 GA 的產品落後一些。
我接受這個代價,再判斷何時跟進 develop。我會參考需要的功能是否已被其他產品採用,以及那些產品處於 EA、RC 或 GA 的階段,評估更新時機。其他產品的採用經驗是判斷依據,並不等同我們自己的產品已完成整合驗證。
保留更新的選擇
建立穩定分支後,可以從 develop 選取需要的 commits(cherry-pick),也可以等對方下一版進入 EA、RC 或 GA,再評估跟進。選取 commits 時,同樣要考慮相依性與整合影響。
後來,我觀察到系統進入穩定期,也沒有影響其他 team 的開發。TL 曾肯定當時的決定。
回頭看,TL 把選項與代價分析清楚,讓我能承擔跟進時機的取捨。這個決定接受了功能跟進的落差,也把整合與除錯可能對共同進度造成的影響放進考量。
把討論往前推的三個問題
以下是依這些原則延伸的討論問題,可依團隊情境調整:
- 我們正在比較哪些選項? 各自的理由、優缺點與仍未知的部分是什麼?
- 需要 Manager 協助的是哪個部分? 是一起判斷、做取捨,還是資源與外部協調?
- 選定方向後,誰接住下一步? 各 team 的責任與需要共同協助的部分,是否已經清楚?
文章脈絡
依我提供的團隊分工、對 TL 的期待、Manager 角色與版本選擇經驗整理。相依性故障與除錯成本描述考量的風險,不表示各種故障都在這次事件發生。版本案例的後續結果為我的觀察,TL 的肯定為我轉述的回饋;未提供觀察期間或量化驗證紀錄。說明與討論問題為編輯延伸,尚待本人確認語氣。本文不主張完整執行流程或成員成長成效。
內容修訂: — 補入跨團隊版本選擇的實際經驗、角色分工與後續觀察。
內容修訂: — 補入功能落後的代價、跨 repo 相依性風險及對共同進度的影響。