敏捷開發(fā)
來源:塔塔 更新時間:2014-06-11
敏捷軟件開發(fā)又稱敏捷開發(fā),一種應對快速變化的需求的一種軟件開發(fā)能力,是為了在沒有計劃的軟件開發(fā)和過度計劃的軟件工程上面尋找一個平衡點。它們的具體名稱、理念、過程、術語都不盡相同,相對于“非敏捷”,更強調程序員團隊與業(yè)務專家之間的緊密協(xié)作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟件開發(fā)中人的作用。
由于敏捷軟件開發(fā)也屬于軟件工程范疇,所以下面將基于大量文檔工程型的軟件工程稱為傳統(tǒng)軟件工程。敏捷軟件開發(fā)只要求盡量少的文檔,而且認為最根本的文檔是源代碼。Martin Fowler認為敏捷軟件開發(fā)過程和基于傳統(tǒng)軟件工程開發(fā)的本質區(qū)別在于以下兩點:
(1)敏捷軟件開發(fā)是基于適應的,而傳統(tǒng)軟件工程是基于預測的。傳統(tǒng)軟件工程試圖對一個軟件項目在很長的時間跨度內做出詳細的計劃,然后依計劃進行開發(fā)。這種方式的前提是需求確定下來后就不再修改了,所以,傳統(tǒng)軟件工程本質上是抵制變化的。而敏捷開發(fā)方法則是主動去適應變化。
(2)敏捷軟件開發(fā)方法以人為導向,而傳統(tǒng)軟件工程方法則以過程為導向。傳統(tǒng)軟件工程的目標是定義一個過程,不論誰來執(zhí)行這個過程都能完成任務;而敏捷軟件開發(fā)方法則認為沒有任何過程能替代開發(fā)團隊的技能,軟件過程的作用是對開發(fā)團隊提供支持。
敏捷軟件開發(fā)是一種軟件開發(fā)的理念,它包含很多實際的方法,如極限編程(XP),Scram和精悍開發(fā)(LeanDevelopment) 等,在教學實踐上,需要選定一種開發(fā)方法指導學生進行實際開發(fā),以加深對敏捷軟件開發(fā)的理解。由于在以上方法中,極限編程最為流行,所以本文選用極限編程 作為教學的軟件開發(fā)方法。