Tech Lead 實踐
專案結束,休一個長假,從忙碌中停下來才發現,身體的睏乏無法掩飾思想的空洞,所以半夜爬起來(估計是下午茶喝多了,人還是不能太安逸)。
上個專案是我這次換工作的第一個專案,我的角色是Tech Lead,這個專案依舊保持了90%專案的特點,時間緊,任務重,新建團隊。幸好這個專案比較大,有兩個scrum team, 所以有兩個Tech Lead,我們根據各自的特長進行分工。這次是我第一次以Tech Lead的角色進入專案,所以有很多做的不足,希望通過這次總結能對Tech Lead有新的認識。
Tech Lead的職責:
Scrum 團隊在Tech Lead的選擇上一般會選擇經驗豐富,技術熟練的開發人員來擔任,只從字面來看,Tech=技術上有所長,Lead=管理上有建樹
目前我整理了Tech Lead的三個主要職責:1.技術決策,2.流程管控,3.連線。
技術決策
根據我們在上一個專案的經驗來看, Tech Lead要負責專案開發生命週期中所有技術相關的問題,1.架構;2.根據專案人員技術棧決定專案技術棧及開發工具;3.提前規劃專案在整合,測試,部署階段的工作;4.提前對專案中的關鍵技術安排人員進行驗證(注:別人解決不了的問題,自己上);5.程式碼審查;6.story point 估算。
建議:
1.多和架構師針對專案架構進行溝通,深刻理解需求
2.對程式碼質量進行定義,程式碼審查時注意bad smell,大類,大方法,考慮效能,考慮IO操作及資料庫等資源的釋放。
3.安排團隊對程式碼進行討論並重構.
4.建議對專案所有story進行整理,然後使用德爾菲法對專案進行初步估算,避免撲克牌估算的效率低下,如果時間緊急,可以在德爾菲法技術上使用PERT。
5.關鍵點安排結對程式設計。
6.非功能性需求往往佔用專案40%的時間。
7.早起建立需求理解的計劃,幫助團隊成員理解需求。
流程管控
嚴格要求專案按組織要求進行開發,在軟體開發生命週期中,組織對過程又嚴格的定義,比如DevOps,TDD,BDD等。Tech Lead瞭解軟體開發過程中的所有環節,所以能夠對流程進行管控,這裡強調組織要求及組織文化,避免自傷。
建議:
1.使用持續整合–>堅持使用持續整合,如果不能提交構建,至少每日構建。
2.建議TDD而非Unit,TDD或者Unit一定要有,如果可能,請加把勁跑起來BDD。
2.對程式碼release標準進行定義,在專案初期定義release的程式並在後期不斷維護。程式碼覆蓋率標準,程式碼缺陷嚴重等級定義及修復時間
3.QA及開發的溝通方式定義。
4.效能測試。
連線
有專案就有溝通,有出資人,有受益人,有使用者,有開發人員,還有運維人員等等,Tech Lead連線了BA,SA,DEV多個角色,是技術團隊與外界的橋樑,在開發過程中取得團隊內部各個角色的支援,建立良好的溝通環境是基礎。
Tech Lead與BA:Tech Lead是需求接收者,是需求到技術語言的轉化者
Tech Lead與PA:Tech Lead是團隊節奏的實際操控者,是業務功能的交付代表
Tech Lead與SA:Tech Lead是專案架構的實踐者
Tech Lead與DEV:Tech Lead是導師更是戰友
建議:
1.每個月安排與各個角色至少進行一次one one溝通。提前準備好溝通的大綱,沒有準備的溝通都是耍流氓。
2.對干係人進行登記並分析。
3.對外部干擾進行管控,保證開發人員的開發時間。
完~