提升研發交付速率,從正確的指標管理開始

語言: CN / TW / HK

每當提及「研發效能」,我們都在談論什麼?

研發效能管理要在保證質量的前提下,思考如何更快地向客戶交付價值。在管理實踐中,效能度量涉及三大維度:交付速率交付質量交付價值

技術團隊對內如何優化開發流程,以提升交付速率和質量?對外如何圍繞價值交付,與產品、業務側同事開展緊密高效的研發協作?在眾多急需攻破的效能難題中,Cycle Time 都是極為關鍵的速率管理髮力點。

01 是什麼 Cycle Time?

Cycle Time 原是精益生產的專業術語,描述了某個工序製造一單位產品或某過程完成一個工作迴圈所需的平均完整時間,可以確定機器或工序的生產能力和效率。

在軟體研發中,Cycle Time 是指技術團隊從頭到尾完成一單位研發工作平均需要的時間,即研發工作從進入開發到釋出上線所經歷的平均時間

02 為什麼應該關注 Cycle Time?

Cycle Time 是反映技術團隊工作速率的結果度量指標,可以幫助團隊識別障礙、有的放矢地優化改進並實現更快更好的價值交付。

  • 更快地響應。 縮短 Cycle Time 的本質是更快地向客戶交付價值,響應變化。
  • 識別障礙和待改進空間。 跟蹤對比多專案或跨週期的 Cycle Time 有助於識別和定位效能瓶頸,便於及時調整優化。
  • 及時反饋,避免浪費。 分析優化前後的 Cycle Time 可以快速掌握優化效果,輔助進一步決策,避免長時間的空耗和等待。
  • 提供風險預警支撐。 以歷史和平均 Cycle Time 為效率基準,在過程管理中為風險預警和進度管理提供資料輔助。

總的來說,研發團隊應該持續跟蹤 Cycle Time,靈敏地識別開發過程中的效能瓶頸,並通過建立標準、流程優化、任務拆分等持續改進,增強組織敏捷性,提高開發速率,快速交付價值。

03 如何計算 Cycle Time?

前面說到,Cycle Time 表示一單位研發工作經歷從「進入開發」到「釋出上線」平均需要的完整時間。

為了便於計算,此處定義一單位研發工作為「Git 中的一個工程任務」。在管理實踐中,一單位研發工作也可以是一個故事點數、一個使用者故事等等。

技術團隊需要提前約定開發流程中每個環節「工作開始」和「工作完成」的標準,並確保所有人都為此達成共識。

  1. 編碼時間:DoR 是技術團隊需求准入的標準,因此編碼時間是「需求符合 DoR 要求,抵達技術團隊」到「完成編碼,發起 Pull Request 請求」的平均時間。
  2. 拾取時間:從「發起合併請求」到「程式碼審查開始」的等待時間為程式碼拾取時間。拾取時間越短,說明跨職能的技術團隊協作越緊密,審查過程越健康。
  3. 審查時間:一般將「首條評論產生的時間」視作程式碼審查的起點,而「分支確認合併」則是程式碼審查結束的標誌。
  4. 部署時間:常以「分支確認合併」為始,以「新程式碼成功同步到生產環境」為終。

基於清晰統一的節點標準,技術團隊就可以計算各個環節的平均工作週期,並通過平均值加總得到 Git 工程任務的 Cycle Time。

同時,結合不同環節的耗時分佈和交付數量,技術團隊還可以制定流程規範和優化方案,將效能瓶頸逐個擊破。

圖片

04 如何縮短編碼時間,提高效率?

技術團隊的編碼週期過長,可能有以下原因:

  • 需求很複雜:功能複雜、耦合度高、顆粒度大的研發任務通常需要花費更多時間。
  • 需求不明確:使用者調研或需求分析不到位、產品頻繁變更都會拉高溝通成本,多次返工和變更也會影響程式碼質量和速率。
  • 需求太難了:開發人員缺乏專案必備的專業知識,邊學邊做,或者突現計劃外的技術難題都會制約開發效率。
  • 流程繁瑣混亂:程式碼提測路徑長、被頻繁打斷而無法專注於程式碼實現,都是工作流程不優導致的效能瓶頸。
  • 重複的機械勞動:程式碼手動 Commit、人為的訊息通知和任務指派也是對技術團隊精力和時間的極大浪費。

因此,提高技術團隊的編碼效率可以從流程規範和優化、自動化工具的投入,和能力提升與培養三個角度入手。

1. 建立流程標準和協作規範,把控准入需求

開展工作的前提是保證技術團隊一直在交付最有價值的事情,因此可以採用敏捷開發方法,對需求進行價值排序,確定優先順序。

第二,同產品團隊一起建立協作流程規範,並明確需求准入的標準(DoR),說明含需求粒度、任務拆分和分解、相關的上下文和說明檔案等在內的要求。通過加強起點的把控,提升開發速率。

2. 構建內部知識庫,將繁複的操作和流程自動化

合理利用優質開源專案、時興的效率工具與自動化外掛,加快程式碼編寫的速度並提高質量,以減輕語法檢查、手動提交等事務性工作的壓力。

同時,鼓勵開發人員積極溝通,定期舉辦內部知識分享會,促進相互學習;建立程式碼知識庫,收納相關程式碼以供檢索和複用,避免低效和浪費。

3. 規範開發標準和良好習慣,持續學習

由上至下地推行統一的程式碼規範,鼓勵開發人員遵循最佳實踐,例如編寫乾淨、文件齊全的程式碼和使用一致的編碼約定,減少除錯和故障排除的時間。

定期組織培訓或展開指導,持續瞭解新技術,學習新知識,嘗試新工具。不斷精進專業實力的同時,主動擴充套件知識頻寬。

LigaAI 總結一下

Cycle Time 是衡量技術團隊開發速率和交付能力的重要指標。在相同的交付質量和價值度量的前提下,更短的 Cycle Time 意味著研發團隊能更快地響應市場和需求的變化,更快地向用戶交付價值。

Cycle Time 表示研發工作從符合 DoR 並進入技術團隊起,到釋出上線所需的平均完成時間,與編碼、拾取、評審和部署的週期皆有聯絡。其中,控制好需求准入標準,合理利用新興技術和專案都有助於縮短編碼週期,加快開發速率。


關注研發效能,專注科學管理。LigaAI 將持續分享更多研發效能度量體系的搭建經驗,以及度量指標管理方法等乾貨內容,助力研發團隊擊碎效能瓶頸。

請持續關注 LigaAI@oschina 帳號,獲取更多資訊。

也期待您點選 LigaAI - 新一代智慧研發協作平臺,線上申請體驗我們的產品,與 LigaAI 一起做大做強💪