指標(biāo),這是軟件研發(fā)管理繞不過(guò)去的話(huà)題,這也是大家一直以來(lái)的管理慣例。
不過(guò),在如今內(nèi)卷至混亂的年代,沒(méi)有太多數(shù)理邏輯的量化指標(biāo)頻頻受到質(zhì)疑,為什么是5%,不是6%;實(shí)際項(xiàng)目如此復(fù)雜,固定的指標(biāo)合理嗎?
質(zhì)疑并非沒(méi)有道理,但指標(biāo)存在的意義不在于能夠應(yīng)對(duì)這些質(zhì)疑。我們可以從另外兩個(gè)角度理解:
- 此為無(wú)奈之舉,簡(jiǎn)化至可以理解和管控的可量化指標(biāo),是認(rèn)識(shí)的需要,也是管理的抓手。
- 指標(biāo)既會(huì)作為具備相當(dāng)一致性的成熟產(chǎn)品或團(tuán)隊(duì)的績(jī)效表征,也是將不成熟推向成熟的手段,而且推動(dòng)意義大于表征意義。
既然仍然需要指標(biāo),本文會(huì)匯總對(duì)汽車(chē)軟件相對(duì)有價(jià)值的度量指標(biāo),以供大家選用。
1 需求規(guī)模
需求規(guī)模=需求大小或顆粒度
該指標(biāo)反映了單個(gè)需求交付及開(kāi)發(fā)的復(fù)雜度,如果能對(duì)需求規(guī)模進(jìn)行比較好的拆分與估算,十分有利于項(xiàng)目計(jì)劃與工作量的合理規(guī)劃。
按照不同的項(xiàng)目或產(chǎn)品類(lèi)型,可以使用故事點(diǎn)、feature、功能點(diǎn)、對(duì)應(yīng)代碼當(dāng)量等維度來(lái)評(píng)價(jià)。
2 需求交付周期
需求交付周期=需求釋放時(shí)間-需求創(chuàng)建時(shí)間
該指標(biāo)反映了團(tuán)隊(duì)對(duì)新需求的評(píng)估及交付速率,這也體現(xiàn)了敏捷宣言中擁抱變化的力度。
算法里的需求釋放時(shí)間可以按照系統(tǒng)里需求通過(guò)評(píng)審釋放或變更經(jīng)過(guò)CCB批準(zhǔn)釋放的時(shí)間來(lái)定義,而需求創(chuàng)建時(shí)間可以按照系統(tǒng)里需求打基線(xiàn)或者提交的時(shí)間來(lái)定義。
3 需求變更率
需求變更率=發(fā)生過(guò)變更的需求數(shù)/已釋放的需求總數(shù)
該指標(biāo)反映了對(duì)變更控制的能力,在傳統(tǒng)汽車(chē)瀑布式開(kāi)發(fā)下,對(duì)變更控制的能力也會(huì)指向管理的水平,但敏捷時(shí)代下,低需求變更率甚至是負(fù)面的表征。
算法里的需求數(shù)可以按照需求管理系統(tǒng)里的條目數(shù)或者需求文本的數(shù)量來(lái)統(tǒng)計(jì)。
4 開(kāi)發(fā)交付周期
開(kāi)發(fā)交付周期=軟件發(fā)布時(shí)間-需求釋放時(shí)間
該指標(biāo)反映了開(kāi)發(fā)團(tuán)隊(duì)的開(kāi)發(fā)效率,算法里的軟件發(fā)布時(shí)間可以按照軟件打包發(fā)布的時(shí)間來(lái)定義,而需求釋放時(shí)間可以按照系統(tǒng)里需求通過(guò)評(píng)審釋放或變更經(jīng)過(guò)CCB批準(zhǔn)釋放的時(shí)間來(lái)定義。
軟件發(fā)布通常會(huì)區(qū)分內(nèi)部發(fā)布和外部發(fā)布,可以根據(jù)實(shí)際業(yè)務(wù)需求來(lái)選擇度量方式。
需求吞吐量=統(tǒng)計(jì)周期內(nèi)交付的需求規(guī)模
該指標(biāo)與需求交付周期度量的目標(biāo)接近,但交付周期側(cè)重于單位需求的交付效率,吞吐量關(guān)注的則是整體產(chǎn)能。
算法里的統(tǒng)計(jì)周期可以按照月度或季度來(lái)統(tǒng)計(jì)。
需求按時(shí)交付率=按時(shí)交付的需求數(shù)/計(jì)劃交付需求數(shù)
該指標(biāo)反映了需求按時(shí)交付的能力。
算法里的數(shù)量可以按照需求管理系統(tǒng)里的條目數(shù)或者變更管理系統(tǒng)里工作項(xiàng)數(shù)量來(lái)統(tǒng)計(jì)。
需求評(píng)審?fù)ㄟ^(guò)率=通過(guò)評(píng)審釋放的需求數(shù)/提交評(píng)審的需求數(shù)
該指標(biāo)反映了需求提出者撰寫(xiě)需求的能力,也會(huì)反映出對(duì)需求上線(xiàn)進(jìn)行整體規(guī)劃的能力。
算法中的需求數(shù)可以按照需求管理系統(tǒng)里的條目或者變更管理系統(tǒng)里工作項(xiàng)的數(shù)量來(lái)統(tǒng)計(jì)。
8 需求評(píng)審缺陷密度
需求評(píng)審缺陷密度=需求評(píng)審檢出缺陷數(shù)/需求規(guī)模
該指標(biāo)反映了需求評(píng)審的效果。
算法中的缺陷數(shù)可以按照評(píng)審finding或者開(kāi)出的問(wèn)題項(xiàng)的數(shù)量來(lái)統(tǒng)計(jì),而需求規(guī)模可以使用故事點(diǎn)、feature、功能點(diǎn)、對(duì)應(yīng)代碼當(dāng)量等維度來(lái)統(tǒng)計(jì)。
9 設(shè)計(jì)評(píng)審?fù)ㄟ^(guò)率
設(shè)計(jì)評(píng)審?fù)ㄟ^(guò)率=通過(guò)評(píng)審的組件數(shù)/提交評(píng)審的組件數(shù)
該指標(biāo)反映了組件及接口定義和設(shè)計(jì)的質(zhì)量。
算法里的組件數(shù)可以按照軟件架構(gòu)的組件拆分來(lái)統(tǒng)計(jì)。
10 設(shè)計(jì)評(píng)審缺陷密度
設(shè)計(jì)評(píng)審缺陷密度=設(shè)計(jì)評(píng)審檢出缺陷數(shù)/設(shè)計(jì)規(guī)模
該指標(biāo)反映了設(shè)計(jì)評(píng)審的效果。
算法中的缺陷數(shù)可以按照評(píng)審finding或者開(kāi)出的問(wèn)題項(xiàng)的數(shù)量來(lái)統(tǒng)計(jì),而設(shè)計(jì)規(guī)模可以通過(guò)需求規(guī)?;蛘呓M件數(shù)來(lái)統(tǒng)計(jì)。
11 組件按時(shí)交付率
組件按時(shí)交付率=按時(shí)交付的組件數(shù)/計(jì)劃交付組件數(shù)
該指標(biāo)反映了軟件開(kāi)發(fā)人員進(jìn)行模塊或組件開(kāi)發(fā)的能力,軟件需要多組件集成后才能進(jìn)行下一步的測(cè)試和發(fā)布,各組件開(kāi)發(fā)都要按節(jié)奏協(xié)調(diào)起來(lái)。
算法里的組件數(shù)可以按照軟件架構(gòu)的組件拆分來(lái)統(tǒng)計(jì)。
12 組件復(fù)用率
組件復(fù)用率=復(fù)用的組件數(shù)/總組件數(shù)
該指標(biāo)反映了架構(gòu)設(shè)計(jì)、組件設(shè)計(jì)甚至需求溝通方面的能力,不重復(fù)造輪子、進(jìn)行復(fù)用開(kāi)發(fā)是我們所鼓勵(lì)的。
算法里的組件數(shù)可以按照軟件架構(gòu)的組件拆分來(lái)統(tǒng)計(jì)。
13 接口變更率
接口變更率=變更的接口數(shù)/總接口數(shù)
該指標(biāo)與組件復(fù)用率關(guān)注的能力接近,但組件復(fù)用率提升的是單個(gè)組件開(kāi)發(fā)的效率,接口變更率更會(huì)致力于跨組件、跨系統(tǒng)的協(xié)同開(kāi)發(fā)效率。
算法里的接口數(shù)可以按照系統(tǒng)及軟件架構(gòu)中定義的軟件接口與軟硬件接口來(lái)統(tǒng)計(jì)。
代碼開(kāi)發(fā)當(dāng)量=代碼抽象語(yǔ)法樹(shù)加權(quán)最小編輯距離
該指標(biāo)反映了代碼的邏輯量和修改代碼的工作量,排除了編程風(fēng)格、換行習(xí)慣、注釋等干擾因素,準(zhǔn)確性比傳統(tǒng)的代碼行數(shù)更好。
15 代碼提交頻率
代碼提交頻率=單位時(shí)間代碼提交次數(shù)
該指標(biāo)反映了代碼開(kāi)發(fā)的活躍度,也是敏捷中鼓勵(lì)的小步快跑提交,但有可能也會(huì)讓開(kāi)發(fā)進(jìn)行表面化的頻繁小提交,反而帶來(lái)質(zhì)量的下降。
算法中的代碼提交次數(shù)可以按照代碼配置管理系統(tǒng)中記錄的代碼變更次數(shù)來(lái)統(tǒng)計(jì)。
16 代碼重復(fù)率
代碼重復(fù)率=重復(fù)代碼的代碼規(guī)模/總代碼規(guī)模
該指標(biāo)反映了代碼的可維護(hù)性,即代碼重復(fù)率越高,代碼可維護(hù)性越差,因?yàn)槎嗵幮薷乃璧墓ぷ髁吭酱蟆_@個(gè)指標(biāo)會(huì)驅(qū)動(dòng)代碼抽象,如用函數(shù)、類(lèi)、庫(kù)、服務(wù)來(lái)封裝等。
算法中的代碼規(guī)??梢杂?/span>代碼當(dāng)量或代碼行數(shù)來(lái)統(tǒng)計(jì)。
17 代碼評(píng)審缺陷密度
代碼評(píng)審缺陷密度=代碼評(píng)審檢出的缺陷數(shù)/代碼規(guī)模
該指標(biāo)反映了代碼評(píng)審的效果。
算法中的缺陷數(shù)可以按照評(píng)審finding或者開(kāi)出的問(wèn)題項(xiàng)的數(shù)量來(lái)統(tǒng)計(jì),而代碼規(guī)??梢杂?/span>代碼當(dāng)量或代碼行數(shù)來(lái)統(tǒng)計(jì)。
18 靜態(tài)掃描缺陷密度
靜態(tài)掃描缺陷密度=靜態(tài)掃描檢出缺陷數(shù)/代碼規(guī)模
該指標(biāo)反映了編碼規(guī)范程度,如MISRA C。
算法中的缺陷數(shù)按照工具掃出來(lái)的finding統(tǒng)計(jì),而代碼規(guī)模可以用代碼當(dāng)量或代碼行數(shù)來(lái)統(tǒng)計(jì)。
19 提測(cè)成功率
提測(cè)成功率=提測(cè)成功次數(shù)/提測(cè)總次數(shù)
該指標(biāo)反映了開(kāi)發(fā)滿(mǎn)足測(cè)試準(zhǔn)入條件的水平,除了軟件質(zhì)量本身,通常也會(huì)涉及一些過(guò)程規(guī)范性要求。
算法里的提測(cè)次數(shù)可以按照真實(shí)版本或者對(duì)應(yīng)的releasenotes的數(shù)量來(lái)統(tǒng)計(jì)。
20 測(cè)試一次通過(guò)率
測(cè)試一次通過(guò)率=一次性通過(guò)測(cè)試的版本數(shù)/總測(cè)試的版本數(shù)
該指標(biāo)反映了開(kāi)發(fā)的質(zhì)量,會(huì)一定程度推進(jìn)團(tuán)隊(duì)對(duì)代碼評(píng)審或單元測(cè)試等開(kāi)發(fā)測(cè)試的重視,但是,能否通過(guò)測(cè)試終歸是來(lái)源于對(duì)測(cè)試準(zhǔn)出條件的定義,如果發(fā)布?jí)毫Υ笥谫|(zhì)量壓力,準(zhǔn)出條件形同虛設(shè),這個(gè)指標(biāo)也就失去了意義。
算法里的版本數(shù)可以按照真實(shí)版本或者對(duì)應(yīng)的releasenotes的數(shù)量來(lái)統(tǒng)計(jì)。
測(cè)試覆蓋率=測(cè)試覆蓋的條目數(shù)量/需要測(cè)試條目的總數(shù)量
該指標(biāo)反映了測(cè)試對(duì)需求或代碼的覆蓋程度,也細(xì)分為測(cè)試需求覆蓋率或測(cè)試代碼覆蓋率。
算法中的條目數(shù)量,對(duì)于需求的覆蓋,可以按照需求管理系統(tǒng)里的條目數(shù)來(lái)統(tǒng)計(jì),而對(duì)于代碼的覆蓋,可參考《汽車(chē)軟件單元測(cè)試的要點(diǎn)與意義》里的描述。
22 測(cè)試缺陷密度
測(cè)試缺陷密度=測(cè)試檢出缺陷數(shù)量/代碼規(guī)模
該指標(biāo)反映了測(cè)試的效果。
算法中的缺陷數(shù)可以按照開(kāi)出的缺陷項(xiàng)的數(shù)量來(lái)統(tǒng)計(jì),而代碼規(guī)??梢杂?/span>代碼當(dāng)量或代碼行數(shù)來(lái)統(tǒng)計(jì)。
缺陷重開(kāi)率=重新打開(kāi)缺陷數(shù)量/總?cè)毕輸?shù)量
該指標(biāo)反映了缺陷修復(fù)的效果,重開(kāi)率高組件或團(tuán)隊(duì)?wèi)?yīng)進(jìn)行針對(duì)性的分析與改進(jìn)。
算法中的重新打開(kāi)缺陷可能需要缺陷管理工具配置對(duì)應(yīng)的字段來(lái)統(tǒng)計(jì)。
缺陷階段移除率=某一階段引入中移除的缺陷數(shù)量/該階段引入的總?cè)毕?/span>數(shù)
該指標(biāo)反映了特定階段的活動(dòng)或團(tuán)隊(duì)對(duì)于缺陷的整體貢獻(xiàn),自己帶來(lái)的缺陷最好自己帶走。
算法中的階段移除(這里的移除指在該階段發(fā)現(xiàn))和引入缺陷數(shù)都需要依賴(lài)缺陷管理工具配置的特定字段來(lái)統(tǒng)計(jì)。
缺陷逃逸率=后期發(fā)現(xiàn)的缺陷數(shù)量/總?cè)毕輸?shù)量
該指標(biāo)反映了前期缺陷檢出的效果,也直接反映了汽車(chē)軟件質(zhì)量的真實(shí)水平。
算法中后期發(fā)現(xiàn)的缺陷數(shù)量可以理解為售后、工廠(chǎng)、整車(chē)集成這些環(huán)節(jié)發(fā)現(xiàn)的缺陷數(shù)量。
26 缺陷檢出率
缺陷檢出率=各階段發(fā)現(xiàn)的缺陷數(shù)量/總?cè)毕輸?shù)量
該指標(biāo)反映了軟件開(kāi)發(fā)不同階段的缺陷檢出的效果,同缺陷逃逸率指向接近,但它對(duì)不同階段的不同活動(dòng)或團(tuán)隊(duì)的缺陷檢出進(jìn)行了細(xì)化,通常作為優(yōu)化缺陷逃逸率的進(jìn)一步指標(biāo)。
算法中各階段可以理解為需求評(píng)審、設(shè)計(jì)評(píng)審、代碼評(píng)審、開(kāi)發(fā)測(cè)試、集成測(cè)試、軟件測(cè)試、系統(tǒng)測(cè)試、整車(chē)測(cè)試、工廠(chǎng)生產(chǎn)、售后這些不同環(huán)節(jié)。
27 缺陷率
缺陷率=致命級(jí)別的問(wèn)題個(gè)數(shù)*10+嚴(yán)重級(jí)別的問(wèn)題個(gè)數(shù)*3+一般級(jí)別的問(wèn)題個(gè)數(shù)*1+提示級(jí)別的問(wèn)題個(gè)數(shù)*0.1
該指標(biāo)反映了缺陷視角下的軟件整體質(zhì)量狀態(tài),其中的缺陷等級(jí)定義以及對(duì)應(yīng)權(quán)重的劃分是指標(biāo)有效與否的關(guān)鍵。
缺陷分布=缺陷不同屬性的交叉分析
該指標(biāo)反映了缺陷屬性交叉分析的結(jié)果,同其他分布一樣,它更多作為整體對(duì)比、分析、決策的工具。
缺陷屬性可以根據(jù)類(lèi)型、嚴(yán)重度、根本原因、模塊、優(yōu)先級(jí)、測(cè)試環(huán)境和負(fù)責(zé)的測(cè)試人員等進(jìn)行分類(lèi),這些屬性之間可以進(jìn)行二維或多維的交叉分析,比如,利用透視表、直方圖、餅圖或帕累托圖等方式。
測(cè)試自動(dòng)化率=自動(dòng)化測(cè)試用例數(shù)/總測(cè)試用例數(shù)
該指標(biāo)反映了自動(dòng)化測(cè)試的能力,要想實(shí)現(xiàn)敏捷的頻繁迭代發(fā)布,很重要一個(gè)前提就是快速的自動(dòng)化測(cè)試,尤其要關(guān)注回歸測(cè)試的測(cè)試自動(dòng)化率。
流負(fù)載=已開(kāi)始但未交付的需求數(shù)分布
該指標(biāo)反映了需求、設(shè)計(jì)、 開(kāi)發(fā)、測(cè)試、發(fā)布各階段的需求數(shù)分布狀態(tài),類(lèi)似工作量分布,但關(guān)注的是在制品瓶頸和積壓,控制在制品數(shù)量有助于提高交付效率。
算法里的需求數(shù)可以按照需求管理系統(tǒng)里的條目數(shù)或者需求文本的數(shù)量來(lái)統(tǒng)計(jì)。
流效率=活躍工作時(shí)間(即無(wú)阻塞地工作)/總交付時(shí)間(包括活躍工作時(shí)間和等待時(shí)間)
該指標(biāo)反映了軟件開(kāi)發(fā)過(guò)程的順暢程度和資源利用效率,也能比較好地將軟件開(kāi)發(fā)工作透明化。
算法里的活躍工作時(shí)間指的是需求溝通、需求評(píng)審、架構(gòu)設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、發(fā)布等實(shí)際工作的時(shí)間,而總交付時(shí)間則包括了活躍工作時(shí)間以及各種等待時(shí)間,如配置在ALM工具中的待評(píng)審、待開(kāi)發(fā)、待測(cè)試、待發(fā)布之類(lèi)的等待階段的停留時(shí)間。
32 工作量分布
工作量分布=不同維度下的工作量差異展示
該指標(biāo)反映了軟件開(kāi)發(fā)過(guò)程中,不同階段、不同團(tuán)隊(duì)下的工作量分布比例,通常用來(lái)支持項(xiàng)目管理的工作分配,也會(huì)與其他指標(biāo)進(jìn)行關(guān)聯(lián)分析。
工作量可以通過(guò)工作項(xiàng)數(shù)量(缺陷、變更、任務(wù)等)或者工作時(shí)間或者代碼規(guī)模或者需求規(guī)模等不同維度體現(xiàn)。
33 售后問(wèn)題響應(yīng)時(shí)長(zhǎng)
售后問(wèn)題響應(yīng)時(shí)長(zhǎng)=售后問(wèn)題響應(yīng)時(shí)間-售后問(wèn)題提出時(shí)間
該指標(biāo)反映了響應(yīng)售后客戶(hù)問(wèn)題的及時(shí)性,算是“態(tài)度”問(wèn)題。
算法里的響應(yīng)時(shí)間可以按照系統(tǒng)里分配或者給客戶(hù)首次正式答復(fù)(有切實(shí)計(jì)劃)的時(shí)間來(lái)定義,而提出時(shí)間可以按照接到客戶(hù)投訴的時(shí)間來(lái)定義。
售后問(wèn)題解決時(shí)長(zhǎng)=售后問(wèn)題解決時(shí)間-售后問(wèn)題響應(yīng)時(shí)間
該指標(biāo)反映了解決售后客戶(hù)問(wèn)題的及時(shí)性,是“能力”問(wèn)題。
算法里的解決時(shí)間可以按照系統(tǒng)里解決或者按照OTA或刷件解決實(shí)車(chē)問(wèn)題的時(shí)間來(lái)定義,而響應(yīng)時(shí)間可以按照系統(tǒng)里分配或者給客戶(hù)首次正式答復(fù)(有切實(shí)計(jì)劃)的時(shí)間來(lái)定義。
35 凈推薦值NPS
凈推薦值NPS=客戶(hù)愿意向其他人推薦某功能或場(chǎng)景的意愿
該指標(biāo)反映了客戶(hù)的主觀感受,而不聚焦在工程或軟件質(zhì)量本身。這在場(chǎng)景體驗(yàn)評(píng)價(jià)里,是一個(gè)有價(jià)值的指標(biāo),它也可以用于客戶(hù)滿(mǎn)意度的整體評(píng)價(jià)。
凈推薦值以0-10的數(shù)字范圍表示,得分為0到6的客戶(hù)是負(fù)面評(píng)價(jià)者;7和8的分?jǐn)?shù)是中立者;9和10是推薦者。
軟件的高質(zhì)量必然指向可指標(biāo)化,而指標(biāo)也是高質(zhì)量的重要推手。
轉(zhuǎn)自水輕言