Scrum 是一種常見的 敏捷式開發(Agile Development)方法,主要用於軟體團隊協作開發。
團隊(通常 <10 人)在 1-4 週的固定週期(Sprint/衝刺)內,完成產品增量,並透過「3 種角色、4 個會議、3 項產出」實踐透明化、檢視與調整,以因應變化快速的市場需求,達到快速開發與持續改善的目的。
它透過 短週期迭代(Sprint)+ 持續回饋 + 團隊自組織 的方式,讓產品可以快速迭代與持續改善。它並不是一個完整的工程流程,而是一種 專案管理框架(Framework),幫助團隊在不確定需求的環境中,逐步開發出產品。
一、Scrum 的核心概念
Scrum 的核心精神是:
- 小步快跑(Iterative Development)
- 持續交付(Incremental Delivery)
- 團隊協作(Team Collaboration)
- 快速回饋(Feedback Loop)
傳統開發模式(瀑布式):
需求 → 設計 → 開發 → 測試 → 上線
Scrum 模式:
Sprint 1 → 可運行產品
Sprint 2 → 功能增加
Sprint 3 → 功能完善
Sprint 4 → 產品成熟
* 每個 Sprint 都能產生 可使用的產品版本。
二、Scrum 團隊角色(Roles)
Scrum 中有三個核心角色:
1. Product Owner(產品負責人)
負責 產品方向與需求管理
- 協助團隊遵守 Scrum 原則
- 排除開發障礙
- 促進團隊溝通
- 優化開發流程
2. Scrum Master(敏捷教練)
負責 確保 Scrum 流程順利運作
- 協助團隊遵守 Scrum 原則
- 排除開發障礙
- 促進團隊溝通
- 優化開發流程
3. Development Team(開發團隊)
負責 實際開發產品。 可能包含如下
- 設計與製作原型 (Design & Prototyping),UI/UX 設計
- 軟體開發/編碼 (Development),設計前端/後端/資料庫
- 測試與除錯 (Testing)
- 部署上線 (Deployment)
- 維運與優化 (Maintenance)
- 品質保證 (Quality Assurance)
三、Scrum 三大工件(Artifacts)
1. Product Backlog
提供產品需求清單。
例如:
| 優先順序 | 功能 |
|---|---|
| 1 | 使用者登入 |
| 2 | 商品列表 |
| 3 | 搜尋功能 |
| 4 | 付款系統 |
2. Sprint Backlog
某一個 Sprint 要完成的任務。 Sprint 通常 1~4 週。
例如 Sprint 1:
- 登入 API
- 登入頁面 UI
- JWT 驗證
- 基本測試
2. Increment(產品增量)
每個 Sprint 完成後,都會產出一個 可運行版本。
例如:
- Sprint 1:完成登入系統
- Sprint 2:完成會員管理
- Sprint 3:完成購物車
四、Scrum 五個核心活動(Events)
Scrum 有固定的會議節奏。
- Sprint Planning(Sprint 計畫會議)
- Daily Scrum(每日站立會議)
- Sprint Review(成果展示)
- Sprint Retrospective(回顧會議)
- Sprint(開發週期)
五、Scrum 的特點
| 優點 | 缺點 |
|---|---|
| 1 快速迭代,需求可以不斷調整。 2 提高團隊溝通,Daily Scrum 讓資訊透明。 3 持續交付產品,每個 Sprint 都有成果。 4 適合需求變動的產品,例如:Web 系統、SaaS、APP、AI產品 | 1 需要成熟團隊,團隊必須自律。 2 客戶需頻繁參與,Product Owner 要持續參與。 3 不適合需求非常固定的專案,例如:政府標案、傳統硬體工程。 |