什麼是 Scrum?
Scrum 是一種管理框架,團隊可將其用於自我組織並實現共同目標。其描述了一組用於高效專案交付的會議、工具和角色。就像運動隊為迎接一場大型賽事而不斷練習一樣,Scrum 實務允許團隊自我管理、吸取經驗教訓並適應變化。軟件團隊使用 Scrum 來以經濟高效且永續發展的方式解決複雜問題。
什麼是 Scrum 方法?
某些原則和價值觀是 Scrum 方法的特徵:
專供成功的 Scrum 原則
透明度
團隊工作的環境中,每個人都知道其他人可能遇到的挑戰。跨職能團隊成員和專案擁有者之間定期進行的面對面對話可以防止溝通不良和資訊瓶頸。
反射
框架中內建了頻繁的反射點,以允許團隊成員審查他們的進度。專案經理利用這些審查會議的洞察進行預估和未來規劃。因此,專案可以在預算範圍內更有效地執行,並且按時完成。
適應
團隊成員可以根據不斷變化的客戶需求重新確定任務的優先順序。他們決定首先完成哪些任務以及將來重新檢視哪些任務。
Scrum 專案團隊的價值觀
Scrum 團隊遵循五個核心價值觀。
承諾
Scrum 團隊成員致力於以時間為基礎的任務和目標,並竭力持續改善以找到最佳解決方案。
勇氣
Scrum 團隊透過提出具有挑戰性的開放性問題來展示勇氣。 他們會秉持誠實透明的態度進行討論,以達成最佳解決方案。
關注
在任何給定的時期內,團隊成員會逐一完成產品待處理項目中的任務。他們將專注於選定的任務,以在有限的時間範圍內提供可交付成果。
開放態度
Scrum 團隊成員對支援個人學習和整體專案品質的新想法和機會持開放態度。
尊重
團隊成員尊重專案經理、他人以及 Scrum 流程。這種尊重文化造就了團隊內部相互協作和合作的精神。
Scrum 如何運作?
Scrum 是一個易於學習但難以精通的框架。Scrum 的協同建立者 Jeff Sutherland 和 Ken Schwaber 在 The Scrum Guide 中解釋了基本概念。該指南詳細概述了 Scrum 流程以及如何有效地進行實作。
Scrum 的本質是一個自我組織團隊,可在稱為 Sprint 的時間限制範圍內交付客戶價值。Scrum 定義了與每個 Sprint 相關的成品、角色和事件。接下來,我們將詳細介紹每一項。
什麼是 Scrum 成品?
Scrum 團隊使用稱為 Scrum 成品的工具來解決問題和管理專案。Scrum 成品為團隊成員和利害關係人提供關鍵的規劃和任務資訊。有三個主要成品:
產品待辦項目
產品待辦項目是一個動態的特徵、要求、增強功能和修復清單,而要實現專案成功必須完成這些項目。它本質上是團隊的待辦事項清單,不斷地重新檢視和重新調整優先順序以適應市場變化。產品負責人會維護和更新清單,刪除不相關的項目或新增來自客戶的新請求。
Sprint 待辦項目
Sprint 待辦項目是開發團隊在當前 Sprint 週期中要完成的項目清單。在每個 Sprint 之前,團隊會從產品待辦項目中選擇要處理的項目。Sprint 待辦項目靈活多變,且可在 Sprint 期間發展演變。
增量
增量是朝著目標或願景邁出的一步。它是 Sprint 中可用的最終產品。團隊可以採用不同的方法來定義和展示他們的 Sprint 目標。儘管具有靈活性,但基本的 Sprint 目標 (即團隊希望從目前的 Sprint 中實現的目標) 不能妥協。
例如,一些團隊選擇在 Sprint 結束時向他們的客戶發佈一些東西,因此一旦發佈軟體變更,則他們的 Sprint 目標就完成了。其他團隊可能會致力於完成將一起發佈的一組功能。在這種情況下,Sprint 目標將在功能測試成功時完成。
什麼是 Scrum 角色?
Scrum 團隊需要三個特定的角色:產品負責人、Scrum 領導者和開發團隊。
產品負責人
產品負責人專注於確保開發團隊為企業創造最大的價值。他們了解並優先考慮最終使用者和客戶不斷變化的需求。有效的產品負責人會執行以下操作:
- 為團隊提供下一步要交付哪些特徵的明確指導。
- 彌合企業需求與團隊理解之間的差距。
- 決定發佈的時間和頻率。
Scrum 領導者
- 安排每個 Sprint 所需的資源。
- 推動其他 Sprint 事件和團隊會議。
- 領導團隊內的數位轉型。
- 在採用新技術時推動任何團隊培訓。
- 與外部團隊溝通,以解決整個團隊可能面臨的任何挑戰。
Scrum 開發團隊
Scrum 團隊由測試人員、設計師、UX 專家、營運工程師和開發人員組成。團隊成員擁有不同的技能集,並且可交互培訓,因此沒有人會阻礙工作交付。
Amazon 創始人 Jeff Bezos 在決定團隊規模時推薦了「兩個披薩」規則:兩個披薩足以供一個團隊的人員共享。
Scrum 開發團隊執行以下操作:
- 協同工作以確保成功完成 Sprint。
- 倡導可持續發展實務。
- 以明顯的以自我為中心的態度自我組織和處理他們的專案。
- 推動規劃和估計他們可以為每個 Sprint 完成多少工作。
什麼是 Scrum 事件?
Scrum 事件或 Scrum 儀式是 Scrum 團隊定期執行的一組連續會議。一些 Scrum 事件包括:
Sprint 規劃
在這種情況下,團隊會估計要在下一個 Sprint 中完成的工作。成員定義具體、可衡量且可實現的 Sprint 目標。在規劃會議結束時,每個 Scrum 成員都知道如何在 Sprint 中交付每個增量。
Sprint
Sprint 是 Scrum 團隊合作完成增量的實際時間段。兩周是 Sprint 的典型時長,但可能會因專案和團隊的需求而異。工作越複雜,未知因素越多,Sprint 應該就會越短。
每日 Scrum 或站立會議
每日 Scrum 是一個簡短的會議,團隊成員要在其中簽到並規劃一天的工作。他們報告已完成的工作,並表達在實現 Sprint 目標方面的任何挑戰。其被稱為站立會議,因為它的目標是盡可能縮短會議,就像每個人站著就能完成一般。
Sprint 審查
在 Sprint 結束時,團隊會聚在一起開展非正式會議,以審查已完成的工作並將其展示給利害關係人。產品負責人也可能會根據目前的 Sprint 重做產品待處理項目。
Sprint 回顧
團隊聚在一起記錄和討論 Sprint 期間的有效和無效項目。產生的想法可用於改進未來的 Sprint。
為什麼 Scrum 在軟體開發中很重要?
各類團隊 (如 HR、行銷和設計) 都可有效地使用 Scrum。然而,Scrum 在軟體開發和工程團隊中更為普遍盛行。這樣一來,團隊能夠更快地回應不斷變化的需求,而不會讓成本和預算偏離控制。這很重要,原因如下:
在具有挑戰性的情況下維護品質的能力
品質保證檢查內建於 Scrum 框架中。團隊會在每個 Sprint 開始時定義需求。團隊還會全面評估軟體或產品生命週期,同時建立完成的團隊願景。這意味著要在短時間內保持要求的相關性和可實現性。定期的產品負責人意見回饋和 Sprint 審查允許在整個專案中持續改進團隊。
增加投資報酬率
Scrum 團隊根據客戶價值和風險分析對需求進行優先級排序。重點是開發可以投放市場以收集早期客戶意見回饋的主要工作產品。Scrum 開發的特點是代價高昂的缺陷較少、團隊效率高,以及從長遠來看可以節省資金的快速失敗方法。
更幸福、更高效的團隊
改進預估的相關指標
Scrum 團隊選擇他們自己的指標來衡量專案效能。他們根據自己的經驗和能力估計時間表、預算和品質指標。產品負責人擁有控制權,因為估計是相對的。團隊在專案開始時獲得更多支援,隨著時間的推移自然會加快速度。專案利害關係人審查工作產品並提供定期意見回饋,以確保專案如期進行。
Scrum 與敏捷——有什麼差別?
敏捷是指軟體開發中的一種思維方式。這是在組織層面採用的一種理念,旨在讓每個團隊成員都專注於持續改進和向客戶交付價值。Scrum 是一個在敏捷中完成工作的框架。Scrum 使用敏捷的所有核心原則來定義促進專案的方法。但是,重要的是要注意敏捷並不總是意味著 Scrum。許多不同的方法採用敏捷方法進行專案管理。
Scrum 開發團隊如何採用 DevOps?
- 自動化軟體測試並為每個特徵開發編寫新測試
- 使用支援持續部署的技術堆疊和工具
- 在每個 Sprint 結束時發佈生產變更