主頁 > 軟體工程 > 阿里如何定義團隊的研發效能?

阿里如何定義團隊的研發效能?

2021-09-27 17:32:38 軟體工程

簡介: 簡介: 作者:何勉,阿里巴巴研發效能部資深技術專家,因為身處研發效能部,我接觸了公司很多產品技術團隊,他們幾乎都把研發效能提升列為了本財年的重要目標,大部分還為此成立專項,如此我們又如何去提升它呢?   阿里云云效效能洞察產品正在灰度測驗中,立即測驗體驗   作者:何勉,阿里云云效資深技術專家   因為身處研發效能部,我接觸了公司很多產品技術團隊,他們幾乎都把研發效能提升列為了本財年的重要目標,大部分還為此成立專項,然而,對于什么是好的研發效能,卻很少能被清晰定義,如此,我們又如何去提升它呢?   針對這個問題,本文將明確定義研發效能,并提供度量它5個指標,為研發效能的提升指明目標,并衡量提升的效果,本文也是關于研發效能提升及產品交付方法系列文章的開篇,為之后介紹的產品交付方法是否有效設立了標準,      

效率豎井是研發效能改進的最大問題

產品交付需要前后職能(如:產品、開發、測驗等)和平行部門(如:前端、后端、演算法等)的協作,傳統方法更多關注各個職能和部門的獨立改進,然而,過度區域優化,往往導致效率豎井,反而損害整體效率,     什么是效率豎井呢?上圖描述了傳統開發方式下,產品交付面臨的普遍困境——各職能和部門區域優化帶來一系列問題,如:   基于區域資訊的作業優先級安排,造成不同部門和職能間相互等待,讓需求無法順暢流動,比如前、中、后臺對作業的優先處理不一致,進度無法對齊,讓已經開始的需求不能及時交付, 批量式的作業移交,帶來進一步等待,為了最大化單個環節的效率,各職能往往傾向于批量接受和移交作業,如批量的集成,批量的轉測等,進一步造成需求在程序中的積壓和等待,   跨部門的問題,經常得不到及時和有效的處理,公共環境的維護,就是一個典型的問題,是影響用戶需求的順暢交付,程序中需求跨部門的有效澄清、介面對齊、問題排查是另一些常見的公共問題,它們都會造成需求無法順暢進展,   以上只是一部分問題,它們共同作用,結果是:站在各自的視角,每個部門都覺得自己繁忙且“高效”;然而,站在全域和業務的視角,系統對外的反應卻非常遲緩,這就是所謂效率豎井, 效率豎井:由區域優化導致,表現為:各個環節和部門繁忙而“高效”,但總體的效率和回應速度卻很低,它是研發效能提升的普遍癥結所在,       上圖的折線反映了效率豎井下,單個需求的交付程序,綠色線表示需求正在被處理,紅色線則表示需求在等待中,作業量不大的需求,交付周期卻很長,因為大部分時間需求都處于等待狀態,各個區域一片繁忙,外部卻抱怨連連,相信很多人會感同身受,  

“持續快速交付價值的能力”是效能改進的核心目標

要改進研發效能,我們必須走出效率豎井,為此組織必須把改進的焦點從關注各個資源環節,轉向關注整個系統,     上圖反映了效能改進的關鍵——從以區域資源效率為核心,轉變為價值流動效率為核心的改進,   資源效率指的是,各環節的資源利用率和產出情況,如:資源的忙閑程度、使用率、代碼產出和測驗執行速度等,流動效率指的是,用戶價值在系統中的流動速度,如:用戶需求從提出到交付的時長,它越短越好;或者是程序中等待時間的占比,它越小越好,   用戶價值的流動是串起整個系統,促進整體優化的不二選擇,為了提高價值的流動效率,組織就必須關注用戶價值在系統中端到端的流動程序,改進整個系統,而不僅僅是區域環節,以此為基礎,效能改進的目標是:持續快速交付價值的能力,這也是對研發效能的基本定義,   持續快速交付價值的能力,是研發效能的核心定義,為此我們必須把改進的焦點從區域資源效率,轉向價值流動效率,以保證全域和系統的優化,  

