敏捷開發原則及方法

敏捷開發是一種以人爲核心、迭代、循序漸進的開發方法。在敏捷開發中,軟件項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特徵。換言之,就是把一個大項目分爲多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟件一直處於可使用狀態。敏捷開發的原則包括:

①最優先要做的是通過儘早的、持續的交付有價值的軟件來使客戶滿意。

②即使到了開發的後期,也歡迎改變需求。敏捷過程利用變化來爲客戶創造競爭優勢。

③經常性的交付可以工作的軟件,交付的間隔可以從幾周到幾個月,交付的時間間隔越短越好。但不要求每次交付的都是系統的完整功能。

④在整個項目開發期間,業務人員和開發人員必須天天都在一起工作。

⑤圍繞被激勵起來的人來構建項目。給他們提供所需要的環境和支持,並且信任他們能夠完成工作。

⑥在團隊內部,最具有效果並且富有效率的傳遞信息的方法,就是面對面的交談。

⑦工作的軟件是首要進度度量標準。

⑧敏捷過程提供持續的開發速度。責任人、開發者和用戶應該能夠保持一個長期的、恆定的開發速度。

⑨不斷地關注優秀的技能和好的設計會增強敏捷能力。

⑩簡單——使未完成的工作最大化的藝術——是根本的。

⑪最好的構架、需求和設計出自於團隊內部。

⑫每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然後相應地對自己的行爲進行調整。

敏捷開發包括一系列的方法,主流的有如下7種:

①XP。XP (極限編程)的思想源自Kent Beck和Ward Cunningham在軟件項目中的合作經歷。XP注重的核心是溝通、簡明、反饋和勇氣。因爲知道計劃永遠趕不上變化,XP無需開發人員在軟件開始初期做出很多的文檔。XP提倡測試先行,爲了將以後出現bug的機率降到最低。

②SCRUM。SCRUM是一種迭代的增量化過程,用於產品開發或工作管理。它是 一種可以集合各種開發實踐的經驗化過程框架。SCRUM中發佈產品的重要性高於一切。 該方法由KenSchwaber和Jeff Sutherland提出,是旨在尋求充分發揮面向對象和構件技術的開發方法,是對迭代式面向對象方法的改進。

③ Crystal Methods。Crystal Methods (水晶方法族)由 Alistair Cockbum 在20世紀90年代末提出。之所以是個系列,是因爲他相信不同類型的項目需要不同的方法。雖然水晶系列不如XP的產出效率高,但有更多的人能夠接受並遵循它。

④ FDD。FDD (特性驅動開發)由 PeterCoad、Jeff de Luca 和 Eric Lefebvre 共同開發,是一套針對中小型軟件開發項目的開發模式。此外,FDD是一個模型驅動的快速迭代開發過程,它強調的是簡化、實用、易於被開發團隊接受,適用於需求經常變動的項目。

⑤ASD。ASD (自適應軟件開發)由Jim Highsmith在1999年正式提出。ASD強調開發方法的適應性,這一思想來源於複雜系統的混純理論。ASD不像其他方法那樣有很多具體的實踐做法,它更側重爲ASD的重要性提供最根本的基礎,並從更高的組織和管理層次來闡述開發方法爲什麼要具備適應性。

⑥DSDM。DSDM (動態系統開發方法)是衆多敏捷開發方法中的一種,它倡導以業務爲核心,快速而有效地進行系統開發。實踐證明DSDM是成功的敏捷開發方法之一。在英國,由於其在各種規模的軟件組織中的成功,它已成爲應用最爲廣泛的快速應用開發方法。DSDM不但遵循了敏捷方法的原禪,且也適合那些成熟的傳統開發方法有堅實基礎的軟件組織。

⑦輕量型RHRUP其實是個過程的框架,它可以包容許多不同類型的過程,Craig Lannan極力主張以敏捷型方式來使用RUP。他的觀點是:目前如此衆多的努力以推進敏捷型方法,只不過是在接受能被視爲RUP的主流00開發方法而已。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章