- Scrum 教程
- Scrum - 首頁
- Scrum - 概述
- Scrum - 框架
- Scrum - 角色
- Scrum - Scrum Master
- Scrum - 事件
- Scrum - 工件
- Scrum - 使用者故事
- Scrum - 燃盡圖
- Scrum - 估算
- Scrum - 工具
- Scrum - 優勢
- Scrum - 認證
- Scrum - 常見問題
- Scrum 有用資源
- Scrum 快速指南
- Scrum 有用資源
Scrum - 概述
敏捷已成為軟體開發行業中的一個熱門詞彙。但敏捷開發究竟是什麼?簡單來說,敏捷開發是一種執行軟體開發團隊和專案的不同方式。
為了理解什麼是新的,讓我們回顧一下傳統方法。在傳統的軟體開發中,產品需求在開始開發之前就已經確定。
瀑布模型
最常用且具有此特性的軟體開發模型是瀑布模型,如下圖所示。但是,在大多數情況下,會新增新的功能,並且早期需求也可能會發生變化。瀑布模型的結構不適合適應此類需求的持續變化。此外,使用者在產品完整交付之前無法清楚瞭解產品的功能。
迭代增量模型
在迭代增量模型中,開發從有限數量的已確定和優先順序排序的需求開始。交付成果是產品的可工作增量。從需求到程式碼開發的一系列活動稱為迭代。根據增量的功能以及任何或所有新的、修改的、待處理的需求,將下一批需求提供給後續迭代。後續迭代的結果是產品增強的可工作增量。重複此過程,直到產品實現所需的功能。
使用者通常不參與開發工作,這可能會導致溝通差距,從而導致功能錯誤。參與對開發團隊來說是積極的,但對團隊的時間要求很高,並且可能會造成延誤。此外,迭代期間的任何非正式需求變更都可能導致混淆,也可能導致範圍蔓延。基於此前提,敏捷開發應運而生。
敏捷開發
敏捷開發基於迭代增量開發,其中需求和解決方案透過團隊協作不斷發展。它建議採用時間盒式的迭代方法,並鼓勵快速靈活地響應變化。它是一個理論框架,並沒有規定開發團隊必須遵循的任何特定實踐。Scrum 是一個具體的敏捷流程框架,它定義了需要遵循的實踐。
敏捷方法的早期實現包括Rational Unified Process(1994)、Scrum(1995)、Crystal Clear、極限程式設計(1996)、自適應軟體開發、特性驅動開發(1997)和動態系統開發方法 (DSDM)(1995)。在 2001 年釋出敏捷宣言後,這些方法現在統稱為敏捷方法。
敏捷宣言
敏捷宣言由一群軟體開發人員於 2001 年釋出,強調了需要給予開發團隊、適應不斷變化的需求、客戶參與的重要性。
敏捷宣言如下
“我們正在透過實踐發現更好的軟體開發方法,並幫助其他人也這樣做。透過這項工作,我們珍視
- 個體和互動 高於 流程和工具
- 可以工作的軟體 高於 面面俱到的文件
- 客戶合作 高於 合同談判
- 響應變化 高於 遵循計劃
也就是說,儘管右項也具有一定的價值,但我們更重視左項。”
…敏捷軟體開發宣言,作者:Beck, Kent 等人(2001)
敏捷宣言條目定義
左側的宣言條目可以描述如下
| 宣言條目 | 描述 |
|---|---|
| 個體和互動 | 需要重視
|
| 可以工作的軟體 | 以短時間間隔交付可工作的軟體有助於獲得客戶的信任和對團隊的信心。 |
| 客戶合作 | 客戶與開發團隊的持續參與確保了必要的修改的溝通。 |
| 響應變化 | 專注於對提議的更改做出快速響應,這可以透過短時間迭代來實現。 |
敏捷宣言的關鍵要素是,我們必須信任人及其協作能力。出於這個原因,開發的特定敏捷方法透過強調整個專案生命週期中的團隊合作和協作來挖掘團隊成員的能力。
敏捷的關鍵原則
敏捷宣言基於以下原則
| 原則 | 描述 |
|---|---|
| 滿意度和交付 | 透過儘早和持續地交付可工作的軟體來滿足客戶。 |
| 歡迎變化 | 即使在開發的後期階段也歡迎更改需求。 |
| 頻繁交付 | 頻繁地交付可工作的軟體(每週而不是每月)。 |
| 溝通是關鍵 | 確保開發人員每天都與業務人員密切合作。 |
| 環境和信任 | 圍繞有積極性的個人構建專案。為他們提供必要的支援並信任他們。 |
| 面對面溝通 | 鼓勵面對面交談以確保高效有效的溝通。 |
| 軟體作為進度衡量標準 | 可工作的軟體是進度的主要衡量標準。 |
| 可持續發展 | 促進可持續發展,能夠在整個開發過程中保持恆定的速度。 |
| 關注細節 | 持續關注技術卓越和良好的設計。 |
| 少即是多 | 簡潔至關重要。 |
| 自組織團隊 | 團隊定期關注在不斷變化的環境中變得有效。 |
敏捷方法
動態系統開發方法 (DSDM)
它是一個用於軟體專案的敏捷框架。它被用來微調傳統方法。DSDM 的最新版本稱為 DSDM Atern。Atern 這個名字是北極燕鷗的縮寫——一種可以飛行很長距離的海鳥,它代表了該方法的許多特性,這些特性是自然的工作方式,例如優先順序排序和協作。
Scrum
它是最流行的敏捷框架,尤其專注於如何在基於團隊的開發環境中管理任務。Scrum 使用迭代和增量開發模型,迭代持續時間較短。Scrum 相對易於實施,並且專注於快速和頻繁的交付。
極限程式設計 (XP)
它是一種敏捷軟體開發。它提倡在短開發週期中頻繁釋出,旨在提高生產力並在引入檢查點時採用新的客戶需求。該方法以傳統軟體工程實踐的有益元素被提升到極致的想法命名。(極限程式設計是一種軟體開發學科,它組織人員以更高效地生產更高質量的軟體。)XP 以新穎的方法解決了分析、開發和測試階段,從而對最終產品的質量產生重大影響。
測試驅動開發 (TDD)
它是一種軟體開發流程,依賴於非常短的開發週期的重複:首先,開發人員編寫一個自動測試用例來定義所需的改進或新功能,然後生成最少的程式碼以透過該測試,最後將新程式碼提升到可接受的標準。
精益
這是一種生產實踐,它認為除了為最終客戶創造價值之外,為任何目標支出資源都是浪費,因此是消除的目標。從消費產品或服務的客戶的角度出發,價值被定義為客戶願意為之付費的任何行動或流程。精益的核心是用更少的工作來保留價值。
看板
它是一個用於改進和保持高水平生產的系統。看板是組織用來控制庫存支出的策略——準時制 (JIT) 實現的一種方法。看板成為支援整個生產系統執行的有效工具,並證明是促進改進的絕佳方式。
結論
在過去的 10 年裡,越來越多的成功案例表明,公司透過敏捷實踐顯著提高了其 IT 開發團隊和專案的成功率和績效。這導致敏捷在包括媒體和技術、大型企業乃至政府在內的各種行業得到廣泛採用。
敏捷框架幫助團隊從以下方面受益
- 更快的交付/上市時間
- 降低不確定性和風險
- 透過專注於客戶價值來提高投資回報率 (ROI)
在這些不同的敏捷方法中,Scrum 在過去的 20 年裡在全球範圍內取得了巨大的成功。