“5步”做好研發(fā)效能度量,打造研發(fā)管理閉環(huán)
效能度量,對(duì)于實(shí)施DevOps研發(fā)團(tuán)隊(duì)來說并不是一個(gè)陌生的話題。非常多的研發(fā)團(tuán)隊(duì)都想要通過效能度量提升研發(fā)團(tuán)隊(duì)的效率。關(guān)于軟件研發(fā)效能度量,也有一些標(biāo)準(zhǔn)的框架,分為交付價(jià)值、交付效率、交付質(zhì)量、交付成本、交付能力五個(gè)維度。
研發(fā)效能度量的目標(biāo)
研發(fā)效能度量的目標(biāo)是為了幫助研發(fā)團(tuán)隊(duì)了解自身的工作效率和質(zhì)量,及時(shí)發(fā)現(xiàn)問題并采取相應(yīng)措施進(jìn)行改進(jìn),以實(shí)現(xiàn)高效、高質(zhì)量的產(chǎn)品交付,滿足業(yè)務(wù)需求,實(shí)現(xiàn)業(yè)務(wù)價(jià)值。
識(shí)別瓶頸:通過度量研發(fā)過程中的關(guān)鍵指標(biāo),可以及時(shí)識(shí)別生產(chǎn)效率的瓶頸和短板,從而有針對(duì)性地對(duì)研發(fā)流程進(jìn)行優(yōu)化。
監(jiān)控進(jìn)度:研發(fā)效能度量可以幫助團(tuán)隊(duì)實(shí)時(shí)監(jiān)控項(xiàng)目進(jìn)度,發(fā)現(xiàn)問題和風(fēng)險(xiǎn),并及時(shí)采取措施加以解決。
提高效率:通過度量工作量和工作效率,團(tuán)隊(duì)可以識(shí)別工作流程中的低效環(huán)節(jié),并采取相應(yīng)的措施進(jìn)行優(yōu)化,提高工作效率。
提高質(zhì)量:通過度量產(chǎn)品質(zhì)量和測(cè)試覆蓋率等指標(biāo),可以發(fā)現(xiàn)產(chǎn)品質(zhì)量問題,及時(shí)進(jìn)行修復(fù)和改進(jìn),從而提高產(chǎn)品質(zhì)量。
研發(fā)效能度量的思路和路徑
那么如何進(jìn)行研發(fā)團(tuán)隊(duì)的效能度量呢?那就圍繞指標(biāo)分為五大步驟展開。
確定指標(biāo):團(tuán)隊(duì)和企業(yè)管理者要根據(jù)項(xiàng)目需求和團(tuán)隊(duì)情況選擇合適的指標(biāo)進(jìn)行度量。
設(shè)定目標(biāo):團(tuán)隊(duì)和企業(yè)管理者要共同設(shè)定目標(biāo),例如每個(gè)迭代的交付頻率、產(chǎn)品質(zhì)量指標(biāo)等。
收集數(shù)據(jù):團(tuán)隊(duì)和企業(yè)管理者要共同收集數(shù)據(jù),例如每個(gè)迭代的缺陷數(shù)量、交付時(shí)間等。
分析數(shù)據(jù):團(tuán)隊(duì)和企業(yè)管理者要對(duì)收集到的數(shù)據(jù)進(jìn)行分析,找到問題和改進(jìn)方向。
反饋和改進(jìn):團(tuán)隊(duì)和企業(yè)管理者要將分析結(jié)果反饋給團(tuán)隊(duì)成員,共同討論改進(jìn)方向并進(jìn)行優(yōu)化。
1、確定指標(biāo)
行業(yè)內(nèi)有結(jié)構(gòu)化的指標(biāo)體系,從需求、設(shè)計(jì)、開發(fā)、測(cè)試、發(fā)布、運(yùn)維等不同的階段,對(duì)應(yīng)著不同的指標(biāo)。但是需要提醒一點(diǎn),搭建指標(biāo)體系不是越全越好,而是要根據(jù)團(tuán)隊(duì)所處的不同階段,遇到的不同問題,最主要的是想要通過指標(biāo)解決哪些問題,然后進(jìn)行指標(biāo)的設(shè)計(jì)與體系的搭建。

