天天看點

《靈活疊代開發:管理者指南》—第2章2.1節疊代開發

本節書摘來自異步社群《靈活疊代開發:管理者指南》一書中的第2章2.1節疊代開發,作者【美】craig larman,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

第2章 疊代和漸進

靈活疊代開發:管理者指南

經驗的神奇之處在于:它能夠提醒你不再犯同樣的錯誤。

—f. p. 瓊斯(f. p. jones)

概述

疊代和漸進方法的基本實踐,包括時間箱(timeboxing)和自适應計劃。

采用疊代方法的一個常見錯誤。

特定的疊代和漸進方法,包括evo和up。

疊代和漸進開發不僅是現代軟體方法的基礎,也是早在20世紀60年代就使用的方法(有關這段曆史參見6.3節)。靈活方法是疊代和漸進方法的子集。本章總結了關鍵的實踐方法:

疊代開發 漸進開發

風險驅動和客戶驅動 漸進需求

時間箱 自适應計劃

2.1 疊代開發

疊代開發(iterative development)是一種建構軟體(或者其他東西)的方式,軟體的整個生命周期依次由幾個疊代組成(疊代計劃技巧參見11.1節)。每個疊代(iteration)都是一個獨立的迷你項目,它們由一系列活動組成,例如,需求分析、設計、程式設計和測試。每次疊代的最終目标是産生一個疊代釋出(iteration release),一個穩定的、內建的、經過測試的部分完成的系統。要明确的是,每一個疊代版本都是将所有團隊的全部軟體整合在一起産生的。絕大多數疊代版本隻對内釋出,不對外釋出,作為基線(baseline),主要供開發團隊從中獲益。疊代版本的最終版是完成的産品,面向市場或者客戶進行釋出,參見圖2-1。

《靈活疊代開發:管理者指南》—第2章2.1節疊代開發

盡管在理論上疊代隻能用于簡化或者性能優化,但是這個部分完成的系統通常會在一次又一次的疊代過程中伴随着新特性的出現而逐漸成長,換言之,就是增量開發(incremental development)。通過疊代來增長系統的概念稱為疊代和增量開發(iterative and incremental development,iid),通常簡稱為“疊代開發”。有些舊的過程文獻[wong84]使用術語“增量開發”,意思是一系列的疊代開發,每次都先當機預先定義的規格說明,随後圍繞新特性進行開發。不過,這沒有推廣開來。時至今日,絕大多數開發方法都是iid方法,并且,iid是所有靈活方法(包括scrum和xp)的核心。

絕大多數項目在最終公開釋出之前,至少需要進行3次疊代。我曾經看到過一個曆時兩年的valtech項目,經曆了将近20次疊代,每次疊代平均花費4周的時間。此外,我還聽說過一個經曆了45次疊代的長期項目。

在現代的疊代方法中,推薦的疊代周期是1~6周。

例如,每次疊代不僅包括需求分析,還包括産品級的程式設計。而且,每次疊代的結果不是一個原型或者概念性的試驗,而是最終系統的一個子集。

概括地說,可将疊代視為一個獨立的迷你項目,每次疊代中會出現許多規程下的活動(需求分析、測試等),參見圖2-2。

《靈活疊代開發:管理者指南》—第2章2.1節疊代開發

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

繼續閱讀