與傳統(tǒng)的項(xiàng)目管理不同,敏捷項(xiàng)目管理關(guān)注價(jià)值。
要理解價(jià)值,我們先要理解項(xiàng)目的目標(biāo)是什么,無外乎包括以下幾個(gè)方面:
明確了目標(biāo),再來談價(jià)值。價(jià)值從本質(zhì)來說,代表的是所提供的產(chǎn)品或服務(wù)對最終用戶的價(jià)值,即用戶愿意支付的、最終對于企業(yè)本身產(chǎn)生的增值,而不是僅僅被企業(yè)所認(rèn)可。
舉個(gè)例子,銀行在線上提供個(gè)人自助貸款服務(wù),其目標(biāo)是在3個(gè)月內(nèi)線上個(gè)人貸款業(yè)務(wù)數(shù)達(dá)1000筆,貸款總額達(dá)5000萬元,新增線上用戶數(shù)達(dá)3000個(gè)。對應(yīng)到價(jià)值,可以理解為更高的銷售額、更多的利潤以及更多的用戶。
相比傳統(tǒng)瀑布開發(fā),敏捷是對軟件交付價(jià)值鏈的系統(tǒng)性顛覆。價(jià)值鏈上游的產(chǎn)品需求從龐大完整的功能版本以一定的優(yōu)先級次序被拆分成了源源不斷的故事卡。上游需求單元的顆粒度和頻率變化讓交付環(huán)節(jié)的管理復(fù)雜度指數(shù)級增加,項(xiàng)目經(jīng)理應(yīng)改變“項(xiàng)目是為了交付更多功能”的傳統(tǒng)觀念,而把關(guān)注點(diǎn)放在“這個(gè)功能有什么用”——即項(xiàng)目交付的價(jià)值上。
如何交付價(jià)值呢?
不同于傳統(tǒng)的瀑布開發(fā)模式,敏捷軟件開發(fā)以迭代的方式進(jìn)行,旨在不斷收集真實(shí)用戶反饋、聽到市場的聲音,踐行價(jià)值交付。
通過敏捷項(xiàng)目,讓我們“想象”中的“價(jià)值”更快地交付到市場,以驗(yàn)證其是否真有價(jià)值。一般而言,敏捷軟件開發(fā)會將每次的發(fā)布(Release)分成多個(gè)迭代(Iteration),在每次迭代結(jié)束都會做showcase,演示本迭代開發(fā)功能。項(xiàng)目經(jīng)理需要從價(jià)值交付的角度管理每個(gè)迭代的需求,讓每次showcase都能展示有“價(jià)值”的功能。
為了達(dá)成目標(biāo),在項(xiàng)目交付中,我們需要對價(jià)值流作出行之有效的管理。
項(xiàng)目經(jīng)理如何改善價(jià)值流呢?
知易行難啊...現(xiàn)實(shí)是:
在制品(Working In Progress,WIP)數(shù)量增加
系統(tǒng)前置時(shí)間(System Lead Time)變長
本著信息透明的原則,先用“看板”來限制在制品。如下圖所示,通常我們都是采用基于“列”的在制品限制。
通過對看板流轉(zhuǎn)情況的動態(tài)觀察,識別影響看板的瓶頸,從而通過限制在制品避免和解決瓶頸。比如,我們發(fā)現(xiàn)在測試階段(Testing)出現(xiàn)任務(wù)的擠壓,這時(shí)候測試就成了整個(gè)看板的瓶頸。那么我們有可能采取的方式是:增加測試人員;或限制測試任務(wù)的輸入,即在開發(fā)階段(Development)限制在制品。
在項(xiàng)目的前期,在制品數(shù)值應(yīng)該是經(jīng)常變動的。分享一個(gè)快速設(shè)定在制品數(shù)值的方法:
如果某列經(jīng)常同時(shí)有5-6個(gè)工作在進(jìn)行,我們最初可以將在制品數(shù)量限定在10-12個(gè),然后規(guī)律性的以20%的幅度將其遞減,繼而達(dá)到一個(gè)相對穩(wěn)定的值。在制品數(shù)值的調(diào)整,本身也是一個(gè)持續(xù)改進(jìn)的過程。基本原則是避免浪費(fèi),提高效率。
項(xiàng)目經(jīng)理還要時(shí)刻關(guān)注System Lead Time。
Lead Time升高的原因有很多,不同問題采取不同的對策。
如果是組織和環(huán)境(流程與協(xié)作、質(zhì)量與基礎(chǔ)設(shè)施以及組織方式與技能)的原因,可以考慮通過改變“游戲”規(guī)則的方式來得到期望的結(jié)果。舉個(gè)例子,有些團(tuán)隊(duì)在項(xiàng)目初期從需求分析到制定各種計(jì)劃,通常一周時(shí)間已經(jīng)過去了。然后再作需求評審,又需要兩到三天時(shí)間。為了縮短Lead Time,我們需要改變“游戲”規(guī)則:簡化流程,優(yōu)化系統(tǒng)。如果是風(fēng)險(xiǎn)管理(技術(shù)、業(yè)務(wù)和依賴關(guān)系)出了問題,則需要通過加強(qiáng)風(fēng)險(xiǎn)管理的手段來預(yù)防和管控。
在軟件開發(fā)中,價(jià)值流的直接體現(xiàn)是從想法和假設(shè)到軟件功能上線并產(chǎn)生客戶價(jià)值的過程,研發(fā)效能的本質(zhì)是持續(xù)的價(jià)值流。如何度量研發(fā)效能呢?4 Key Metrics來幫忙。
在ThoughtWorks2019年4月的技術(shù)雷達(dá)中如是說:
我們已經(jīng)發(fā)現(xiàn)這四個(gè)關(guān)鍵指標(biāo)是個(gè)簡單卻強(qiáng)大的工具,可幫助領(lǐng)導(dǎo)和團(tuán)隊(duì)專注于衡量并改進(jìn)重要的環(huán)節(jié) 。實(shí)施構(gòu)建流水線是一個(gè)良好開端,以便你能夠捕獲四個(gè)關(guān)鍵指標(biāo)(Four keymetrics),并使軟件交付價(jià)值流可見。
打破研發(fā)和運(yùn)維的墻,快和穩(wěn)通盤考慮,這是4 Key Metrics給我們的第一個(gè)啟發(fā)。
第二個(gè)啟發(fā):關(guān)注指標(biāo)的變化,分析其變化的原因,以此來牽引團(tuán)隊(duì)研發(fā)效能的提升。
第三個(gè)啟發(fā):能夠讓團(tuán)隊(duì)的技術(shù)治理更有方向性,如果某項(xiàng)技術(shù)治理對于快和穩(wěn)沒有幫助,那么說明團(tuán)隊(duì)投入的工作量沒有給客戶帶來價(jià)值,這樣的技術(shù)治理很有可能是自嗨。
軟件開發(fā)流水線和任何復(fù)雜精巧的人工機(jī)制一樣,構(gòu)建十分困難,摧毀卻又十分容易。能夠直接體現(xiàn)業(yè)務(wù)價(jià)值的指標(biāo)和數(shù)字往往是最具說服力的,關(guān)注指標(biāo)的變化,分析其變化的原因,4 Key Metrics是呈現(xiàn)價(jià)值的重要方式。
項(xiàng)目經(jīng)理最主要的任務(wù)是和團(tuán)隊(duì)一起交付價(jià)值,為了實(shí)現(xiàn)這個(gè)目標(biāo)需要做很多事情。項(xiàng)目經(jīng)理很不容易,我們要多關(guān)心他們。
后記
兩年前在寫《項(xiàng)目管理中的敏捷實(shí)踐》時(shí),對交付價(jià)值的理解并不十分深刻。很多時(shí)候,我們都能理解敏捷的實(shí)踐,卻忽視了敏捷的本質(zhì)。敏捷的本質(zhì)正是追求價(jià)值,這也是我們很多軟件從業(yè)者的初心。
本文從構(gòu)思到成文花了一番功夫。我希望用更為簡單、生動的表述方式,因此采用了許多自己設(shè)計(jì)的圖畫。限于我的構(gòu)圖水平,還有很多瑕疵,但希望畫盡其意。謝謝閱讀。
本文作者萬學(xué)凡,ThoughtWorks首席咨詢師,武漢。作者保留本文一切權(quán)利,未經(jīng)許可請勿轉(zhuǎn)載。