1. 程式人生 > 其它 >專案生命週期選擇

專案生命週期選擇

專案有多種形式,也有多種實施方式。專案團隊需要認識到相關特徵和方案,以選擇最可能使專案成功的方法。

敏捷實踐指南涉及四種生命週期:

1、預測型生命週期
這是一種更為傳統的方法,提前進行大量的計劃工作,然後一次性執行;執行是一個連續的過程。強調根據部門劃分的,有效的,順序的工作;不會再結束前交付商業價值;遇到變更,產生意想不到的成本。

2、迭代型生命週期
這種方法允許對未完成的工作進行反饋,從而改進和修改該工作。專案複雜性高,變更頻繁,專案氛圍受到相關方對所需最終產品的不同觀點支配時,採用迭代生命週期更有優勢。

3、增量型生命週期
這種方法向客戶提供各個已完成的, 可能立即使用的可交付成果。少量可交付成果的頻分交付,確保客戶能儘早獲得價值。

4、敏捷生命週期
這種方法既有迭代,也有增量,便於完善工作,頻繁交付。增量交付會發現隱藏或誤解的需求。敏捷生命週期是符合《敏捷宣言》原則的週期。特別是,客戶滿意度將隨著有價值產品的早期交付和持續交付不斷提升。此外,功能性的、提供價值的增量可交付成果,是衡量進展的主要尺度。 為了適應更頻繁的變更,和更頻繁地交付專案價值,敏捷生命週期結合了迭代和增量方法。

  • 基於迭代的敏捷
    團隊以迭代相等持續時間的時間盒形式交付完整的功能;團隊不會同時完成所有迭代工作。

  • 基於流程的敏捷
    從待辦事項列表中提取若干功能開始工作,而不是按照基於迭代的進度計劃開始工作。團隊定義任務板各列的工作流,並管理各列的進行中的工作。完成不同功能所花費的時間可能有所不同。團隊讓進行中的工作的規模儘量小,以便儘早發現問題,並在需要變更時減少返工。無需利用迭代定義計劃和稽核點,而由團隊和業務相關方決定規劃、產品評審與回顧的最適當的進度計劃。

四種生命週期的特徵比較如下表所示:

迭代 vs 增量
迭代”和“增量”是敏捷軟體開發中的兩個重要概念,要想比較徹底地理解“迭代”和“增量”,我們將其對比一下。
迭代,就是在實現軟體的每一功能時反覆求精的過程,是提升軟體質量的過程,是從模糊到清晰的過程;
而增量,則是強調軟體在釋出不同的版本時,每次都多釋出一點點,是軟體功能數量漸增地釋出的過程。

二者的對比如下圖所示:

敏捷適用性篩選器:
有各種評估模型可用來幫助確定使用敏捷方法的適合性或差距。這些模型評估專案和具有適應性和適用性的組織因素,然後提供分數表明一致性或潛在風險領域。《敏捷實踐指南》附件 X3P125-138綜合提供了各種流行的評估模型,它們可用作敏捷適用性篩選器。

混合生命週期:
對於整個專案,沒有必要使用單一的方法。為達到特定的目標,專案經常要結合不同的生命週期要素。預測、迭代、增量或敏捷方法的組合就是一種混合方法。專案管理的目標是在給定的當前環境下儘可能以最好的方式創造商業價值。專案採用敏捷方法亦或預測法,都無關緊要。 要提出的問題是:“我們怎樣做才能最成功?”當團隊創造價值時,是否需要反饋?如果需要,增量方法將會有所幫助。在探討各種想法時,是否需要管理風險?如果需要,迭代方法或敏捷方法將會有所幫助。 當組織無法交付中間價值時,敏捷方法可能不是很有用。這樣沒有問題,但為了敏捷而敏捷並不是目標。關鍵在於,要選擇一個對專案、風險和文化管理有用的生命週期或生命週期的組合。 關乎頻繁向客戶交付。而這種交付要給團隊帶來反饋,團隊利用上述反饋規劃並重新規劃下一部分的工作。

許多團隊無法在一夜之間切換到敏捷工作方式。對於那些已經習慣於預測型環境、並在其中獲得成功的人士,敏捷技術的觀感截然不同。組織越大,活動部件越多,轉換需要的時間就越長。因此,計劃一個漸進的過渡是有意義的。

漸進的過渡涉及到要增加更多的迭代技術,以便改進學習,加強團隊和相關方的一致性。之後, 還要考慮增加更多的增量技術,以加快對發起人的價值和投資回報。上述各種方法的組合被視為一種混合方法。
在一個風險不大、具有中低程度不確定性的專案中嘗試這些新技術。在組織成功地使用混合方法後,再嘗試更復雜的專案,這些專案需要增加更多的技術。這是一種根據組織的情況、特定的風險,以及團隊適應並接受變革的就緒情況而調整的漸進混合過渡。

混合敏捷方法:
敏捷團隊很少將其實踐侷限於一種敏捷方法。每個專案背景都有其各自的獨特性,比如團隊成員技能和背景的不同組合;開發中的產品的各個組成部分;以及工作環境中的年齡、規模、關鍵性、複雜性和監管制約因素等。敏捷框架並不是針對團隊定製的。為了定期交付價值,團隊可能需要對實踐進行裁剪。通常,團隊都會實踐各自特殊的敏捷組合,即便他們使用一個特定的框架作為起點也不例外。

協調方法 :
裁剪敏捷框架的一個例子是,一個廣泛使用的常見協調方法涉及到協調使用 Scrum框架、看板方法和極限程式設計 (XP) 方法的要素。Scrum為產品待辦事項列表、產品負責人、Scrum 主管以及跨職能開發團隊的使用提供指導,包括衝刺計劃、每日例會、衝刺評審和衝刺回顧會議。看板面板幫助團隊進一步提高效率,方法是將工作流視覺化、使障礙更容易被察覺,以及通過調整在製品限制來實現流程管理。此外,受極限程式設計啟發的工程實踐,如使用故事卡、持續整合、重構、自動化測試和測試驅動開發,將進一步提高敏捷團隊的效力。總之,與孤立採用各種實踐相比,協調這些不同來源的實踐將產生更好的協同成果。

有時,為了更好地配合,根據專案屬性對方法進行裁剪。敏捷實踐指南表 3-2列出一些要考慮的專案因素和裁剪方案。

關於影響裁剪的因素的更多指導,請參見《敏捷實踐指南》P119-123附件X2“影響裁剪的屬性”。更詳細的內容參考《敏捷實踐指南》。