項目結束,休一個長假,從忙碌中停下來才發現,身體的困乏無法掩飾思想的空洞,是以半夜爬起來(估計是下午茶喝多了,人還是不能太安逸)。
上個項目是我這次換工作的第一個項目,我的角色是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.對外部幹擾進行管控,保證開發人員的開發時間。
完~