時限迭代
2023 年 4 月 4 日
時限迭代是一種分割和排程專案工作的方式,特別是與敏捷軟體專案相關。團隊將軟體的明顯功能分解成 使用者故事,並將時間分解成固定期間(例如一週),稱為迭代。然後,他們透過將故事分配到迭代中來排程故事。故事會進行粗略估計,以便團隊可以找出一個迭代中可以容納多少個故事。
迭代是時限的,因為沒有機制可以延後迭代的結束日期以完成任何故事。如果一個故事沒有在下一輪迭代中完成,它就會被視為未完成,而團隊會為完成它所剩的工作建立一個新的故事。
找出迭代容量的一個好方法是使用 昨日天氣。我們將未來迭代的容量設定為我們在上一個迭代中完成的故事數量。實際上,明智的做法是考慮最近幾個迭代,以平滑容量數字的變化。最明顯的方法是取最近幾個迭代的平均值,但更好的方法是使用最小值來提供有價值的 鬆弛。此機制是一個自然自我校準的回饋迴路。
時限迭代的另一種方法是 持續流。這裡沒有迭代,當一個故事完成時,團隊只需從優先順序列表中選擇下一個故事。許多人偏好這種方法,因為它消除了將故事分配到迭代所需的努力 - 你只需選擇下一個故事即可。但迭代提供了規律的節奏,人們發現這對於設定工作節奏很有價值。
迭代之所以最有價值,是因為它們能夠讓問題浮現。迭代的結束是一個自然的停止功能,可以防止嚴重的超時,並為估計品質建立一個回饋迴路。如果一個團隊經常沒有時間完成故事,或通常在迭代結束時看到緊張的工作,這些都是團隊工作方式中出現障礙的訊號。這種問題訊號機制對於努力實踐良好工程實務的團隊來說特別有價值。解決這些問題的最佳方法是增加更多彈性來處理根本問題,這是一個可悲地被低估的解決方法。
進一步閱讀
多年來,已經寫了很多關於敏捷規劃的書籍,其中大多數都是基於時間限制的迭代。我目前的推薦是 敏捷開發的藝術,它詳細介紹了選擇迭代長度、計算容量、追蹤和處理緊急請求。關於 任務規劃 的相關章節可以在他的網站上找到。
我也可以提到我自己的書 規劃極端程式設計,這是本世紀初與肯特·貝克合著的。儘管我認為我們英格蘭西海岸散文的高雅氣勢在這個領域中是無與倫比的,但現在我會轉向 敏捷開發的藝術。
致謝
Alexander Steinhart、Ana Lallena、Andrew Thal、David Jetter、Ian Cartwright、James Shore、John Hearn、Kennedy Collins、Kief Morris 和 Premanand Chandrasekaran 在我們的內部郵件清單上討論了這篇文章