軟體開發行業包含許多不同的方法——有些是舊方法的新版本,而另一些則採用相對較新的實踐。最常見的兩種方法是Agile,例如Scrum,Kanban 和 Lean,以及傳統的 Waterfall 模型,例如結構化方法或較新的 RUP。
大多數遵循這兩種範式的軟體公司認為,其選擇的方法在某些方面更優越。因此,在回答「哪一種更成功?」這個問題之前,讓我們先來 examine 它們的主要差異。
Waterfall 方法
Waterfall 是一種線性的軟體開發方法。每個階段代表流程中的一個明確階段,通常在下一階段開始前完成。各開發階段之間通常設有里程碑。
- 以順序流程將大型專案結構化
- 適用於變更較少的環境
- 需要事先完全定義需求
因此,Waterfall 模型堅持只有在前一階段經過驗證和確認後,才能進入下一階段,如下面圖示所示:

Waterfall 方法
在 Royce 原始的 Waterfall 模型中,以下階段按順序進行:
- 系統與軟體需求:記錄於產品需求文件中
- 分析:產生模型、架構和業務規則
- 設計:產生軟體架構
- 程式設計:軟體的開發、驗證與整合
- 測試:系統性地發現與除錯缺陷
- 運作:完整系統安裝、遷移、支援與維護
Agile 方法
Agile 源於精益思維,在 IT 環境中應用「精益」概念。精益方法的核心重點是:
- 消除流程中的浪費
- 最小化非增值的業務活動
- 從客戶的角度最大化價值

敏捷方法
敏捷是一種經過驗證的專案管理方法論,鼓勵以下核心原則:
- 頻繁的檢視與調整
- 鼓勵團隊合作、自我組織與責任承擔
- 一組工程最佳實務,用於快速交付高品質專案
- 一種將開發與客戶需求及公司目標對齊的商業方法
敏捷開發 – 迴圈式生命週期
敏捷開發包含傳統的各個階段,例如規劃、需求分析、設計、程式碼撰寫、測試與部署——但這些階段形成一個迴圈,而非直線。這表示流程具有彈性、可重複,且可依任何順序或並行進行。這允許收集使用者反饋、跨環境的持續測試,以及在執行期間調整專案範圍。
敏捷方法的基礎
- 經驗主義:能夠執行、停止、反思、改善並持續進行,以逐步提升生產力。
- 優先順序:根據商業價值交付工作。
- 自我組織:團隊最了解在現有資源與限制下如何交付工作。
- 時間區塊:團隊必須在固定時間內完成指定任務。
- 合作:團隊承諾在指定時間內交付最終產品,促進跨團隊合作與創意任務完成。
敏捷與瀑布模型 – 三重約束
瀑布模型最大的優勢在於成本固定與可預測性。你知道價格與交付日期。其最大的弱點是缺乏彈性。敏捷方法具有高度彈性,能夠發展成與原始構想截然不同的產品。

敏捷與瀑布模型
傳統瀑布模型基於時間、成本與範圍的三重約束。調整其中任一變數,都會迫使至少另一個變數產生變化。成功交付專案取決於平衡這些相互競爭的變數。但我們知道,單純增加資源並不一定能達成預期成果。事實上,在軟體專案後期增加資源可能產生負面影響。
敏捷方法採取不同的方法,逆轉三重約束。與從一開始就將範圍視為固定不同,敏捷方法將時間(迭代)與成本(團隊成員)視為固定,再調整範圍以專注於最高優先順序的項目。敏捷假設範圍會隨時間演進。目標是在預算與時間內滿足客戶最重要的需求。隨著專案推進,敏捷允許新增需求或重新排序優先順序。

敏捷與瀑布模型的品質
敏捷還是瀑布?請看圖表
Standish Group的最新報告涵蓋了2013年至2017年間研究的專案。下文展示了敏捷與瀑布專案的整體成功、挑戰與失敗情況。敏捷專案的成功機率約為瀑布專案的兩倍,失敗機率則低三倍。
(來源:vitalitychicago.com – 比較敏捷與瀑布專案的成功率)

敏捷對瀑布 – 專案成功率
敏捷的傘狀架構
自2001年敏捷宣言誕生以來,敏捷已獲得顯著發展。事實上,敏捷並非單一的方法論,而是一種心態,使團隊與組織能夠創新、快速回應變化的需求並降低風險。組織可靈活採用各種現有的框架,例如Scrum、看板、精益、XP等。

敏捷的傘狀架構
精益方法
精益組織理解客戶價值,專注於核心流程以持續改善。最終目標是透過零浪費、理想的價值創造流程,向客戶提供完美的價值。
引導精益實施的五步思考流程容易記憶,但並非總是容易執行:
- 從終端客戶的角度定義價值。
- 為每項產品繪製價值流中的所有步驟,盡可能消除非增值步驟。
- 讓創造價值的步驟順暢且依序流向客戶。
- 讓客戶根據需要從上游活動中提取價值。
- 透過識別價值流、消除浪費、引入流動與拉動機制,持續改進並重複此過程,直至達成完美——即以零浪費的方式交付完美價值。

五步精益方法
Scrum方法
Scrum是一種敏捷的專案管理方式,通常應用於軟體開發。將Scrum用於敏捷軟體開發常被視為一種方法論——但與此不同,Scrum應被視為管理流程的框架。

Scrum流程圖板
看板方法
看板的日文意思是「視覺信號」或「卡片」。豐田的生產線工人使用看板來代表製造流程中的各個步驟。作為精益的一部分,該系統高度可視化,使團隊更容易溝通需要完成的工作及其時間。它還標準化了工作流程並優化流程,有助於減少浪費並最大化價值。與Scrum的衝刺看板類似,看板追蹤「待辦 – 進行中 – 完成」的活動,但會限制「進行中」的任務數量(由團隊負責人定義,不可超過)。

看板方法
有四個核心看板原則:
- 將工作可視化,以提升溝通與協作。
- 限制進行中的工作,以避免無限延伸的未優先排序開放任務鏈。
- 衡量並優化流程——收集指標,預測未來問題。
- 透過分析與反饋持續改進。