傳統與敏捷專案管理:主要差異與鐵三角解析

無論你是Scrum 專員、專案經理、產品負責人、團隊成員,或只是想回答「你如何在現實世界中運行一個敏捷 Scrum專案?」——本文必定能為您提供所需的答案。

傳統專案管理

傳統專案管理(瀑布模型)的方法是線性的,所有流程階段依序進行。此方法依賴可預測的工具與可預測的經驗。每個專案都遵循相同的生命周期,包括可行性、規劃、設計、建置、測試、生產與支援階段,如下方圖示所示。

Waterfall vs Agile Software Development

瀑布模型與敏捷軟體開發

整個專案皆事先規劃,需求變動空間極小——如同瀑布模型、PMI 的 PMBOK 與 PRINCE2,皆具高度僵化與嚴格控制。它們明確劃分從開始到結束的各個階段,並假設您已擁有所有所需的需求與資訊。

此方法假設時間與成本為變數,而需求則為固定——這正是傳統專案管理常面臨預算與時程問題的原因。

敏捷專案管理

雖然傳統系統高度著重於事前規劃,成本、範圍與時間等要素至關重要。相反地,敏捷則強調團隊合作、客戶協作與彈性。

敏捷否定了傳統專案管理,認為其枯燥、受限,不適合快速變化的現代世界。敏捷專案管理是迭代式的,旨在持續整合使用者反饋與每次開發迭代中的持續發行,如上圖所示。每一項任務的產出皆是您向利害關係人銷售的產品。團隊與工作流程皆以創造對客戶直接有用的成果為核心。

傳統或敏捷——如何選擇?

根據 Standish Group 於 2011 年發布的 CHAOS 報告,敏捷專案的成功率是瀑布模型專案的三倍。下圖顯示了 2002 年至 2012 年間研究的具體結果:

Success Rate of Waterfall vs Agile Projects

瀑布模型與敏捷專案的成功率

傳統與敏捷之間的差異

下表總結了 Scrum 與傳統專案管理模型之間的許多關鍵差異。

類別 傳統 敏捷
開發模式 順序式(瀑布模型) 迭代式
重點 流程 人員
管理風格 控制 促進
客戶參與 僅限於需求收集和交付階段 持續且現場參與
開發人員工作風格 在團隊內獨立工作 協作或配對程式設計
技術 任何 主要以物件導向為主
產品功能 包含所有功能 首先包含最重要的功能
測試 在開發週期結束時 迭代式和/或測試驅動
文件 大量 僅在需要時

變更成本

傳統上,軟體專案的變更會被避免,因為專案後期變更成本會大幅增加。敏捷軟體開發承認變更是不可避免的,且過度投入前期規劃是不切實際的。這一點在敏捷宣言的四個價值觀之一中明確表達:

「比起遵循固定計畫,更重視回應變更的需求。」

敏捷挑戰此觀念,並主張變更成本可能相對平坦,如下圖所示:

Cost of Change in Traditional vs Agile

傳統與敏捷中的變更成本

專案管理中敏捷與傳統的鐵三角

傳統上,專案管理的成功與管理範圍、時間、成本和品質等限制的能力相關,如下圖所示。這是一個廣為人知的隱喻,暗示專案經理應合理地平衡這些限制。

Iron Triangle in Agile vs Traditional Project Management

敏捷與傳統專案管理中的鐵三角

傳統鐵三角的問題在哪裡?

例如,透過增加預算或縮減範圍,專案可以更快完成。同樣地,擴大範圍通常需要相應增加預算和時間。若不調整時間表或範圍而減少預算,品質將會下降。然而實際上,各限制條件之間的權衡並非總是可行。例如,在資源充足的專案中投入更多資金(和人力)反而可能拖慢進度。此外,在表現不佳的專案中,若不對品質造成負面影響,很難改善預算、進度或範圍。

因此,傳統的鐵三角明顯不足以作為專案成功的模型,因為它忽略了成功的重要面向,包括利害關係人影響、學習成果以及使用者滿意度。

敏捷鐵三角——一種范式轉移

在傳統方法中,三角形通常如下方左側所示。如您所見,產品需求具有固定的範圍。因此,為確保產品能提供所有所需功能,我們需要在資源(及預算)和時間表(截止日期)上具備彈性。若我們必須確保產品包含初始需求規格中所描述的所有功能,可能需要將發行日期延後數月甚至更久。

在敏捷觀點中,時間表是固定的(在Scrum中,這透過時間盒 迭代以及固定資源來達成)。因此,當事情不如預期時,必須縮減範圍。但在敏捷方法中,即使必須在範圍上妥協,我們仍確保從產品待辦事項清單中交付最高優先順序的項目,以最大化專案所產生的價值。

Iron Triangle in Agile Context

敏捷情境下的鐵三角

 

Leave a Reply