今天這篇來呼應一下今年鐵人賽的標題 - Hybrid PM, 除了雙關語講PM本身的軟硬跨界整合之外, 更嚴格的說是Hybrid Project Management, 混合式的專案管理, 市面上有些稱為Wagile, 或是PM2.0, 這邊沒有挑戰任何的說法, 純粹就是分享實務操作上的觀點, 怎麼將兩種專案管理手法(傳統瀑布式Waterfall + 敏捷式Agile)結合在一起, 我們利用上圖這個專案工作分解結構(WBS)來做個說明:
一般專案在WBS的表達都可以拆分為幾個藍色區塊來表達"專案階段", 以需要敏捷手法介入的軟體開發專案為例, 通常有
(1)Requirement
(2)Design
(3)Develop
(4)Implement
(5)Evaluate
(6)Release
若只採用傳統瀑布式的Waterfall管理手法, 一般就是預期為(1)~(6)一路向下流的方式運作, 但實際在屬於軟體開發上的(2)~(5)的階段, 其實本質上一定會有多次來回修改的過程, 只是在傳統專案時程的表達上(簡單假設每個階段都是一個月的時程), 似乎會隨時間逐步往下一個階段走, 但實際若採用敏捷開發的運作方式, 可能至少在(2)~(5)的過程中, 會產生四次的迭代(Iteration), 而每次的Iteration中, 就已經將Design, Develope, Implement, Evaluate走過一遍, 然後Demo給客戶做確認, 盡快修正期望與需求, 逐步在四個迭代裡收斂, 若以AI專案為例, 這邊的Develop和Implement可分別想成是"資料蒐集"與"演算法建模"的步驟.
然而一般甲乙雙方的合約, 還是會約定固定的專案成本與專案時程, 所以"頭尾"還是必須以傳統PMP的手法來做專案整體的運作, 若有一些硬體設備的採購, 最後上線測試驗收...等等的(1)和(6)階段的事務, 還是可以用PMP的方式來運行, 所以這邊強調的是用:PMP來做專案規劃, 但是用Agile來做執行, 才能既滿足整體時程控制與又能藉由敏捷運作來降低開發風險, 所以這也為什麼叫Hybrid, 因為兩種手法混用, 一方面還是會有一些必要專案文件產生, 但團隊運作上又以逐步交付的方式與客戶確認, 讓客戶也逐段參與其中, 綜合運用而不錯亂, 也算是一種專案管理的經驗!