效能度量可以采用多種指標(biāo),可以分為質(zhì)量、效率、成本、客戶滿意度等方面。以下是眾安常用的效能度量指標(biāo):

這些指標(biāo)不是固定的,團(tuán)隊(duì)和企業(yè)管理者可以根據(jù)項(xiàng)目需求和團(tuán)隊(duì)情況選擇合適的指標(biāo)進(jìn)行度量,同時(shí)也可以結(jié)合其他指標(biāo)和方法進(jìn)行分析和改進(jìn)。
2、設(shè)定目標(biāo)
設(shè)定目標(biāo)一定要遵循SMART原則:
Specific(具體的):目標(biāo)應(yīng)該是具體且明確的,能夠清晰傳達(dá)出想要達(dá)到的結(jié)果,避免模糊和含糊不清的描述。
Measurable(可衡量的):目標(biāo)應(yīng)該是可衡量的,可以使用數(shù)據(jù)和指標(biāo)進(jìn)行可視化,跟蹤進(jìn)展情況,避免主觀性和無法量化的目標(biāo)設(shè)定。
Achievable(可達(dá)成的):目標(biāo)應(yīng)該是可達(dá)成的,要考慮到實(shí)際情況和可用資源,確保目標(biāo)是可實(shí)現(xiàn)的,并且具有挑戰(zhàn)性和激勵(lì)性。
Relevant(相關(guān)的):目標(biāo)應(yīng)該是相關(guān)的,與業(yè)務(wù)需求和戰(zhàn)略一致,能夠?qū)?shí)現(xiàn)業(yè)務(wù)目標(biāo)產(chǎn)生正面影響,避免無意義的目標(biāo)設(shè)定。
Time-bound(有時(shí)間限制的):目標(biāo)應(yīng)該是有時(shí)間限制的,要設(shè)定明確的截止日期和時(shí)間表,以確保目標(biāo)得到及時(shí)實(shí)現(xiàn)和跟蹤。
但是,設(shè)定目標(biāo)之前,要對(duì)研發(fā)團(tuán)隊(duì)進(jìn)行現(xiàn)狀分析,比如:當(dāng)前團(tuán)隊(duì)的需求平均交付周期是20天(需求從創(chuàng)建到上線),部門例會(huì)上研發(fā)負(fù)責(zé)人會(huì)經(jīng)常被業(yè)務(wù)負(fù)責(zé)人挑戰(zhàn),20天太久,為什么提一個(gè)需求,需要做那么久。迫于壓力,研發(fā)負(fù)責(zé)人做出承諾,要在幾月份之前,將需求的平均交付周期從20天縮短到10天。這個(gè)承諾,就是為團(tuán)隊(duì)設(shè)定了一個(gè)明確的、有時(shí)間限制、具體可衡量的目標(biāo)。
3、收集數(shù)據(jù)
收集數(shù)據(jù)有很多方法,可以通過一些工具獲取指標(biāo)需要的數(shù)據(jù),也可以通過腳本直連數(shù)據(jù)庫獲取相應(yīng)的數(shù)據(jù)。眾安團(tuán)隊(duì)搭建效能度量駕駛艙時(shí),通過集智BI工具拉取數(shù)據(jù)源的數(shù)據(jù),然后經(jīng)過加工處理后進(jìn)行可視化配置。

4. 分析數(shù)據(jù)

