項目有多種形式,也有多種實施方式。項目團隊需要認識到相關特征和方案,以選擇最可能使項目成功的方法。
敏捷實踐指南涉及四種生命周期:
1、預測型生命周期
這是一種更為傳統的方法,提前進行大量的計划工作,然后一次性執行;執行是一個連續的過程。強調根據部門划分的,有效的,順序的工作;不會再結束前交付商業價值;遇到變更,產生意想不到的成本。
2、迭代型生命周期
這種方法允許對未完成的工作進行反饋,從而改進和修改該工作。項目復雜性高,變更頻繁,項目氛圍受到相關方對所需最終產品的不同觀點支配時,采用迭代生命周期更有優勢。
3、增量型生命周期
這種方法向客戶提供各個已完成的, 可能立即使用的可交付成果。少量可交付成果的頻分交付,確保客戶能盡早獲得價值。
4、敏捷生命周期
這種方法既有迭代,也有增量,便於完善工作,頻繁交付。增量交付會發現隱藏或誤解的需求。敏捷生命周期是符合《敏捷宣言》原則的周期。特別是,客戶滿意度將隨着有價值產品的早期交付和持續交付不斷提升。此外,功能性的、提供價值的增量可交付成果,是衡量進展的主要尺度。 為了適應更頻繁的變更,和更頻繁地交付項目價值,敏捷生命周期結合了迭代和增量方法。
-
基於迭代的敏捷
團隊以迭代相等持續時間的時間盒形式交付完整的功能;團隊不會同時完成所有迭代工作。
-
基於流程的敏捷
從待辦事項列表中提取若干功能開始工作,而不是按照基於迭代的進度計划開始工作。團隊定義任務板各列的工作流,並管理各列的進行中的工作。完成不同功能所花費的時間可能有所不同。團隊讓進行中的工作的規模盡量小,以便盡早發現問題,並在需要變更時減少返工。無需利用迭代定義計划和審核點,而由團隊和業務相關方決定規划、產品評審與回顧的最適當的進度計划。
四種生命周期的特征比較如下表所示:
迭代 vs 增量
迭代”和“增量”是敏捷軟件開發中的兩個重要概念,要想比較徹底地理解“迭代”和“增量”,我們將其對比一下。
迭代,就是在實現軟件的每一功能時反復求精的過程,是提升軟件質量的過程,是從模糊到清晰的過程;
而增量,則是強調軟件在發布不同的版本時,每次都多發布一點點,是軟件功能數量漸增地發布的過程。
二者的對比如下圖所示:
敏捷適用性篩選器:
有各種評估模型可用來幫助確定使用敏捷方法的適合性或差距。這些模型評估項目和具有適應性和適用性的組織因素,然后提供分數表明一致性或潛在風險領域。《敏捷實踐指南》附件 X3P125-138綜合提供了各種流行的評估模型,它們可用作敏捷適用性篩選器。
混合生命周期:
對於整個項目,沒有必要使用單一的方法。為達到特定的目標,項目經常要結合不同的生命周期要素。預測、迭代、增量或敏捷方法的組合就是一種混合方法。項目管理的目標是在給定的當前環境下盡可能以最好的方式創造商業價值。項目采用敏捷方法亦或預測法,都無關緊要。 要提出的問題是:“我們怎樣做才能最成功?”當團隊創造價值時,是否需要反饋?如果需要,增量方法將會有所幫助。在探討各種想法時,是否需要管理風險?如果需要,迭代方法或敏捷方法將會有所幫助。 當組織無法交付中間價值時,敏捷方法可能不是很有用。這樣沒有問題,但為了敏捷而敏捷並不是目標。關鍵在於,要選擇一個對項目、風險和文化管理有用的生命周期或生命周期的組合。 關乎頻繁向客戶交付。而這種交付要給團隊帶來反饋,團隊利用上述反饋規划並重新規划下一部分的工作。
許多團隊無法在一夜之間切換到敏捷工作方式。對於那些已經習慣於預測型環境、並在其中獲得成功的人士,敏捷技術的觀感截然不同。組織越大,活動部件越多,轉換需要的時間就越長。因此,計划一個漸進的過渡是有意義的。
漸進的過渡涉及到要增加更多的迭代技術,以便改進學習,加強團隊和相關方的一致性。之后, 還要考慮增加更多的增量技術,以加快對發起人的價值和投資回報。上述各種方法的組合被視為一種混合方法。
在一個風險不大、具有中低程度不確定性的項目中嘗試這些新技術。在組織成功地使用混合方法后,再嘗試更復雜的項目,這些項目需要增加更多的技術。這是一種根據組織的情況、特定的風險,以及團隊適應並接受變革的就緒情況而調整的漸進混合過渡。
混合敏捷方法:
敏捷團隊很少將其實踐局限於一種敏捷方法。每個項目背景都有其各自的獨特性,比如團隊成員技能和背景的不同組合;開發中的產品的各個組成部分;以及工作環境中的年齡、規模、關鍵性、復雜性和監管制約因素等。敏捷框架並不是針對團隊定制的。為了定期交付價值,團隊可能需要對實踐進行裁剪。通常,團隊都會實踐各自特殊的敏捷組合,即便他們使用一個特定的框架作為起點也不例外。
協調方法 :
裁剪敏捷框架的一個例子是,一個廣泛使用的常見協調方法涉及到協調使用 Scrum框架、看板方法和極限編程 (XP) 方法的要素。Scrum為產品待辦事項列表、產品負責人、Scrum 主管以及跨職能開發團隊的使用提供指導,包括沖刺計划、每日例會、沖刺評審和沖刺回顧會議。看板面板幫助團隊進一步提高效率,方法是將工作流可視化、使障礙更容易被察覺,以及通過調整在制品限制來實現流程管理。此外,受極限編程啟發的工程實踐,如使用故事卡、持續集成、重構、自動化測試和測試驅動開發,將進一步提高敏捷團隊的效力。總之,與孤立采用各種實踐相比,協調這些不同來源的實踐將產生更好的協同成果。
有時,為了更好地配合,根據項目屬性對方法進行裁剪。敏捷實踐指南表 3-2列出一些要考慮的項目因素和裁剪方案。
關於影響裁剪的因素的更多指導,請參見《敏捷實踐指南》P119-123附件X2“影響裁剪的屬性”。更詳細的內容參考《敏捷實踐指南》。