敏捷開發(fā)估算與計劃

敏捷計劃的目的是以迭代的方式為產(chǎn)品開發(fā)的綜合問題,在那段時間內(nèi)使用那些資源來得到哪些功能,去尋找到最佳解決方案。敏捷估算和計劃方法可以成功找到這樣的解決方案的原因包括:計劃是在不同層次上作出的,并且頻繁的重新計劃;計劃是根據(jù)特性而不是根據(jù)任務(wù)作出的;首先估算大小,然后根據(jù)大小的估算值推算出持續(xù)時間;小故事保持工作的流動,而且每次迭代結(jié)束時會消除未完成的工作;在團(tuán)隊層次而不是個人層次對進(jìn)度進(jìn)行度量;承認(rèn)不確定性并為之做計劃。

圖片發(fā)自簡書App
敏捷估算和計劃價值分析:

無論軟件開發(fā)項目的規(guī)模如何,估算和計劃對于項目的成功都是至關(guān)重要的。估算與計劃并不僅僅是決定一個恰當(dāng)?shù)淖罱K期限和進(jìn)度表,而是對價值的探求.

1.減少風(fēng)險

2.降低不確定性

3.提供更好的決策支持

4.建立客戶信任

5.傳遞信息

計劃失敗原因分析:

1.基于活動而不是基于特性進(jìn)行計劃:基于活動的計劃常導(dǎo)致項目實際開發(fā)超出計劃表,有些團(tuán)隊會試圖通過不恰當(dāng)?shù)亟档唾|(zhì)量來節(jié)省時間,有些團(tuán)隊會制定變更控制策略來限制產(chǎn)品變更。主要因素包含:活動不會提前完成;延誤隨進(jìn)度表傳遞;活動不是互相獨(dú)立的。

2.多任務(wù)處理導(dǎo)致更多的延遲:同時處理多個任務(wù),多任務(wù)會對生產(chǎn)效率產(chǎn)生可怕的影響。當(dāng)項目中開始有些活動被延期的時候,多任務(wù)處理往往變成了問題。

3.不按優(yōu)先級開發(fā)特性:不按照特性的優(yōu)先級順序進(jìn)行開發(fā),因此某些被放棄的特性可能反而比所交付的特性更具有價值。

4.忽視了不確定性:忽視了與產(chǎn)品相關(guān)的不確定性,比如我們不能指望一開始就確定項目進(jìn)程中需要的所有活動,但我們制定的計劃中往往無法意識到這一點(diǎn)。應(yīng)對不確定性的最佳方法是迭代。

5.把估算當(dāng)作承諾:如果項目團(tuán)隊或者利益干系人把估算當(dāng)作了承諾,傳統(tǒng)的計劃方法就會出現(xiàn)問題。在做出這樣的承諾之前,團(tuán)隊需要對大量的商業(yè)因素和風(fēng)險進(jìn)行評估,并且不要把所有的估算都當(dāng)成是隱性的承諾。

如何估算大小:

兩種度量大小的方法:故事點(diǎn)和理想時間。

故事點(diǎn):故事點(diǎn)是對用戶故事大小的相對度量,將要進(jìn)行的工作大小進(jìn)行估算,項目的持續(xù)時間通過求取項目的總故事點(diǎn)數(shù),再除以小組的速度而推算出來的.

理想時間:理想時間不是耗用時間,使用理想人天估算,就只需考慮完成這個用戶故事所需要的時間,最好只為每個用戶故事分配單一的估算值。應(yīng)該把所有需要的時間加在一起,說某個用戶故事需要九個理想人天,而不是說他需要四個程序員人天、兩個測試人員人天和三個產(chǎn)品負(fù)責(zé)者人天。

在故事點(diǎn)和理想人天之間進(jìn)行選擇:

圖片發(fā)自簡書App


故事點(diǎn)的優(yōu)勢是可以幫助促進(jìn)團(tuán)隊的跨功能行為。此外,由于故事點(diǎn)是更為純粹的對大小的估算,因此即使團(tuán)隊在技術(shù)上或是領(lǐng)域知識上取得了進(jìn)步,也并不需要重估他們。如果一個團(tuán)隊成員認(rèn)為某件事情需要4個理想人天,而另一個成員認(rèn)為只需要1個理想人天,也許他們都是對的,但是他們?nèi)狈τ懻摰墓餐A(chǔ),無法建立一個單一的估算值。

理想人天的優(yōu)勢在于更容易向團(tuán)隊之外的人進(jìn)行解釋,以及更容易開始。

我的傾向是使用故事點(diǎn)。使用故事點(diǎn)進(jìn)行估算的優(yōu)點(diǎn)更有說服力。如果團(tuán)隊對單純的大小進(jìn)行估算存在困難,可以讓他們用一下人天開始估算,然后再讓他們轉(zhuǎn)化到故事點(diǎn)上。更多的問“這個功能的大小與我們剛才估算的那個相比怎么樣?”而不是去問“它會需要多少個零小人天?”大部分團(tuán)隊幾乎不會注意到這種漸進(jìn)式的轉(zhuǎn)變,而當(dāng)他們意識到的時候,他們已經(jīng)是在用故事點(diǎn)而不是理想人天進(jìn)行思考了。

估算方法:

四種最常用的估算方法是:

專家意見:如果你想知道一件事需要多長時間,去問問專家。在基于專家意見的估算方法中,專家根據(jù)他自己的直覺給出估算。根據(jù)專家意見進(jìn)行評估的一個好處在于他通常不需要太長時間。根據(jù)專家意見進(jìn)行評估的一個好處在于他通常不需要太長時間。

