理想的iteration長度

Ideal Iteration Length
http://www.infoq.com/news/2009/03/ideal-iteration-length

Mar 31, 2009
Posted by Vikas Hazrati
Published in InfoQ.com

在學習agile的過程中, 一個經常被人家詢問的問題, 就是一個iteration應該要有多長. 通常一個iteration長度的範圍, 在兩週到一個月之間. 選擇正確的長度是非常重要的決定, agile是否能成功地被採用, 適當的iteration長度是很關鍵. 這裡有許多Agile的專家, 分享他們如何決定iteration長度的心得.

Clinton Keith建議選擇較短的iteration長度會比較好, 會幫助你學習和驗證快一點. 他的說法是這樣的

一般新手在學agile時, 都會要求要長一點的iteration. 可是他並不鼓勵這樣, 因為大多數的team會把他搞成mini-waterfall的project. 他們會花一些時間在design上面, 然後花好幾週去做coding和整合, 最後幾天才作測試. 可是有經驗的團隊並不會這樣, 一天中他會每件事(design, coding, test)都做一點, 這樣才是比較好的方法.

所以根據Clinton的說法, 以下是幾個在決定iteation長度時, 需要考量的因素:

Customer feedback – The minimum amount of time in which a customer can provide feedback on the progress made.
Experience of the team – If the team has less experience with Agile, the iteration length should be short enough so that the team learns faster.
The overhead of reviews and planning – Generally a day is spent in reviews and planning which should be accounted for.
Ability to plan the iteration – If the iteration goals have a lot of uncertainty then the length should be shorter.
Balanced intensity – The intensity of work during the iteration should be consistent.


Vikrama Dhiman也有雷同的想法. 他也建議team需要根據自己的能力, 來切割客戶想要的功能到較小的user stories. 在一個短的iteration中, 較小的user stories比較容易被完成和測試. 以下是他認為較小的iteration所能帶來的好處:

Short sprints make certain bad habits impossible to get away with and certain good habits more attractive to learn.
Shorter sprints or iterations are difficult for product management team but also most desirable as they can make changes quickly.
Shorter sprints or iterations force continuous evaluation regularly and quickly.
Shorter sprints or iterations also allow the team to establish an empirical velocity very quickly.


Mike Cohn 提到在決定iteration長度, 可以考量以下屬性:

Amount of uncertainty – Higher the uncertainty, shorter should be the iteration length to tackle the uncertain scenario.
How Long Priorities Can Remain Unchanged – If the priorities for the stories are changing within an iteration then it is a fair indication that the iteration length needs to be shortened.
The Overhead of Iterating – If the project needs a ‘manual’ regression suite to be executed at the end of each iteration then shorter iterations could be more expensive.
How Soon a Feeling of Urgency Is Established – If the iteration lengths are too long then the team tends to become complacent through the early phase of the iteration and gets into a crunch mode towards the end. The key is to decide on a length which encourages the team to work at a consistent pace.

Mike認為根據他和不同team的經驗, 兩個禮拜是最理想. 管理和測試上的overhead是可以被控制的, team也容易融入這樣的節奏. 以下是他給agile團隊的建議:

Once you determine the appropriate iteration length, stick with it. Teams benefit greatly from having a rhythm to their projects. Any regular iteration length can provide this rhythm. This doesn’t mean that you can’t experiment with a different length, but avoid bouncing among different lengths without good reason.

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kojenchieh 的頭像
    kojenchieh

    David Ko的學習之旅

    kojenchieh 發表在 痞客邦 留言(0) 人氣()