1、什么是iteration和release?
iteration和release是兩個(gè)不同的概念,但在敏捷實(shí)踐活動(dòng)中,我們往往認(rèn)識的比較模糊,一個(gè)Iteration就是一次release,其實(shí)不然。那么,具體有什么區(qū)別和聯(lián)系呢?
Iteration(迭代):在固定的周期內(nèi),經(jīng)過需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試等活動(dòng),完成計(jì)劃的的業(yè)務(wù)需求,迭代結(jié)束提供一個(gè)可工作的產(chǎn)品。計(jì)劃的業(yè)務(wù)需求,可能是一個(gè)完整的User Story,也可能是一個(gè)Story中的若干task。
Release(發(fā)布):經(jīng)過一個(gè)或若干個(gè)iteration后,完成計(jì)劃中的所有User Story,經(jīng)過測試后才release,最終真正交付給客戶使用。
在我們的實(shí)踐活動(dòng)中,一個(gè)User Story所需的工作量超過我們的有效資源,無法安排在一個(gè)iteration內(nèi)。我們就會想當(dāng)然的會去延長迭代周期,增加有效資源以適應(yīng)所需工作量。殊不知,這更象是形式上的迭代開發(fā),無異于瀑布式項(xiàng)目開發(fā)過程。
2、建立固定的迭代周期,保持穩(wěn)定的開發(fā)節(jié)奏
Scurm方法也非常強(qiáng)調(diào)穩(wěn)定的迭代節(jié)奏,一個(gè)穩(wěn)定的迭代節(jié)奏就如同項(xiàng)目的的心跳。Simon Baker描述說:"就像心臟有規(guī)律地跳動(dòng)來保持身體運(yùn)行,固定的迭代長度提供了一個(gè)恒量,有助于建立開發(fā)和交付的節(jié)奏。根據(jù)我的經(jīng)驗(yàn),節(jié)奏是幫助取得不變的步幅的重要因素"(2004)。對于敏捷開發(fā)的團(tuán)隊(duì)而言,穩(wěn)定的迭代節(jié)奏可以讓產(chǎn)品保持更穩(wěn)定的交付。
3、如何保持穩(wěn)定的開發(fā)節(jié)奏?
當(dāng)一個(gè)迭代期內(nèi)可提供的有效資源無法實(shí)現(xiàn)一個(gè)User Story時(shí),我們?nèi)绾伟磁拍兀?在 談迭代周期控制的困惑 中已談到,這里不在細(xì)述。
4、如何選擇適合自己團(tuán)隊(duì)的迭代周期?
一般需要考慮以下因素:
1)、整個(gè)項(xiàng)目周期長度(完成計(jì)劃的商業(yè)需求所需時(shí)間)
較短的迭代周期將會有以下一些好處:更頻繁的向客戶展示/交付可用的軟件;更頻繁的度量開發(fā)進(jìn)度;更頻繁的取得反饋并改進(jìn);一般大的項(xiàng)目最好有多次(3次或以上)獲取反饋、修正的機(jī)會,根據(jù)項(xiàng)目周期調(diào)整迭代周期長度。
2)、不確定性的多少
不確定性有多種形式,客戶到底想要的是什么?小組的工作效率,時(shí)間?技術(shù)門檻等都不存在不確定性,不確定性越多,迭代就應(yīng)該越短。
3)、獲得反饋的難易程度
指小組獲取反饋數(shù)量、頻度和及時(shí)性,視所處的環(huán)境不同,選擇合適的迭代長度;
4)、優(yōu)先級要以多久保持不變
開發(fā)小組承諾在一次迭代中完成一組特定的功能,重要的是不要改變他們的目標(biāo)方向,優(yōu)先級不會被改變的時(shí)間長度是選擇迭代長度時(shí)需要考慮的因素。
5)、迭代的系統(tǒng)開銷
每次迭代的成本(時(shí)間),如迭代中進(jìn)行的完整回歸測試。最佳迭代周期的目標(biāo)之一就是減少或近似消除每次迭代的系統(tǒng)開銷。如每次回歸時(shí)間成本很高,那決定周期長度時(shí)更傾向于長一些。
6)、團(tuán)隊(duì)成員的緊迫感
Niels Malotaux指出:"只要項(xiàng)目的結(jié)束日期還在遙遠(yuǎn)的將來,我們就不會感到任何壓力,并從容不迫的工作。當(dāng)結(jié)束日期逼近時(shí),我們才會開始更努力的工作"。意思指項(xiàng)目開始大家比較放松,而越臨近結(jié)束,工作越忙壓力越大。因此,選擇一個(gè)合適的迭代周期長度,讓團(tuán)隊(duì)成員在整個(gè)迭代過程中感受到的壓力更平均,不是給團(tuán)隊(duì)更多的壓力,而是壓力總量平均分布在迭代過程中。
每個(gè)團(tuán)隊(duì)根據(jù)所在環(huán)境和條件確定一個(gè)合適的迭代長度,一般建議2~4周。在我們的實(shí)踐中,以2周一次迭代的頻率,保持相對穩(wěn)定的開發(fā)和交付的節(jié)奏。
5、參考資料:
《敏捷估計(jì)與規(guī)劃》 Mike Cohn
posted on 2011-01-31 14:26
josson 閱讀(3421)
評論(0) 編輯 收藏 所屬分類:
項(xiàng)目管理