敏捷開發包括一系列的方法,主流的有如下七種:
XP
XP(極限編程)的思想源自Kent Beck和Ward Cunningham在軟件項目中的合作經歷。XP注重的核心是溝通、簡明、反饋和勇氣。因為知道計劃永遠趕不上變化,XP無需開發人員在軟件開始初期做出很多的文檔。XP提倡測試先行,為了將以后出現bug的幾率降到最低。
SCRUM
SCRUM是一種迭代的增量化過程,用于產品開發或工作管理。它是一種可以集合各種開發實踐的經驗化過程框架。SCRUM中發布產品的重要性高于一切。
該方法由Ken Schwaber和 Jeff Sutherland 提出,旨在尋求充分發揮面向對象和構件技術的開發方法,是對迭代式面向對象方法的改進。
Crystal Methods
Crystal Methods(水晶方法族)由Alistair Cockburn在20實際90年代末提出。之所以是個系列,是因為他相信不同類型的項目需要不同的方法。雖然水晶系列不如XP那樣的產出效率,但會有更多的人能夠接受并遵循它。
FDD
FDD(Feature-Driven Development,特性驅動開發)由Peter Coad、Jeff de Luca 、Eric Lefebvre共同開發,是一套針對中小型軟件開發項目的開發模式。此外,FDD是一個模型驅動的快速迭代開發過程,它強調的是簡化、實用、易于被開發團隊接受,適用于需求經常變動的項目。
ASD
ASD(Adaptive Software Development,自適應軟件開發)由Jim Highsmith在1999年正式提出。ASD強調開發方法的適應性(Adaptive),這一思想來源于復雜系統的混沌理論。ASD不象其他方法那樣有很多具體的實踐做法,它更側重為ASD的重要性提供最根本的基礎,并從更高的組織和管理層次來闡述開發方法為什么要具備適應性。
DSDM
DSDM(動態系統開發方法)是眾多敏捷開發方法中的一種,它倡導以業務為核心,快速而有效地進行系統開發。實踐證明DSDM是成功的敏捷開發方法之一。在英國,由于其在各種規模的軟件組織中的成功,它已成為應用最為廣泛的快速應用開發方法。
DSDM不但遵循了敏捷方法的原理,而且也適合那些成熟的傳統開發方法有堅實基礎的軟件組織。
輕量型RUP
RUP其實是個過程的框架,它可以包容許多不同類型的過程,
Craig Larman 極力主張以敏捷型方式來使用RUP。他的觀點是:目前如此眾多的努力以推進敏捷型方法,只不過是在接受能被視為RUP 的主流OO開發方法而已。
?