研發效能的度量——五組指標回答研發效能的根本問題

以上定性的定義了研發效能,管理學之父德魯克說:“如果你不能度量它,就無法改進它”,度量幫助我們更深刻認識研發效能,設定改進方向,并衡量改進效果,

 

產品開發程序中會產生大量的資料,但資料不是度量,好的度量的標準是:它要為回答一個根本的問題講述完整的故事,效能度量要回答的根本問題就是:一個組織“持續快速交付價值的能力”怎么樣?

 

為回答這個問題,應該提供怎樣的一個完整故事呢?基于在天貓新零售、閑魚、優酷、阿里健康、研發中臺、阿里云等部門持續實踐和探索,我們發展并驗證了系統的研發效能指標體系,如上圖所示,它由5組指標構成,分別是:           第一:持續發布能力,具體包含兩個細分指標,分別是:   發布頻率, 團隊對外回應的速度不會大于其交付頻率,發布頻率約束團隊對外回應和價值的流動速度,它的衡量標準是單位時間內的有效發布次數,   發布前置時間(也被稱為變更前置時間),也就是從代碼提交到功能上線花費的時間,它體現了團隊發布的基本能力,如果時間開銷很大,就不合適加大發版頻率,   第二:需求回應周期,具體包含兩個細分的指標,分別是:   交付周期時間,指的是從確認用戶提出的需求開始,到需求上線所經歷的平均時長,它反映團隊(包含業務、開發、運營等職能)對客戶問題或業務機會的回應速度;   開發周期時間,指的是從開發團隊理解需求開始,到需求可以上線所經歷的平均時長,它反映技術團隊的回應能力,   區分交付周期和開發周期,是為了解耦并明確問題,以做出針對性的改進,其中,交付周期是最終的目標和檢驗標準,   第三:交付吞吐率,指的是單位時間內交付需求的數量,關于這一點,常見的問題是,個數能準確反映交付效率嗎?這是個問題,所以,我們更多強調單個團隊的需求吞吐率的前后對比,統計意義上它足以反映趨勢和問題,   第四:交付程序質量,它包含兩個細分的指標,分別是:   開發程序中缺陷的創建和修復時間分布,我們希望缺陷能夠持續和及時地被發現,并且在發現后盡快修復;   缺陷庫存,我們希望在整個開發程序中控制缺陷庫存量,讓產品始終處于接近可發布狀態,奠定持續交付的基礎,   交付程序質量的核心是內建質量,也就是全程序和全時段的質量,而非依賴特定的階段,如測驗階段;或特定的時段,如專案后期,內建質量是持續交付的基礎,關于其具體度量方法,下文會給出詳細實體,   第五:對外交付質量, 它包含兩個細分的指標,分別是:1)單位時間的故障(線上問題)數;2)故障平均解決時長,這兩者共同決定了系統的可用性,     如上圖所示,這5組指標,從流動效率、資源效率和質量三個方面講述了一個完整的故事,回答了組織持續交付價值的能力如何這個核心問題,其中,持續發布能力和需求回應周期這兩組指標反映價值的流動效率;吞吐率反映資源效率;交付程序質量和對外交付質量這兩組指標共同反映質量水平,  

