接觸敏捷方法到現(xiàn)在已經(jīng)有5個月的時間左右,期間我們也遵循敏捷開發(fā)模式進(jìn)行項目的開發(fā)捎泻。另外就是因為在面試過程中被提問到對敏捷開發(fā)的理解放妈,所以今天我想總結(jié)下我對敏捷開發(fā)的理解。
首先我想談?wù)勎覍鹘y(tǒng)模式開發(fā)-瀑布式開發(fā)的理解掺涛。瀑布式開發(fā)是一種老的、過時的軟件開發(fā)方法疼进。它的整個過程是:需求分析、概要設(shè)計秧廉、開發(fā)伞广、測試、維護(hù)疼电。由此可見它的每一個階段的輸出是下一個階段的輸入嚼锄,文檔是整個階段銜接的唯一信息,它采用的是文檔驅(qū)動開發(fā)蔽豺。
瀑布式開發(fā)套用自傳統(tǒng)的工業(yè)化生產(chǎn)区丑,有論文統(tǒng)計這也是造成70%軟件開發(fā)失敗的原因(過程周期長、反饋周期長、難以應(yīng)對變化)沧侥。所以為了改變這一狀態(tài)可霎,在20世紀(jì)90年代,Martin Fowler和ThoughtWorks提出了敏捷方法宴杀,他們互相協(xié)助創(chuàng)作了“敏捷軟件開發(fā)宣言”(http://agilemanifesto.org/iso/zhchs/manifesto.html)
經(jīng)過時間修正后的解釋:“兩邊價值一樣多癣朗,但是我們刻意的選擇了左邊” —— 徐昊(ThoughtWorker)
敏捷開發(fā)(agile development)是一種以人為核心、迭代旺罢、循序漸進(jìn)的開發(fā)方法旷余,它采用的是迭代開發(fā)(迭代開發(fā)是指將一個復(fù)雜且開發(fā)周期特別長的開發(fā)任務(wù)分解成小周期且可完成的任務(wù))。敏捷開發(fā)也包括站會扁达、重構(gòu)正卧、CodeReview、Retro跪解、看板等炉旷。敏捷開發(fā)的輕量級的方法包括:
- Scrum方法
- FDD - 特征驅(qū)動開發(fā)(Feature-Driven Development)
- DSDM - 動態(tài)系統(tǒng)開發(fā)方法(Dynamic Systems Development Method)
- Crystal - 水晶方法族(Crystal Methods)
- XP - 極限編程(Extreme Programming)
- ASD - 自適應(yīng)軟件開發(fā)(Adaptive Software Development)
未完待續(xù)!
本人是小白一枚惠遏,希望大家多多指教砾跃!