敏捷是一個術語,用於描述軟件開發的方法,強調增量交付,團隊協作,持續計劃和持續學習,而不是試圖在接近結束時立即交付。
敏捷專注於保持流程的精益,並創建最小的可行產品(MVP),這些產品在任何最終結果之前經歷了多次迭代。不斷收集和實施反饋,總而言之,這是一個更加動態的過程,每個人都在朝著一個目標努力。
領先的敏捷方法
敏捷是一種思維方式,它是一套價值觀和原則。敏捷是一種思考和行動的方式。敏捷就是短週期,迭代和增量交付,快速失敗,獲得反饋,及早向客戶提供業務價值,關於人員,協作和交互。敏捷是一種關於透明度,檢查和適應的心態。但是,敏捷不包含任何角色,事件或工件。這是一種心態。例如,Scrum是敏捷傘下廣泛使用的框架之一,可以幫助您變得更敏捷,但敏捷運動中有更多的框架,如看板,XP,Crystal等等,如圖所示下面:
敏捷傘
XP
XP(極限編程)的思想源自 Kent Beck和Ward Cunningham在軟件項目中的合作經歷。XP註重的核心是溝通、簡明、反饋和勇氣。因為知道計劃永遠趕不上變化,XP無需開發人員在軟件開始初期做 出很多的文檔。XP提倡測試先行,為了將以後出現bug的幾率降到最低。
SCRUM
SCRUM是一種叠代的增量化過程,用於產品開發或工作管理。它是一種可以集合各種開發實踐的經驗化過程框架。SCRUM中發布產品的重要性高於一切。
該方法由Ken Schwaber和 Jeff Sutherland 提出,旨在尋求充分發揮面向對象和構件技術的開發方法,是對叠代式面向對象方法的改進。
精益 (Lean)
精益起源於豐田生產系統(TPS),它在20世紀50年代,60年代及以後徹底改變了實物商品的製造。Lean堅持製造業,但也在知識工作中找到了新的應用,幫助所有行業的企業消除浪費,改進流程,促進創新。軟件開發是精益方法的自然應用,因為與製造業一樣,它通常遵循一個明確的過程,具有一定的接受條件,並導致有形價值的傳遞。指導精益方法所有實踐的關鍵概念,我們稱之為精益支柱。他們是:
- 連續的提高
- 尊重人
- 輕量級領導
看板 (Kanban)
看板是一種高度可視化的工作流管理方法,在精益團隊中很受歡迎。事實上,83%的精益生產團隊使用看板來可視化並積極管理產品的創建,重點是持續交付,同時不會使開發團隊負擔過重。與Scrum一樣,看板是一個旨在幫助團隊更有效地協同工作的流程。
看板基於3個基本原則:
- 可視化您今天要做的事情(工作流程):查看彼此上下文中的所有項目可以提供非常豐富的信息
- 限制正在進行的工作量(WIP):這有助於平衡基於流的方法,因此團隊無法啟動並立即承諾過多的工作
- 增強流程:當某些內容完成後,積壓中的下一個最高優先級項目將被激活
看板通過定義最佳的團隊工作流程,促進持續協作並鼓勵積極,持續的學習和改進。
Crystal Methods
Crystal Methods(水晶方法族)由Alistair Cockburn在20實際90年代末提出。之所以是個系列,是因為他相信不同類型的項目需要不同的方法。雖然水晶系列不如XP那樣的產出效率,但會有更多的人能夠接受並遵循它。
FDD
FDD (Feature-Driven Development,特性驅動開發)由Peter Coad、Jeff de Luca 、Eric Lefebvre共同開發,是一套針對中小型軟件開發項目的開發模式。此外,FDD是一個模型驅動的快速叠代開發過程,它強調的是簡化、實用、 易於被開發團隊接受,適用於需求經常變動的項目。
ASD
ASD(Adaptive Software Development,自適應軟件開發)由Jim Highsmith在1999年正式提出。ASD強調開發方法的適應性(Adaptive),這一思想來源於復雜系統的混沌理論。ASD不象其他方法那樣 有很多具體的實踐做法,它更側重為ASD的重要性提供最根本的基礎,並從更高的組織和管理層次來闡述開發方法為什麽要具備適應性。
DSDM
DSDM(動態系統開發方法)是眾多敏捷開發方法中的一種,它倡導以業務為核心,快速而有效地進行系統開發。實踐證明DSDM是成功的敏捷開發方法之一。在英國,由於其在各種規模的軟件組織中的成功,它已成為應用最為廣泛的快速應用開發方法。
DSDM不但遵循了敏捷方法的原理,而且也適合那些成熟的傳統開發方法有堅實基礎的軟件組織。
References
- Comprehensive Scrum Guide
- What are Scrum's Three Pillars?
- What is Agile Software Development?
- Scrum in 3 Minutes
- What are the 5 Scrum Values?
- What is the Evolution of Scrum?
- Classical Project Management vs Agile Project Management
- Why is Scrum Difficult to Master?
- What is Velocity in Scrum?
- What is Agile? What is Scrum?
- What are the Three Amigos Development Strategy in Agile?
- Empirical Process Control vs Defined Process Control
- How to Maintain Transparency in Scrum?
- Scrum vs Waterfall vs Agile vs Lean vs Kanban
- What is 3355 in Scrum Framework?
- Why Scrum? How Does Scrum Overcome 8 Pain Points We Always face?
- The Best Free and Commercial Agile Tools - Every Scrum Team Needs!
- What are the 8 Wastes in Lean?
- Extreme Programming (XP) vs Scrum
- What is Timeboxing in Scrum?
- Agile Myth: Documentation and Planning not Needed?