一度量指標實體:缺陷趨勢圖

  針對這些指標,云效提供了豐富的度量圖表,后續云效產品團隊還會進行場景化的梳理,提高其可用性,我會及時跟進,用專門的文章介紹云效的完整度量方案,在這里我先介紹一個例子——關于程序質量的度量圖表,   “缺陷趨勢圖”是云效新設計的度量圖表,它反映交付程序中缺陷發現和移除的時間分布,以及缺陷的庫存趨勢,       如上圖所示,圖形的橫坐標是日期,橫坐標上方紅色豎條代表這一天發現缺陷數量;橫坐標下方綠色豎條代表當天解決的缺陷數量;橙色曲線代表缺陷存量,圖中左右兩個部分比較了兩種交付模式,   左半部分,團隊屬于小瀑布的開發模式,“迭代”前期,團隊集中設計、編碼,引入缺陷,但并未即時地集成和驗證,缺陷一直掩藏在系統中,直到專案后期,團隊才開始集成和測驗,缺陷集中爆發,   小瀑布模式下,程序質量差,帶來大量的返工、延期和交付質量問題,該模式下,產品的交付時間依賴于何時缺陷能被充分移除,當然不能做到持續交付,也無法快速回應外部的需求和變化,并且,這一模式通常都導致后期的趕工,埋下交付質量隱患,   右半部分,團隊開始向持續交付模式演進,在整個迭代程序中,團隊以小粒度的需求為單位開發,持續地集成和測驗它們,即時發現和解決問題,缺陷庫存得到控制,系統始終處于接近可發布狀態,這一模式更接近持續發布狀態,團隊對外的回應能力隨之增強,   缺陷趨勢圖從一個側面反映了團隊的開發和交付模式,它引導團隊持續且盡早發現缺陷并及時移除它們,控制缺陷庫存,讓系統始終處于接近可發布狀態,保障了持續交付能力和對外回應能力,   缺陷趨勢圖是云效研發效能度量圖表中的一個,后面,我會用專門的文章系統地解讀這些圖表的使用,   效能改進的目標設定:部分團隊的2-1-1愿景   以上,我們介紹了研發效能度量,基于這樣的度量體系,應該設定怎樣的目標呢?我們在多個團隊的實施程序中,逐漸沉淀出了可供參考的目標體系,它可以總結為三個數字——“2-1-1”,   “2-1-1”最初來自天貓新零售,其后在閑魚和研發中臺、阿里云等團隊完善和采用,什么是“2-1-1”呢?   “2"指的2周的交付周期,85%以上的需求可以在2周內交付;   第一個“1”指的是1周的開發周期,85%以上的需求可以在1周內開發完成;   第二個“1”指的是1小時的發布前置時間 - -提交代碼后可以在1小時內完成發布,   達成“2-1-1”的愿景并不容易,1小時的發布前置時間,需要持續交付流水線,產品架構體系和自動測驗、自動部署等能力的提升,1周的開發周期,涉及更多的能力和實踐,如:需求的拆分和管理,開發團隊的分工協作模式,以及持續集成和持續測驗實踐;最困難的則是2周的交付周期,首先它要以另外兩個指標為基礎,同時還涉及整個組織各職能和部門的協調一致和緊密協作;   “2-1-1”的目標都是關于流動效率的,你可能會問,那資源效率和質量呢?我們專注于流動效率,是因為它是組織效能改進的抓手,能夠觸發深層次的和系統性的改進,就像上面分析的,為達成“2-1-1”目標,團隊需要技術、管理、協作等方面的全面實踐升級,而這些實踐的落地,必然會帶來資源效率和質量的提升,并體現到相應的度量指標上,   當然,“2-1-1”是源自特定的團隊,并非所有團隊都要使用同樣的值,比如對于涉及硬體開發的團隊,兩周的交付周期通常過于挑戰,組織應根據自己的背景關系設定恰當的目標,重要的是,它要指明改進的方向,

總結

本文定義了研發效能,它指的是一個組織持續快速交付價值的能力,可以從流動效率、資源效率和質量三個方面來衡量,其中流動效率是改進研發效能的核心抓手,它帶來系統和全域的改進,   如上圖所示,研發效能最終為組織效能服務,必須體現到利潤、增長、客戶滿意度等組織效能上;同時,研發效能的提升要落實到具體技術和管理的實踐中,才可能發生,   定義和度量是提升研發效能的基礎,相信你更關心提升研發的具體實踐和方法,后續我將綜合多個團隊的實踐,介紹可操作的實踐體系和落地方法,

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/303445.html

標籤:其他

上一篇:云效Flow流水線源中Jenkins源該如何配置

下一篇:云效Flow流水線源中Jenkins源該如何配置

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more