Scrum (橄欖球隊),一種軟件開發模式,是一種敏捷開發,近十年來逐漸流行起來。
Scrum 的基本假設
開發軟件就像開發新產品。軟件產品的最終過程不能從一開始就定義。這個過程需要研發、創造力、反複試驗,所以沒有固定的過程可以保證項目的成功。
Scrum 將軟件開發團隊比作足球隊。目標明確且最高,熟悉開發過程中所需的最佳模型和技術,具有高度的自主性,密切的溝通與合作,確保每天以高度的靈活性解決各種挑戰;每個階段都有明確的目標進展。
Scrum 過程
Scrum 開發過程通常從 30 天(或更短)的階段開始,從客戶的新產品需求規範開始,開發團隊和客戶在每個階段開始時選擇要完成的規範的哪些部分,開發團隊必須盡最大努力在 30 天后交付結果,團隊每天開會 15 分鐘,審查每個成員的進度和日程安排,了解遇到的困難,並嘗試排除故障。
敏捷方法的優勢
Scrum 相對於傳統的開發模式有什麼優勢 。 Scrum 模型的一個顯著特點是它響應變化。它可以盡快響應變化。
當傳統系統專注於前期計劃時,成本、範圍和時間等因素被重視,敏捷方法突出團隊合作、客戶協作和靈活性。隨著需求規範的變化,敏捷團隊可以保持移動並能夠響應這些變化。然而,這並不一定意味著自適應規劃策略總是比預測規劃策略更好。讓我們更詳細地比較這兩種項目開發策略。
因此,傳統的開發(瀑布,也稱為計劃驅動)方法是線性的,過程的所有階段都是按順序發生的。這種方法依賴於可預測的工具和可預測的經驗。每個項目都遵循相同的生命週期,包括可行性、規劃、設計、施工、測試、生產、支持等,如下所示。
整個項目都是提前規劃好的,沒有任何改變要求的餘地,比如PMI的PMBOK和PRINCE2都是嚴格的,高度控制的。他們概述了項目規劃從開始到結束的不同階段,並假設您已經預先擁有所需的所有要求和信息。
敏捷被認為是一種更現代的軟件開發策略,因為它主要旨在克服更具預測性的瀑布方法的一些缺點。它是一種軟件開發模型,鼓勵在項目的整個軟件開發生命週期中進行迭代開發和測試。
Scrum 流程概述
Scrum 是一個框架,它規定了 角色、 事件、 工件和規則/指南來實現這種心態。換句話說,敏捷是一種心態,而 Scrum 是規定實施敏捷哲學的過程的框架。
Scrum 和敏捷並不相同,但 Scrum 是敏捷過程之一。它們基於迭代開發。通過跨職能團隊和自組織團隊之間的關聯獲得敏捷的需求和解決方案,如果實施得當,可以幫助團隊通過逐步交付最高價值的產品來解決複雜的問題,同時降低風險。
Scrum 涉及及時檢查和適應,領導理念、責任和自組織增強了團隊合作,以及有助於及時交付高質量軟件的工程最佳實踐。
Scrum 的關鍵術語
Backlog: 所有可以預測的任務,包括所有功能性和非功能性任務。
Sprint: 一個世代發展的時間段,一般最多30天為一個週期。在此期間,開發團隊需要完成一個制定的積壓工作,最終的結果是一個增量的、可交付的產品。
Sprint backlog: 需要在一個 sprint 週期內完成的任務。
時間框: 會議的時間段。例如,每個每日 Scrum 會議的時間框是 15 分鐘。
Sprint 計劃會議: 在每個 sprint 開始之前舉行。通常一天(8 小時)。本次會議要製定的任務是:產品負責人和團隊成員將待辦事項列表分解為小功能模塊,決定在即將到來的衝刺中需要完成多少小功能模塊,並確定本次產品待辦事項列表的任務優先級。此外,會議還需要詳細討論如何按要求完成這些小功能模塊。這些模塊的工作量以小時計算。
每日 Scrum 會議: 由開發團隊成員召開,通常為 15 分鐘。每個開發成員需要向 Scrum Master 報告三個項目:今天完成了什麼?你遇到過障礙嗎?你會怎樣做?通過這次會議,團隊成員可以相互了解項目的進展情況。
Sprint 評審會議: 每個 Sprint 結束後,團隊將 Sprint 的結果呈現給 Product Owner 和其他相關人員。通常,本次會議持續 4 小時。
Sprint Retrospective 發生在 Sprint 評審之後 和下一個 Sprint 計劃之前。對於一個月的 Sprint來說,這最多是三個小時的會議。回顧會議基本上是一個“改進”會議,目的是尋找方法和手段來識別潛在的陷阱、過去的錯誤,並尋找新的方法來避免這些錯誤,所有的人—— 產品負責人、 Scrum Master、開發團隊成員都會參加。 ,並可選擇與利益相關者。
Scrum Master: 負責監督整個 Scrum 流程並修改計劃的團隊成員。
代表公司擁有產品的 產品負責人是Scrum 團隊的一部分。但是,產品負責人對團隊的其他成員沒有權限,就像 Scrum Master一樣。產品負責人負責長時間維護產品,並負責實現產品的成功。作為產品負責人,您應該直接與客戶和用戶、開發團隊和其他關鍵利益相關者進行互動,如下圖所示。
Scrum 團隊是由個人(通常在 5 到 9 名成員之間)組成的 集合,他們一起工作以交付所需的產品增量。Scrum 框架鼓勵團隊成員之間進行高水平的溝通,以便團隊能夠:
- 遵循共同的目標
- 遵守相同的規範和規則
- 互相尊重
Scrum 是如何工作的?
Scrum 過程通過特定的概念和實踐區別於其他敏捷過程,分為角色(產品負責人、 Scrum 主管、開發團隊和其他利益相關者)、事件、工件和規則三類。
要啟動 Scrum 流程,產品負責人會創建一個優先的願望清單,稱為 產品待辦列表。在 sprint 計劃期間 ,積壓工作根據複雜性和業務價值(優先級)進行調整。產品負責人(客戶)和開發團隊決定將哪些積壓項目添加到衝刺中。團隊有一定的時間(稱為 sprint,通常為兩到四個星期)來完成其工作,但它每天開會以評估其進度(每日 Scrum)。在此過程中,Scrum Master 讓團隊專注於其目標。在衝刺結束時,團隊回顧他們的進展,向客戶展示工作產品,並回顧哪些進展順利或他們需要在下一個衝刺中改進哪些方面。然後循環重複。