敏捷開發是一種以人為中心的、迭代的、漸進的開發方法。在敏捷開發中,將一個軟件項目的建設分為多個子項目,每個子項目的成果都經過測試,具有集成和可操作的特點。
換句話說,一個大項目被分成多個小項目,這些小項目相互關聯,但也可以獨立運行,分別完成。在此過程中,軟件始終處於可用狀態。
敏捷開發模型的分類
敏捷是一種心態,它是一套價值觀和原則。敏捷是一種思考和行動的方式。敏捷是關於短週期、迭代和增量交付、快速失敗、獲得反饋、及早向客戶交付業務價值以及人員、協作和交互。敏捷是一種關於透明度、檢查和適應的心態。然而,敏捷不包含任何 角色、事件或 工件。這是一種心態。例如, Scrum 是敏捷保護傘下廣泛使用的框架之一,它可以幫助您變得更加敏捷,但是在敏捷運動中還有更多的框架,如看板、XP、Crystal 等等,如圖所示以下:
- XP 極限編程(eXtreme Programming)
- SCRUM
- 看板
- 傾斜
- 水晶法
- 動態系統開發方法
其中,XP 和 SCRUM 最為流行。
Scrum
Scrum 是一個框架,人們可以在其中解決複雜的適應性問題,同時富有成效和創造性地交付具有最高價值的產品。它用於管理軟件項目和產品或應用程序開發。它的重點是適應性產品開發戰略,跨職能團隊作為一個單元在 2-4 週內實現共同目標(Sprint)。它由一系列價值觀、工件、角色、儀式、規則和最佳實踐組成。
傾斜
精益起源於豐田生產系統或 TPS,它在 1950 年代、60 年代及以後徹底改變了實物產品的製造。精益在製造業中佔有一席之地,但也在知識工作中找到了新的應用,幫助各行各業的企業 消除浪費、改進流程並促進創新。軟件開發是精益方法的自然應用,因為與製造非常相似,它通常遵循定義的過程,具有一些定義的接受條件,並導致交付有形價值。指導所有精益方法實踐的關鍵概念,我們稱之為精益支柱。他們是:
- 連續的提高
- 尊重人
- 輕量級領導
看板
看板是一種高度可視化的工作流管理方法,在精益團隊中很流行。事實上,83% 的精益實踐團隊使用看板來可視化和積極管理產品的創建,強調持續交付,同時不會給開發團隊增加負擔。與 Scrum 一樣,看板是一個旨在幫助團隊更有效地合作的過程。
看板基於 3 個基本原則:
- 可視化您今天要做的事情(工作流程):查看彼此上下文中的所有項目可能會提供非常豐富的信息
- 限制進行中的工作量 (WIP):這有助於平衡基於流程的方法,因此團隊不會立即開始並承諾過多的工作
- 增強流程:當某事完成時,從積壓的下一個最高優先級項目開始發揮作用
看板通過定義最佳團隊工作流程來促進持續協作並鼓勵積極、持續的學習和改進。
動態系統開發方法 (DSDM)
DSDM 是一個由八項原則、生命週期和產品、角色和職責以及幾種最佳實踐技術組成的框架。這些支持並支持儘早提供戰略上一致的業務利益的理念,從而為組織提供最佳的投資回報 (ROI)。
DSDM 是一種將進度和質量優先於功能的方法,它從一開始就固定成本、質量和時間,並使用 MoSCoW 的優先級方法,將項目分解為四種不同類型的需求:
- 必須有 (M)
- 應該有 (S)
- 本來可以©
- 不會有 (W)
DSDM Atern 有八項原則。這些原則指導團隊採取他們必須採取的態度和他們必須採用的心態來始終如一地交付。
- 專注於業務需求
- 準時交貨
- 合作
- 絕不妥協品質
- 從堅實的基礎逐步建立
- 迭代開發
- 持續清晰的溝通
- 展示控制
極限編程
最初由 Kent Beck 描述的極限編程 (XP) 已成為最流行和最有爭議的敏捷方法之一。XP 是一種快速、持續地交付高質量軟件的規範方法。它旨在提高軟件質量和麵對不斷變化的客戶需求的響應能力。它促進了高度的客戶參與、快速的反饋循環、持續的測試、持續的計劃和緊密的團隊合作,以非常頻繁的間隔交付工作軟件,通常每 1-3 週一次。
敏捷方法的關鍵價值是什麼?
“敏捷”一詞是 2001 年在敏捷宣言中創造的。該宣言旨在建立指導更好的軟件開發方法的原則。敏捷宣言包含 4 個重要的價值觀。閱讀敏捷宣言的方式不是右側的項目不再具有價值,而是敏捷運動更重視左側的項目。
有四個關鍵值是敏捷方法中每個組件的構建塊。他們強調將重點從實踐和流程轉移到人員和協作。
這四個價值觀為敏捷最佳實踐提供了參考,重點關注靈活性,以便團隊可以最好地合作完成任務。敏捷實踐在整個過程中提升了最終目標的重要性。如果人們能夠很好地合作,適應新的變化並進行生產,那麼他們如何做到這一點並不重要。
12 個最佳實踐
作為敏捷宣言的補充,敏捷聯盟還定義了一套 12 條基本原則,除了敏捷宣言之外,它們還提供了指導和更詳細的解釋:
- 我們的首要任務是通過早期和持續交付有價值的軟件來滿足客戶。
- 歡迎不斷變化的需求,即使是在開發的後期。敏捷流程利用變化來獲得客戶的競爭優勢。
- 頻繁地交付工作軟件,從幾周到幾個月不等,優先考慮更短的時間範圍。
- 業務人員和開發人員必須在整個項目中每天一起工作。
- 圍繞有動力的個人建立項目。為他們提供所需的環境和支持,並相信他們能夠完成工作。
- 向開發團隊和在開發團隊內部傳達信息的最有效和最有效的方法是面對面交談。
- 工作軟件是進度的主要衡量標準。
- 敏捷流程促進可持續發展。
- 贊助商、開發人員和用戶應該能夠無限期地保持恆定的步伐。
- 對卓越技術和良好設計的持續關注提高了敏捷性。
- 簡單——最大化未完成工作量的藝術——是必不可少的。
- 最好的架構、需求和設計來自自組織團隊。團隊定期反思如何變得更有效,然後相應地調整和調整其行為。
概括
敏捷開發是軟件開發行業的熱門詞彙之一,它是一種管理軟件開發項目的不同方式。它不是一種特定的軟件開發方法,而是基於敏捷宣言中表達的價值觀和原則的一組方法和實踐的總稱。解決方案通過自組織、跨職能團隊之間的協作而發展,利用針對他們的上下文的適當實踐。