每當(dāng)提及「研發(fā)效能」,我們都在談?wù)撌裁矗?/p>
研發(fā)效能管理要在保證質(zhì)量的前提下,思考如何更快地向客戶交付價(jià)值常熙。在管理實(shí)踐中纬乍,效能度量涉及三大維度:交付速率、交付質(zhì)量裸卫、交付價(jià)值仿贬。
技術(shù)團(tuán)隊(duì)對內(nèi)如何優(yōu)化開發(fā)流程,以提升交付速率和質(zhì)量墓贿?對外如何圍繞價(jià)值交付茧泪,與產(chǎn)品、業(yè)務(wù)側(cè)同事開展緊密高效的研發(fā)協(xié)作聋袋?在眾多亟需攻破的效能難題中队伟,Cycle Time 都是極為關(guān)鍵的速率管理發(fā)力點(diǎn)。
01 是什么 Cycle Time幽勒?
Cycle Time 原是精益生產(chǎn)的專業(yè)術(shù)語嗜侮,描述了某個工序制造一單位產(chǎn)品或某過程完成一個工作循環(huán)所需的平均完整時(shí)間,可以確定機(jī)器或工序的生產(chǎn)能力和效率啥容。
在軟件研發(fā)中锈颗,Cycle Time 是指技術(shù)團(tuán)隊(duì)從頭到尾完成一單位研發(fā)工作平均需要的時(shí)間,即研發(fā)工作從進(jìn)入開發(fā)到發(fā)布上線所經(jīng)歷的平均時(shí)間咪惠。
02 為什么應(yīng)該關(guān)注 Cycle Time宜猜?
Cycle Time 是反映技術(shù)團(tuán)隊(duì)工作速率的結(jié)果度量指標(biāo),可以幫助團(tuán)隊(duì)識別障礙硝逢、有的放矢地優(yōu)化改進(jìn)并實(shí)現(xiàn)更快更好的價(jià)值交付姨拥。
- 更快地響應(yīng)。 縮短 Cycle Time 的本質(zhì)是更快地向客戶交付價(jià)值渠鸽,響應(yīng)變化叫乌。
- 識別障礙和待改進(jìn)空間。 跟蹤對比多項(xiàng)目或跨周期的 Cycle Time 有助于識別和定位效能瓶頸徽缚,便于及時(shí)調(diào)整優(yōu)化憨奸。
- 及時(shí)反饋,避免浪費(fèi)凿试。 分析優(yōu)化前后的 Cycle Time 可以快速掌握優(yōu)化效果排宰,輔助進(jìn)一步?jīng)Q策,避免長時(shí)間的空耗和等待那婉。
- 提供風(fēng)險(xiǎn)預(yù)警支撐板甘。 以歷史和平均 Cycle Time 為效率基準(zhǔn)刹缝,在過程管理中為風(fēng)險(xiǎn)預(yù)警和進(jìn)度管理提供數(shù)據(jù)輔助细睡。
總的來說,研發(fā)團(tuán)隊(duì)?wèi)?yīng)該持續(xù)跟蹤 Cycle Time寓落,靈敏地識別開發(fā)過程中的效能瓶頸,并通過建立標(biāo)準(zhǔn)在跳、流程優(yōu)化枪萄、任務(wù)拆分等持續(xù)改進(jìn),增強(qiáng)組織敏捷性猫妙,提高開發(fā)速率瓷翻,快速交付價(jià)值。
03 如何計(jì)算 Cycle Time割坠?
前面說到逻悠,Cycle Time 表示一單位研發(fā)工作經(jīng)歷從「進(jìn)入開發(fā)」到「發(fā)布上線」平均需要的完整時(shí)間。
為了便于計(jì)算韭脊,此處定義一單位研發(fā)工作為「Git 中的一個工程任務(wù)」童谒。在管理實(shí)踐中,一單位研發(fā)工作也可以是一個故事點(diǎn)數(shù)沪羔、一個用戶故事等等饥伊。
技術(shù)團(tuán)隊(duì)需要提前約定開發(fā)流程中每個環(huán)節(jié)「工作開始」和「工作完成」的標(biāo)準(zhǔn),并確保所有人都為此達(dá)成共識蔫饰。
- 編碼時(shí)間:DoR 是技術(shù)團(tuán)隊(duì)需求準(zhǔn)入的標(biāo)準(zhǔn)琅豆,因此編碼時(shí)間是「需求符合 DoR 要求,抵達(dá)技術(shù)團(tuán)隊(duì)」到「完成編碼篓吁,發(fā)起 Pull Request 請求」的平均時(shí)間茫因。
- 拾取時(shí)間:從「發(fā)起合并請求」到「代碼審查開始」的等待時(shí)間為代碼拾取時(shí)間。拾取時(shí)間越短杖剪,說明跨職能的技術(shù)團(tuán)隊(duì)協(xié)作越緊密冻押,審查過程越健康。
- 審查時(shí)間:一般將「首條評論產(chǎn)生的時(shí)間」視作代碼審查的起點(diǎn)盛嘿,而「分支確認(rèn)合并」則是代碼審查結(jié)束的標(biāo)志洛巢。
- 部署時(shí)間:常以「分支確認(rèn)合并」為始,以「新代碼成功同步到生產(chǎn)環(huán)境」為終次兆。
基于清晰統(tǒng)一的節(jié)點(diǎn)標(biāo)準(zhǔn)稿茉,技術(shù)團(tuán)隊(duì)就可以計(jì)算各個環(huán)節(jié)的平均工作周期,并通過平均值加總得到 Git 工程任務(wù)的 Cycle Time芥炭。
同時(shí)漓库,結(jié)合不同環(huán)節(jié)的耗時(shí)分布和交付數(shù)量,技術(shù)團(tuán)隊(duì)還可以制定流程規(guī)范和優(yōu)化方案园蝠,將效能瓶頸逐個擊破渺蒿。
04 如何縮短編碼時(shí)間,提高效率砰琢?
技術(shù)團(tuán)隊(duì)的編碼周期過長蘸嘶,可能有以下原因:
- 需求很復(fù)雜:功能復(fù)雜良瞧、耦合度高陪汽、顆粒度大的研發(fā)任務(wù)通常需要花費(fèi)更多時(shí)間训唱。
- 需求不明確:用戶調(diào)研或需求分析不到位、產(chǎn)品頻繁變更都會拉高溝通成本挚冤,多次返工和變更也會影響代碼質(zhì)量和速率况增。
- 需求太難了:開發(fā)人員缺乏項(xiàng)目必備的專業(yè)知識,邊學(xué)邊做训挡,或者突現(xiàn)計(jì)劃外的技術(shù)難題都會制約開發(fā)效率澳骤。
- 流程繁瑣混亂:代碼提測路徑長、被頻繁打斷而無法專注于代碼實(shí)現(xiàn)澜薄,都是工作流程不優(yōu)導(dǎo)致的效能瓶頸为肮。
- 重復(fù)的機(jī)械勞動:代碼手動 Commit、人為的消息通知和任務(wù)指派也是對技術(shù)團(tuán)隊(duì)精力和時(shí)間的極大浪費(fèi)肤京。
因此颊艳,提高技術(shù)團(tuán)隊(duì)的編碼效率可以從流程規(guī)范和優(yōu)化、自動化工具的投入忘分,和能力提升與培養(yǎng)三個角度入手棋枕。
1. 建立流程標(biāo)準(zhǔn)和協(xié)作規(guī)范,把控準(zhǔn)入需求
開展工作的前提是保證技術(shù)團(tuán)隊(duì)一直在交付最有價(jià)值的事情妒峦,因此可以采用敏捷開發(fā)方法重斑,對需求進(jìn)行價(jià)值排序,確定優(yōu)先順序肯骇。
第二窥浪,同產(chǎn)品團(tuán)隊(duì)一起建立協(xié)作流程規(guī)范,并明確需求準(zhǔn)入的標(biāo)準(zhǔn)(DoR)笛丙,說明含需求粒度寒矿、任務(wù)拆分和分解、相關(guān)的上下文和說明文件等在內(nèi)的要求若债。通過加強(qiáng)起點(diǎn)的把控符相,提升開發(fā)速率。
2. 構(gòu)建內(nèi)部知識庫啊终,將繁復(fù)的操作和流程自動化
合理利用優(yōu)質(zhì)開源項(xiàng)目蓝牲、時(shí)興的效率工具與自動化插件昔期,加快代碼編寫的速度并提高質(zhì)量,以減輕語法檢查般贼、手動提交等事務(wù)性工作的壓力哼蛆。
同時(shí)腮介,鼓勵開發(fā)人員積極溝通靴迫,定期舉辦內(nèi)部知識分享會玉锌,促進(jìn)相互學(xué)習(xí)禀倔;建立代碼知識庫,收納相關(guān)代碼以供檢索和復(fù)用,避免低效和浪費(fèi)邑闺。
3. 規(guī)范開發(fā)標(biāo)準(zhǔn)和良好習(xí)慣,持續(xù)學(xué)習(xí)
由上至下地推行統(tǒng)一的代碼規(guī)范靶衍,鼓勵開發(fā)人員遵循最佳實(shí)踐蜈出,例如編寫干凈煤杀、文檔齊全的代碼和使用一致的編碼約定,減少調(diào)試和故障排除的時(shí)間。
定期組織培訓(xùn)或展開指導(dǎo)酪夷,持續(xù)了解新技術(shù)勋功,學(xué)習(xí)新知識片择,嘗試新工具信不。不斷精進(jìn)專業(yè)實(shí)力的同時(shí),主動擴(kuò)展知識帶寬歇由。
LigaAI 總結(jié)一下
Cycle Time 是衡量技術(shù)團(tuán)隊(duì)開發(fā)速率和交付能力的重要指標(biāo)沦泌。在相同的交付質(zhì)量和價(jià)值度量的前提下,更短的 Cycle Time 意味著研發(fā)團(tuán)隊(duì)能更快地響應(yīng)市場和需求的變化辛掠,更快地向用戶交付價(jià)值谢谦。
Cycle Time 表示研發(fā)工作從符合 DoR 并進(jìn)入技術(shù)團(tuán)隊(duì)起,到發(fā)布上線所需的平均完成時(shí)間萝衩,與編碼回挽、拾取、評審和部署的周期皆有聯(lián)系猩谊。其中千劈,控制好需求準(zhǔn)入標(biāo)準(zhǔn),合理利用新興技術(shù)和項(xiàng)目都有助于縮短編碼周期牌捷,加快開發(fā)速率墙牌。