類比:當(dāng)用這種方式估算時,你不必把所有用戶故事都按一個基線或是通用的參照物進(jìn)行比較,而是把每個新的用戶故事與那些已經(jīng)估算過的用戶故事進(jìn)行比較。這稱為三角測量。

分解:分解是指將一個用戶故事或者特性分解為更小、更容易估算的部分。不過當(dāng)分解太過時,不僅忘記某項任務(wù)的可能性會增加,而且對于大量小任務(wù)都估算值求和也會出現(xiàn)問題。

計劃撲克:要得到一個估算值,我們除了可以依賴專家意見、類比和分解,還可以依賴計劃撲克。計劃撲克是一個有趣而有效的方法,它結(jié)合了上述三種方法。在計劃撲克中,每個估算者有一疊寫著有效估算值的卡片。每討論一個功能,每個估算者就選擇一張代表他的估算值的卡片。所有的卡片都會同時展示出來。團(tuán)隊對估算值進(jìn)行討論,重復(fù)這個過程直到團(tuán)隊的估算達(dá)成一致。

不確定因素如何處理:

大多數(shù)項目都包含大量的不確定性。項目團(tuán)隊建立的進(jìn)度表和最后期限中往往沒有完全反映這種不確定性。有些時候,如果這種不確定性非常大或者非常顯著,就需要在估算項目持續(xù)時間的時候采取一些額外的步驟。這些情況可能包括:提前很早就進(jìn)行項目計劃、項目必須絕對滿足最后期限(同時交付一組相當(dāng)嚴(yán)格的功能集)、項目是外包的、需求人員處于非常表面的層次、或者在日期出錯時會產(chǎn)生嚴(yán)重的影響(經(jīng)濟(jì)或其他方面)等。

特性緩沖區(qū)和進(jìn)度緩沖區(qū)是兩類最常見的緩沖區(qū)。當(dāng)團(tuán)隊確定了項目中所有需求的優(yōu)先級,而且發(fā)現(xiàn)可能無法交付所有功能的時候,就需要建立一個特性緩沖區(qū)。另一方面,團(tuán)隊可以在進(jìn)度表中包含一定量的時間來建立進(jìn)度緩沖區(qū),這個時間的量反映了蘊(yùn)含在項目規(guī)模中的不確定性。團(tuán)隊可以通過同時估算每個用戶故事具有50%的概率的大小和具有90%的概率的大小來構(gòu)造進(jìn)度緩沖區(qū)。通過對每隊50%和90%估算值采用平方和和平方根的公式,可以估算出合適的進(jìn)度緩沖區(qū)大小。

項目應(yīng)該用特性緩沖區(qū)來預(yù)防特性不確定性,用進(jìn)度緩沖區(qū)來預(yù)防進(jìn)度不確定性。可以把特性緩沖區(qū)和進(jìn)度緩沖區(qū)結(jié)合起來。實際上,這常常是個好方法,因為它可以讓每個緩沖區(qū)的規(guī)模都更小。

計劃多團(tuán)隊項目:

敏捷開發(fā)項目傾向于在開發(fā)大型項目時避免使用大型開發(fā)團(tuán)隊,而是使用多個團(tuán)隊。當(dāng)有多個團(tuán)隊工作與一個項目時,他們就需要相互協(xié)調(diào)。

首先,團(tuán)隊?wèi)?yīng)該為他們的估算建立一個共同的基準(zhǔn)。所有戰(zhàn)隊都應(yīng)該同意按照相同的單位進(jìn)行估算:要么是故事的,要么是理想人天。

其次,當(dāng)多個團(tuán)隊需要一起工作的時候,盡早給他們的用戶故事增加細(xì)節(jié)常常很有幫助。進(jìn)行這一工作的最佳辦法是確認(rèn)產(chǎn)品負(fù)責(zé)人對于用戶故事的滿意條件。滿意條件就是一旦故事完全實現(xiàn)了,就可以進(jìn)行演示的那些細(xì)節(jié)。

第三,在發(fā)布計劃過程中結(jié)合一個滾動性前瞻計劃,可以讓多個團(tuán)隊受益。滾動性前瞻計劃簡單地向前看幾次迭代(典型的是2~3次),通過共享在不久的將來每個團(tuán)隊分別會處理那些工作的信息,讓團(tuán)隊之間可以協(xié)調(diào)工作。

第四,在具有很多團(tuán)隊間依賴性的高度復(fù)雜項目中,把饋送緩沖區(qū)結(jié)合到計劃中是很有意義的。饋送緩沖區(qū)是一段時間,可以避免由于一個團(tuán)隊推遲交付而導(dǎo)致另一個團(tuán)隊推遲啟動。

監(jiān)督迭代計劃:

任務(wù)板:常常是一張白板、軟木板或者只是墻上特定的一片區(qū)域,可以幫助開發(fā)團(tuán)隊組織他們的工作,并把它們可視化。任務(wù)版的各列都帶有標(biāo)題,團(tuán)隊成員根據(jù)工作進(jìn)展把任務(wù)卡在個列間移動。

迭代燃盡圖:只是用來跟蹤當(dāng)前迭代中的工作,它的縱軸是剩余工作的小時數(shù),而橫軸是迭代中的天數(shù)。

團(tuán)隊不應(yīng)該計算或跟蹤個人速度。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容