敏捷軟體開發(英語:agile software development
),又稱敏捷開發,是一種從2023年代開始逐漸引起廣泛關注的一些新型軟體開發方法,是一種應對快速變化的需求的一種軟體開發能力。它們的具體名稱、理念、過程、術語都不盡相同,相對於「非敏捷」,更強調程式設計師團隊與業務專家之間的緊密協作、面對面的溝通(認為比書面的文件更有效)、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的**編寫和團隊組織方法,也更注重軟體開發中人的作用。詞源
敏捷一詞**於2023年初美國
猶他州雪鳥滑雪聖地的一次敏捷方法發起者和實踐者(他們發起組成了敏捷聯盟)的聚會。
雪鳥會議共同起草了敏捷軟體開發宣言。其中最重要的部分就是對一些與會者一致同意的軟體開發價值觀的表述。[1]
[2] 其中包括了以下方針:
其中左邊的描述是右邊原則的重點。
宣言中還包括以下原則:
敏捷方法有時候被誤認為是無計畫性和紀律性的方法,實際上更確切的說法是敏捷方法強調適應性而非預見性。
適應性的方法集中在快速適應現實的變化。當專案的需求起了變化,團隊應該迅速適應。這個團隊可能很難確切描述未來將會如何變化.
相比迭代式開發兩者都強調在較短的開發周期提交軟體,敏捷方法的週期可能更短,並且更加強調隊伍中的高度協作。
兩者沒有很多的共同點,瀑布模型式是最典型的預見性的方法,嚴格遵循預先計畫的需求、分析、設計、編碼、測試的步驟順序進行。步驟成果作為衡量進度的方法,例如需求規格,設計文件,測試計畫和**審閱等等。
瀑布式的主要的問題是它的嚴格分級導致的自由度降低,專案早期即作出承諾導致對後期需求的變化難以調整,代價高昂。瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。
相對來講,敏捷方法則在幾周或者幾個月的時間內完成相對較小的功能,強調的是能將盡早將盡量小的可用的功能交付使用,並在整個專案週期中持續改善和增強。
有人可能在這樣小規模的範圍內的每次迭代中使用瀑布式方法,另外的人可能將選擇各種工作並行進行,例如極限程式設計。
在敏捷方法其獨特之處以外,他和其他的方法也有很多共同之處,比如迭代開發,關注互動溝通,減少中介過程的無謂資源消耗。通常可以在以下方面衡量敏捷方法的適用性:從產品角度看,敏捷方法適用於需求萌動並且快速改變的情況,如系統有比較高的關鍵性、可靠性、安全性方面的要求,則可能不完全適合;從組織結構的角度看,組織結構的文化、人員、溝通則決定了敏捷方法是否適用。跟這些相關聯的關鍵成功因素有:
最重要的因素恐怕是專案的規模。規模增長,面對面的溝通就愈加困難,因此敏捷方法更適用於較小的隊伍,40、30、20、10人或者更少。大規模的敏捷軟體開發尚處於積極研究的領域。
另外的問題是專案初期的大量假定或者快速收集需求可能導致專案走入誤區,特別是客戶對其自身需要毫無概念的情況下。與之類似,人之天性很容易造成某個人成為主導並將專案目標和設計引入錯誤方向的境況。開發者經常能把不恰當的方案授予客戶,並且直到最後發現問題前都能獲得客戶認同。雖然理論上快速互動的過程可以限制這些錯誤的發生,但前提是要有效的「負反饋」,否則錯誤會迅速膨脹,並在最終提交時造成極大返工。
已經有一些專案管理工具用於敏捷開發,可以用它們來幫助規劃,跟蹤,分析和整合工作。 這些工具在敏捷開發中扮演的重要的角色,也是知識管理的一種方法。
通常包括:版本控制整合,進度跟蹤,工作分配,整合發布和迭代規劃,論壇和軟體缺陷的報告和跟蹤。
目前列入敏捷方法的有:
敏捷軟體開發
我們知道,傳統的開發模式已經不能不適用於現在情況,原因有很多 需求經常發生變化,軟硬體更新速度很快等,這些原因都使得傳統不管是 瀑布模型 還是 增量 不管是 快速原型 還是 螺旋 模型,這些軟體開發的模型,不在實用了。所以,在2001年,敏捷宣言提出,標誌著敏捷開發模型初步形成。那麼敏捷開發和傳統開...
敏捷軟體開發
隨著軟體規模的不斷擴大 軟體涉及的領域越來越廣,客戶對軟體要求也越來複雜,這一點的最直接的體現就是軟體需求的變化越來越頻繁。敏捷軟體開發正是為了應對這一問題而誕生的軟體工程學方法。它以適應性的過程代替傳統的 型的過程代替傳統的 性的過程,在很大程度上滿足了現代商業軟體業務複雜 需求多變 時間要求緊迫...
敏捷軟體開發
1.敏捷宣言 個體與互動 勝過 過程和工具 可用的軟體 勝過 完備的文件 客戶協作 勝過 合同談判 響應變化 勝過 遵循計畫 2.什麼事敏捷軟體開發 一種軟體開發方 可以應對客戶快速變更的需求,他強調以人為核心,採用迭代的方式,循序漸進的開發軟體。3.scrum 是乙個敏捷開發過程框架,將整個開發周...