敏捷開發(1)-敏捷基礎知識導入
引言
2001年2月11日到13日,17位軟件開發領域的領軍人物聚集在美國猶他州的滑雪勝地雪鳥(Snowbird)雪場。經過兩天的討論,“敏捷”(Agile)這個詞為全體聚會者所接受,用以概括一套全新的軟件開發價值觀。這套價值觀,通過一份簡明扼要的《敏捷宣言》傳遞給世界,同時即宣告了敏捷開發運動的開始。
敏捷宣言
《敏捷宣言》
個體與交互 重於 過程和工具
可用的軟件 重於 完備的文檔
客戶協作 重於 合同談判
響應變化 重於 遵循計劃
敏捷開發十二原則
在敏捷開發中,我們遵循以下準則:
- 我們的最高目標是,通過盡早和持續地交付有價值的軟件來滿足客戶。
- 歡迎對需求提出變更——即使是在項目開發後期。要善於利用需求變更,幫助客戶獲得競爭優勢。
- 要不斷交付可用的軟件,周期從幾周到幾個月不等,且越短越好。
- 項目過程中,業務人員與開發人員必須在一起工作。
- 要善於激勵項目人員,給他們以所需要的環境和支持,並相信他們能夠完成任務。
- 無論是團隊內還是團隊間,最有效的溝通方法是面對面的交談。
- 可用的軟件是衡量進度的主要指標。
- 敏捷過程提倡可持續的開發。項目方、開發人員和用戶應該能夠保持恒久穩定的進展速度。
- 對技術的精益求精以及對設計的不斷完善將提升敏捷性。
- 要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術。
- 最佳的架構、需求和設計出自於自組織的團隊。
- 團隊要定期反省如何能夠做到更有效,並相應地調整團隊的行為。
適用範圍&特征
敏捷不是指某一種具體的方法論、過程或框架,而是一組價值觀和原則。符合敏捷價值觀和原則的開發方法包括:極限編程(XP),Scrum,精益軟件開發(Lean Software Development),動態系統開發方法(DSDM),特征驅動開發(Feature Driver Development),水晶開發(Crystal Clear)等等。
特征:
1. 叠代式開發。即整個開發過程被分為幾個叠代周期,每個叠代周期是一個定長或不定長的時間塊每個叠代周期持續的時間一般較短,通常為一到六周。
2. 增量交付。產品是在每個叠代周期結束時被逐步交付使用,而不是在整個開發過程結束的時候一次性交付使用。每次交付的都是可以被部署到用戶應用環境中被用戶使用的、能給用戶帶來即時效益和價值的產品。
3. 開發團隊和用戶反饋推動產品開發。敏捷開發方法主張用戶能夠全程參與到整個開發過程中。這使需求變化和用戶反饋能被動態管理並及時集成到產品中。同時,團隊對於用戶的需求也能及時提供反饋意見。
4. 持續集成。新的功能或需求變化總是盡可能頻繁地被整合到產品中。一些項目是在每個叠代周期結束的時候集成, 有些項目則每天都在這麽做。
5. 開發團隊自我管理。擁有一個積極的、自我管理的、具備自由交流風格的開發團隊,是每個敏捷項目必不可少的條件。人是敏捷開發的核心。敏捷開發總是以人為中心建立開發的過程和機制,而非把過程和機制強加給人。
敏捷開發(1)-敏捷基礎知識導入