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