本文內容章節:

一、什么是敏捷?

1、敏捷宣言及其由來

1.1 個體和交互勝過過程和文檔

1.2 可工作的軟件勝過全面的文檔

1.3 客戶合作勝過合同談判

1.4 相應變化勝過遵循計劃

2、七種敏捷開發方法

2.1 XP(極限編程)

2.2 Scrum(迭代式增量軟件開發過程)

2.3 Crystal Methods(水晶方法族)

2.4 FDD (特性驅動開發)

2.5 ASD(自適應軟件開發)

2.6 DSDM(動態系統開發方法)

2.7 輕量型RUP

二、為什么要做敏捷?

1、敏捷和傳統瀑布的特點和差別

1.1 瀑布開發模式的五大特點

1.2 敏捷開發模式的八大特點

2、敏捷能解決什么問題

2.1 版本發布的時間越來越長;

2.2 無法按時發布;

2.3 在版本發布的最后階段讓軟件穩定的時間越來越長;

2.4 在發布期間很難進行改變;

2.5 質量持續惡化。

3、敏捷有哪些優缺點

3.1 敏捷的優點

.......

(備注:后續內容請閱讀下周發布的本文下篇)

一、什么是敏捷?

敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。

我們要想用好敏捷方式去管理項目就不得不去了解它,其中敏捷宣言就是重中之重??此坪唵蔚乃木湓拝s蘊含了一系列的變革與創新。下面,我們就先來聊聊這四句話。

1、敏捷宣言及其由來

在2001年2月11日到13日,17位軟件開發領域的領軍人物聚集在美國猶他州的滑雪勝地Snowbird雪場。與會者包括XP、Scrum、DSDM、適應性軟件開發和其他支持此類方法的方法學代表,它們都需要選擇一種方法來替代文檔驅動的、重量級的軟件開發過程。經過兩天的討論,“Agile”這個詞被全體與會者所接受,用以概括一套全新的軟件開發價值觀。Jim Highsmith認為,大部分敏捷原則都可以歸結為“糊狀材料”和“流星似的興趣提升,有時對敏捷方法學的批判就是這種糊狀材料蘊含的傳統和價值”,這是這樣的觀點,形成了下面的敏捷宣言:

1.1個體和交互勝過過程和文檔

通過第一條宣言的“Individuals”,我們就可以看到敏捷對于人是排在第一位的。這是因為敏捷方法著重強調有能力的、可以自我管理的團隊并且是一只有自制能力的團隊,而不需要日復一日的管理干預。而管理者要能夠保護團隊免受外界的干擾,讓團隊集中精力來消除項目中的各項障礙,讓團隊具有凝聚力和創造力。

對于團隊而言,需要由跨職能的成員組成,在目標明確后做出承諾,自行考慮目標的實現過程,實現自組織和自管理。著重解決“How”的問題。對于管理者而言,則需要確立項目的目標,把過程的管理交付于團隊,有團隊成員自行解決。

在整個過程中,需要面對面的溝通,而不通過文檔描述,著重解決“What”和“Why”的問題。

敏捷項目團隊的成員能夠彼此進行必要的協作,他們作為一個團隊創建系統,而不像一群接力比賽的運動員那樣按照順序的過程創建系統。他們運用自身所學,同時集體的知識也得到了積累。最終,引起設計、質量和生產率都得到提高。

1.2可工作的軟件勝過全面的文檔

通過之前的文章提到過,敏捷是以價值來驅動工作的,那么可工作的軟件就是我們的價值體現,在實現過程中的設計、編寫的代碼在不以軟件形式讓用戶使用的話,那么它們就是一推假設而且還是沒有價值的假設。這樣的觀點在傳統項目管理上通過完成百分比來度量進度是截然不同的,考察可工作的軟件讓我們能夠對項目的真實狀態做出合適的響應。所有東西都是可見的,能夠基于現有的產品做出決策,而不是只依據有關的文檔形式的材料。

事實上,團隊成員認為有些文檔工作是不經濟的。那是因為,通過文檔來描述需求等問題,會造成信息夾雜噪音,使傳遞的信息失真,所以更愿意用基于可工作的產品來進行面對面的溝通和反饋。

1.3客戶合作勝過合同談判

從傳統意義上來講,合同識別和定義了客戶想要的所有東西,規定了金額和完成日期。但對于軟件項目來說,由于需求的不固定導致了我們往往會制造出無法滿足客戶要求的產品,因為我們往往做一些沒有意義的工作,僅僅因為出于遵守合同的名義。用固定的方式去固定不穩定的假設,這本身就就充滿矛盾。

客戶合作意味著客戶已經成為開發過程中的組成部分。敏捷項目團隊重視客戶能夠學會如何讓客戶做出業務決策。反過來,客戶也依賴項目團隊提供的重要的技術信息來做出合適的決策。有時客戶在沒有看到東西之前并不知道自己想要的是什么。

1.4相應變化勝過遵循計劃

在計劃驅動的環境中,所有需求都是被現實規定的,成本和完成日期是根據這些顆粒較細的任務通過自下而上的計算得到的。因此,嚴格根據計劃執行任務、控制范圍蔓延在計劃驅動的項目中非常重要,因為只有這樣才能限制或消除成本超支或進度拖延。事實上,敏捷項目團隊是非常訓練有素的,并且專注于制定計劃和在訪問這些計劃。敏捷方法中的計劃更遵循波浪起伏式的方法,采用自上而下的策略。

左邊的價值高于右邊的價值但別忘了:

在考慮敏捷宣言的最后一條價值陳述時,重要的是強調價值陳述左邊的條款,如果需要的話,在右邊條款確實能夠帶來價值的情況下在強調右邊的條款。這里只是考慮左邊的價值大過右邊的價值,但不代表右邊沒有價值。