什麼是Agile與一般專案管理流程的差異

一般的專案進行大多是按「評估、需求、規劃、執行、結案」等階段順序,一個接一個的來完成專案。這種線性的工作方式叫做排序(sequential)的專案流程。另一種方式就是當前一個階段還未完成時,就提前進行下一個階段。這種方式叫做重疊型(overlapping)的專案流程。最後一種就是專案的所有的階段被從頭到尾進行一輪後,再從頭來進行另一輪的專案流程,必要的話可一再重複這樣的循環動作,直到對專案最終的產出或結果感到滿意為止。這種方式是叫做重複型(iterative)的專案流程(見下圖)。那麼該如何來決定使用何種類型的專案管理流程呢?基本上,我們可以按照專案的特性、複雜程度、與控管需求程度來決定,簡單說明如下:

  • 排序型 (sequential):當專案的需求、目標、範疇及實現方法可以被很清楚地定義及規劃,同是專案團隊也有足夠的過去成功經驗來掌控專案執行過程中的可能變化及風險,就可以採用排序型的專案流程。最常採用這類流程的專案包含一些技術成熟度高、作業標準化高、風險低的軟體、工程、或營建等。這種排序型的專案流程在軟體開發上也被稱為流瀑式流程(waterfall process)。亦即像流瀑一樣,一階一階地往下流動。
  • 重疊型 (overlapping):重疊型的專案流程主要適用在需要儘量縮短時程的專案上,透過前後階段的重疊,來壓縮及節省可能的時程。例如,當專案的某個階段還未完全完成時,就先進行下一階段的規劃及準備工作。重疊型的專案流程在產品開發時,經常與同步工程(concurrent engineering/simultaneous engineering)的方法結合,可以提升不同部門的溝通效率、增加不同專業背景人員的合作效率、避免設計失誤的產生,進而加速專案工作的進行及完成。
  • 重複型 (iterative):對那些目標、需求及實現方法不易被確定、且缺乏過去成功經驗的專案,反覆型的專案流程安排較為適合,特別是對那些需求範疇變化高、作業標準化低及風險程度高的新產品及新技術開發專案。這種重複型的專案流程在軟體開發上也被稱為敏捷式開發流程(agile development process)。這種專案流程強調不必一次就要把專案規劃得很仔細,同時也不必一次就要產出符合理想的結果。而是透過重複性的流程循環、漸進式的修正、及機動的反應需求變化,來有效地產出符合理想的結果。

除此之外,根據實際的需求,有些專案產出流程可能是這三種流程混合而成的。近年來,許多專家一直強調敏捷式開發流程是最有效的方法。但實際上,只要符合專案實際的控管需求,上述三種類型的專案流程都各有其優點。因此,選擇哪一種流程不是以「好與不好」、 而是以「適不適合」為判斷的依據才最重要。

 

pmdef18_1

「排序型、重疊型、與重複型」的專案產出流程的比較圖

(作者賴志宏 博士   出處Kris專案管理學院)