你從未見過的五個(gè)強(qiáng)大的DevOps指標(biāo)
為了在市場(chǎng)中保持競(jìng)爭(zhēng)力的技術(shù)公司都在進(jìn)行某種程度的轉(zhuǎn)型。敏捷轉(zhuǎn)型、數(shù)字化轉(zhuǎn)型和DevOps轉(zhuǎn)型無處不在,因?yàn)楣驹噲D改變他們的工作方式,從而改善業(yè)務(wù)結(jié)果。
指標(biāo)(metrics)是任何轉(zhuǎn)型的關(guān)鍵部分。傳統(tǒng)的IT績(jī)效指標(biāo),例如計(jì)算代碼行數(shù)和軟件bug的數(shù)量,應(yīng)該謹(jǐn)慎使用,因?yàn)榇嬖诓恢档眯迯?fù)的bug和不值得維護(hù)的代碼。這些老式的績(jī)效指標(biāo)度量的是活動(dòng)(activities),而非結(jié)果(outcomes)?;顒?dòng)指標(biāo)很少能告訴組織對(duì)業(yè)務(wù)目標(biāo)的真正影響是什么。
那么,應(yīng)該如何度量呢?我們需要考慮Flow(流)相關(guān)的指標(biāo)。Flow指標(biāo)是一種績(jī)效(performance)指標(biāo),它揭示了期望的業(yè)務(wù)結(jié)果的趨勢(shì) —— 例如更快的上市時(shí)間、對(duì)客戶的響應(yīng)以及可預(yù)測(cè)的發(fā)布時(shí)間框架。這些業(yè)務(wù)結(jié)果在成功的轉(zhuǎn)型努力中起著至關(guān)重要的作用。請(qǐng)?jiān)试S我向您介紹五個(gè)強(qiáng)大的流指標(biāo)。
Flow Time(流動(dòng)時(shí)間)
Flow Time是衡量一件事從開始到結(jié)束需要多長(zhǎng)時(shí)間。你可能會(huì)想,“等等,這不是周期時(shí)間(Cycle Time)嗎?”。你可能是對(duì)的。這取決于使用該定義的上下文。根據(jù)你所問的人的不同,“周期時(shí)間”有不同的含義,計(jì)時(shí)可能在不同的時(shí)間點(diǎn)開始或停止。理解周期時(shí)間是一個(gè)模棱兩可的術(shù)語,這就是為什么我喜歡在討論速度指標(biāo)時(shí)使用Flow Time。因?yàn)镕low Time對(duì)于大多數(shù)人來說是一個(gè)陌生的術(shù)語,它提供了一個(gè)清晰定義含義的機(jī)會(huì)。Flow是通過系統(tǒng)順利且可預(yù)測(cè)的值,是支撐DevOps的三個(gè)基本原則中的***個(gè)。
Flow Time說明:當(dāng)請(qǐng)求(request)被批準(zhǔn)時(shí),計(jì)時(shí)開始,當(dāng)變更生效并在生產(chǎn)環(huán)境中運(yùn)行時(shí),計(jì)時(shí)結(jié)束。
Flow Time計(jì)算開始時(shí)間和結(jié)束時(shí)間。Flow Time不會(huì)因?yàn)橹苣┑牡絹矶V埂low Time所做的是量化在該時(shí)間段內(nèi)完成給定工作的概率。
例如,如果歷史Flow Time顯示,某種類型的工作有90%的概率在30天內(nèi)交付,這樣我們就可以說,10次中有9次我們可以30天內(nèi)交付該類型的工作。我們知道有10%的可能需要更長(zhǎng)的時(shí)間。這讓我們對(duì)客戶的需求有更好的可預(yù)測(cè)性。
譯注:在DevOps里通常會(huì)用到Lead Time(前置時(shí)間)這一術(shù)語。但Lead Time也來源于工業(yè)生產(chǎn)里,這樣也會(huì)出現(xiàn)歧義。Flow Time這樣一個(gè)專有名詞顯然更好。
Flow Efficiency(流動(dòng)效率)
好的指標(biāo)讓我們有更清晰的全景和對(duì)諸如“何時(shí)能夠完成?”這樣的問題有更準(zhǔn)確的答案。到期日(due date)這樣的指標(biāo)很少考慮等待時(shí)間。然而問題通常不在于處理工作的時(shí)間,而在于等待時(shí)間。
想想由于工作依賴而造成的延遲——當(dāng)涉及到需要多長(zhǎng)時(shí)間完成工作這樣的問題時(shí),等待時(shí)間往往比實(shí)際處理工作時(shí)間影響更大。你***是估計(jì)等待時(shí)間,而不是工作時(shí)間。等待時(shí)間通常消耗85%或更多的Flow Time。
譯注:這個(gè)指標(biāo)也叫PCE(Process Cycle Efficency)。
WIP Report(在制品報(bào)告)
把工作分解成更小的部分是很重要的,這些部分可以很快完成并交付。交付越快,反饋就越快。太多的在制品(WIP)(在Flow Framework中稱為“流負(fù)載”),為更多的工作間依賴、更多的沖突優(yōu)先級(jí)、更多的計(jì)劃外工作悄悄開了口子,這會(huì)導(dǎo)致延遲。獲取WIP趨勢(shì)并將其與Flow Time結(jié)果進(jìn)行比較,可以幫助我們了解組織中的WIP與速度之間的關(guān)系。
Aging Report(老化報(bào)告)
Aging Report展示了工作項(xiàng)在系統(tǒng)中停留的時(shí)間??纯聪到y(tǒng)中有多少工作項(xiàng)停留了超過30天(或60天或120天),就會(huì)發(fā)現(xiàn)系統(tǒng)中有多少浪費(fèi)。下圖的例子比較了工作的平均耗時(shí),并突出顯示了那些比平均耗時(shí)更長(zhǎng)的工作項(xiàng)。
譯注:方框代表該類型工作的平均耗時(shí),黑線是該工作的實(shí)際耗時(shí),粉線代表超出平均時(shí)長(zhǎng)的時(shí)間。
Flow Distribution(流分布)
將工作分成不同的工作類別使我們可以調(diào)整工作優(yōu)先級(jí)以及對(duì)報(bào)告數(shù)據(jù)做過濾。流分布顯示各種工作類別期待的(以及歷史的)分布比例,為計(jì)劃性工作(planned work)分配帶來可見性。當(dāng)有了工作類別后,我們就可以對(duì)報(bào)告按照類別過濾,比如WIP報(bào)告,這反過來可以幫助改進(jìn)WIP設(shè)定及可預(yù)測(cè)性。
譯注:工作類型是每個(gè)組織自己定義的。比如在《鳳凰項(xiàng)目》里,定義了四種類型的工作:業(yè)務(wù)相關(guān)的,運(yùn)維的日常維護(hù)工作,變更,以及計(jì)劃外工作。
根據(jù)工作狀況,WIP設(shè)定可能需要調(diào)整。比如剛剛發(fā)布了一個(gè)新特性,那么處理缺陷或技術(shù)債務(wù)可能會(huì)優(yōu)先于引入更多特性。如果這時(shí)選擇繼續(xù)做更多的特性工作,它將占用其他工作類型時(shí)間,比如修復(fù)與技術(shù)債務(wù)相關(guān)的問題。對(duì)工作類型分布進(jìn)行分類和度量有助于進(jìn)行優(yōu)先級(jí)排序。
映射指標(biāo)和結(jié)果
- 如果上市時(shí)間(time-to-market)是追求的結(jié)果,那就度量Flow Time(流動(dòng)時(shí)間),幫助別人了解事情實(shí)際上要花多長(zhǎng)時(shí)間。
- 如果效率是你追求的結(jié)果,那就度量Flow Efficiency(流動(dòng)效率),以查看瓶頸點(diǎn),因此將重點(diǎn)放在能夠改善流的地方。當(dāng)涉及到流時(shí),優(yōu)化一個(gè)非瓶頸點(diǎn)并沒有什么幫助。
- 如果團(tuán)隊(duì)正在處理計(jì)劃外的工作和/或優(yōu)先級(jí)沖突,那么就度量WIP數(shù)量(WIP Report)以暴露分配工作過多的團(tuán)隊(duì)。說到效率,如果過多地關(guān)注資源效率而不是流效率,那么其實(shí)是在浪費(fèi)時(shí)間。
- 如果忽略了未完成的重要工作(如修復(fù)安全漏洞),則應(yīng)度量未完成工作在系統(tǒng)里停留的時(shí)間(Aging Report)以暴露風(fēng)險(xiǎn)。就像一座正在建造中的橋梁,在它完成之前,是不產(chǎn)生任何價(jià)值的。
- 如果某些類型的重要工作(比如修復(fù)技術(shù)債務(wù))沒有相應(yīng)的優(yōu)先級(jí),則應(yīng)度量工作類型的分布(Flow Distribution),以使與工作分配相關(guān)的問題變得可見。
原文鏈接:https://www.tasktop.com/blog/5-best-metrics-youve-never-met/
【本文為51CTO專欄作者“徐磊”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過作者微信公眾號(hào)devopshub獲取授權(quán)】