Agile方法

Agile方法即敏捷方法(agile methodologies)(也被稱為輕量級方法,lightweight methodology),它是一組開發方法的統稱。 隨著技術的迅速發展和經濟的全球化,軟體開發出現了新的特點,即在需求和技術不斷變化的情況下實現快節奏的軟體開發,這就對生產率提出了很高的要求。

ISO-9000、CMM、SPICE目前已被公認為軟體質量保障方面的事實標準,但由於其強調管理和控制,追求項目的可預測性和過程狀態的可視性,在提高生產率方面並未予以足夠的重視,實施時一方面需要大量中間製品(過程文檔)的製作,給開發人員帶來很大負擔,另一方面,追求可預測性與實際需求的模糊和快速變化不相協調。在此情況下,出現了一些新的開發方法。

新的方法主要有Extreme Programming (簡稱XP)、SCRUM、Crystal Methodologies、Feature Driven Development(簡稱FDD)、Dynamic Systems Development Methodology(簡稱DSDM) 、Adaptive Software Development(簡稱ASD)、Pragmatic Programming等,統稱輕載(Lightweight)方法,以區別於傳統的開發方法(稱重載方法,Heavyweight)。2001年2月,新方法的一些創始人在美國猶他州成立了Agile 聯盟,將輕載方法正式更名為Agile方法,Agile有輕巧、機敏、活力的意思。

Agile 方法目前還沒有一個明確的定義,其特點是對軟體生產率的高度重視,主要適用於需求模糊或快速變化下的、小型項目組的開發。有人稱,Agile方法是在保證軟體開發有成功產出的前提下,儘量減少開發過程中的活動和製品的方法,籠統的講就是,"剛剛好"(Just enough),即開發中的活動及製品既不要太多也不要太少,在滿足所需的軟體質量要求的前提下,力求提高開發效率。

任何軟體開發方法都有一個相應的價值系統(Value system),方法通過價值系統對過程加以指導,方法只有在其套用周境(context)與價值系統相吻合時才能發揮真正效力,價值系統的基礎是對世界的信仰和對軟體開發特點的認識,可以說是核心理念。

Agile方法的代表人之一Martin Fowler提出了Agile方法的核心理念:適應和以人為本。

Agile方法中的價值系統和指導原則

Agile聯盟提出了"四個價值"、"十二個指導原則"。

Agile方法的四個價值:

(1) 較之於過程和工具,更注重人及其相互作用的價值。

(2) 較之於無所不及的各類文檔,更注重可運行的軟體的價值。

(3) 較之於契約談判,更注重與客戶合作的價值。

(4) 較之於按計畫行事,更注重回響需求變化的價值。

Agile方法的指導原則:

(1) 在快速不斷地交付用戶可運行軟體的過程中,將使用戶滿意放在第一位。

(2) 以積極的態度對待需求的變化(不管該變化出現在開發早期還是後期)。Agile過程緊密圍繞變化展開並利用變化來實現客戶的競爭優勢。

(3) 以幾周到幾個月為周期,儘快、不斷地交付可運行的軟體供用戶使用。

(4) 在項目過程中,業務人員和開發人員最好能一起工作。

(5) 以積極向上的員工為中心建立項目組,給予他們所需的環境和支持,對他們的工作予以充分的信任。

(6) 在項目組中,最有用、最有效的信息溝通手段是面對面的交談。

(7) 項目進度度量的首要依據是可運行的軟體。

(8) Agile過程高度重視可持續開發。項目發起者、開發者和用戶應能始終保持步調一致。

(9) 應時刻關注技術上的精益求精和設計的合理,這樣能提高軟體的快速應變力。

(10) 簡單化(儘可能減少不必要工作的藝術)是基本原則。

(11) 最好的框架結構、需求和設計產生於自組織的項目組。

(12) 項目組要定期對其運作方面進行反思,提出改進意見,並相應進行細調。

此外,Agile方法實施中一般採用面向對象技術(接口定義良好的其它開發技術也可),另外還強調在開發中要有足夠的工具(如配置管理工具、建模工具等)支持。

相關詞條

相關搜尋

熱門詞條

聯絡我們