軟件研發(fā)效能的提升是復(fù)雜的,受到諸多因素的影響,因素與結(jié)果之間存在相關(guān)關(guān)系而不是因果關(guān)系。即使我們發(fā)現(xiàn)兩組數(shù)據(jù)之間有關(guān)聯(lián),也不意味著其中一組必然會(huì)導(dǎo)致另一組。例如,如果某個(gè)團(tuán)隊(duì) “代碼技術(shù)債率”指標(biāo)很高,一般情況下代表著代碼中存在的很多問題被暫時(shí)擱置,未來持續(xù)維護(hù)的成本和技術(shù)風(fēng)險(xiǎn)很大,那么從較長時(shí)間周期來看,很有可能 “交付周期”的指標(biāo)會(huì)持續(xù)增長,即兩組指標(biāo)之間存在相關(guān)性。但這并不是必然的因果關(guān)系,雖然技術(shù)債很多,但很有可能因?yàn)槿藛T能力、突擊加班等其他因素暫時(shí)掩蓋了問題,表面上沖抵了這種趨勢(shì)。
但從研發(fā)效能分析的角度來看,我們?nèi)匀豢梢詮臍v史數(shù)據(jù)中分析相關(guān)性,然后通過實(shí)驗(yàn)的方式進(jìn)行探索,找到能夠切實(shí)驅(qū)動(dòng)效能提升的因素進(jìn)行持續(xù)干預(yù)。比如,想提升線上質(zhì)量、降低缺陷密度,經(jīng)驗(yàn)告訴我們應(yīng)該去加強(qiáng)單元測(cè)試的覆蓋、完善 Code Review 機(jī)制、做好自動(dòng)化測(cè)試案例的補(bǔ)充。但是,這真的有效么?我們通過數(shù)據(jù)來看,很可能沒有任何效果!并不是說這些實(shí)踐不該做,而是可能做的不到位。也許只是為了指標(biāo)好看,編寫缺少斷言的單元測(cè)試、找熟人走過場(chǎng)分分鐘通過的代碼評(píng)審,覆蓋一些非熱點(diǎn)代碼來硬湊測(cè)試覆蓋率目標(biāo)等等。所以,我們需要實(shí)驗(yàn)思維,要不斷檢視、反思、檢討所采用的實(shí)踐,哪些實(shí)踐的確有效,哪些實(shí)踐效果不大,哪些實(shí)踐方向正確,但因執(zhí)行不到位所以效果才不及預(yù)期。我們要通過實(shí)驗(yàn)找到那些真正有用的改進(jìn)活動(dòng)及其與結(jié)果之間的相關(guān)性關(guān)系,有的放矢采取行動(dòng)才會(huì)更有效率和有效果。
5、反饋和改進(jìn)
效能度量不能止步于數(shù)據(jù)本身。研發(fā)管理者緊盯數(shù)據(jù),可能導(dǎo)致自上而下的面子工程或教條主義,效果適得其反。
研發(fā)管理者要通過度量大盤的指標(biāo)數(shù)據(jù)進(jìn)行下探分析,首先對(duì)數(shù)據(jù)進(jìn)行多視角的分析與解讀,獲取有效洞察;進(jìn)而結(jié)合其他關(guān)聯(lián)指標(biāo)和調(diào)查方法,追問根因,定位效能瓶頸和優(yōu)化機(jī)會(huì);最終將這些洞見落地為明確、可執(zhí)行、可驗(yàn)證的改進(jìn)方案,規(guī)范研發(fā)過程、建立起良好的研發(fā)文化。
效能改進(jìn)不能靠階段性沖刺。要達(dá)到有效且可持續(xù)的效能改進(jìn),需要將度量和改進(jìn)的實(shí)踐融入日常研發(fā)流程,持續(xù)追蹤,持續(xù)改進(jìn)。
效能度量是研發(fā)效能管理閉環(huán)的關(guān)鍵一環(huán)。在基于數(shù)據(jù)解讀制定改進(jìn)方案后,需要持續(xù)度量觀察效能趨勢(shì),對(duì)改進(jìn)后的指標(biāo)數(shù)據(jù)進(jìn)一步分析解讀,對(duì)改進(jìn)方案的有效性做出快速反饋。若改進(jìn)推進(jìn)一段時(shí)間后,繼續(xù)提升效果不明顯,邊際效應(yīng)降低,這一機(jī)制也有助于團(tuán)隊(duì)快速判斷,及時(shí)將資源投入下一個(gè)改進(jìn)項(xiàng)。
關(guān)于反饋和改進(jìn),最推薦的是回顧會(huì)+PDCA模型。這個(gè)組合也是眾安團(tuán)隊(duì)在工作中使用最多的。
總結(jié)
在數(shù)字化時(shí)代的大背景下,信息技術(shù)是驅(qū)動(dòng)企業(yè)發(fā)展的關(guān)鍵,依托于DevOps提升研發(fā)效能已經(jīng)成為企業(yè)的核心競爭力。堅(jiān)持?jǐn)?shù)據(jù)驅(qū)動(dòng),通過正確的效能度量方法,可以讓研發(fā)效能可量化、可分析、可改進(jìn)、可提升。