專案管理論戰(上):不懂瀑布和敏捷就別說你懂專案管理

大家好,我是馬在飛的馬。

如果你有在接觸專案管理,相必有聽說過「瀑布式」、「敏捷式」的專案管理方法,可能也有聽過各種支持或反對的論點,甚至還聽說過「混合式」Hybrid。這些到底是什麼呢?專案到底應該怎麼管理比較好?正在看這篇文章的你很幸運,因為我剛好是這幾種專案管理模式都有經歷過也考過相關證照,現在就讓我以實作的經驗,和你分享吧!

瀑布式:讓我們先規劃好一切,然後照表操課吧

瀑布式是的管理方法論歷史悠久,也相當符合人性管理的直覺,就是預先想好、規劃好所有的可能性,接下來每一階段都依據著規劃書去執行,依據規劃書的檢查點與規則進行檢查與稽核,來確保專案的順利,這個方法論最早是用在火箭的建造上,採用 需求定義(Requirements)->設計(Design)->實作(Implementation)->整合與測試(Verification)->移交與維護(Maintenance) 的生命週期進行管理,並取得了巨大的成效,並應用在許多不同的專案管理領域,到了軟體開發的時代,這種管理思維仍被持續使用。

但!相較於火箭、建築、建設等專案,軟體專案在實際執行的過程中,卻需要很多應變與彈性,瀑布式管理的方法,也在此時開始顯得不足,這也是為什麼從90年代開始,出現了敏捷式管理的方法,試圖修正瀑布管理在軟體開發中的不足。

瀑布式管理是直線式的,有明確的開始與結束

我開始接觸軟體開發時,採用的就是瀑布式管理,瀑布式管理是一個相當成熟的管理模式,需要注意的元素與管理方式都有完整的定義與明確的執行準則,在執行上的優勢在於,一但規劃設計階段完成後,接下來的溝通成本相對低,只要將規格交給工程師開發即可,但缺點也在於,因為有明確完整的規格,大家就完全停止了思考,只是按表操課。在開發測試中,覺得這個規格怪怪的、或是明明想到更好的方法,但卻還是照著「確認的規格」繼續執行,導致問題可能都堆到最後交付,或是真正的使用者開始進入時,才爆出來,但那時整個產品已經完工,任何的變動都要付出高額的成本,使得專案驗收結案產生諸多爭議。

瀑布式管理對我來說,仍提供了很好的專案管理思維基礎,其在計劃->執行->驗證稽核的流程以及風險、利害關係人的管理中,都包含很多專案管理前輩的經驗與智慧,但用瀑布式來管理軟體開發,只適用於規格非常明確並且重複度高的專案,若是複雜度高、不確定性高的複雜產品,拘泥於瀑布式管理的模組,只會帶來災難。

敏捷式:產品不死,並持續迭代進化

瀑布管理與敏捷管理在對專案的核心定義的差異,奠定了兩種不同的管理模式。對瀑布式來說,專案有開始到結束生命週期,專案結束後,就進入維運管理的領域; 但敏捷則認為,一個產品只要還在被使用,就可以持續進步改善,沒有所謂的結束。基於這個理念,敏捷管理發展出了持續迭代的管理方式,不同於瀑布式只是為了完成階段性的任務,敏捷管理是確認產品的目標核心後,逐步往目標的路上前進,在這個過程中,不會先去預先規劃所有該做的事,而是逐步小階段的去達成目標。

在敏捷管理中,專案被切成了許多小階段,當前要執行的小階段,都應該是為了完成目標最重要的事,快速地去執行並驗證效果是否符合期待,並依據驗證結果調整下一階段要做的事。敏捷管理的核心就是在短期內進行 規劃->執行->驗證->調整規劃 的循環,避免浪費過多時間在不需要的規劃或是開發功能上,並且因為驗證的週期短,如果出現問題,可以提早被發現並矯正,避免問題的堆積。相對於瀑布式管理,敏捷開發保留了更多的彈性,並且不抗拒變動的發生,對產品的認知,不拘泥於「確認的規格」而是要能達成期待的目標,透過高度的溝通與協作,讓產品持續進步。

軟體開發是一門精緻的技術,除非是做完全一模一樣的功能,不然總是充滿了不確定性,而各種新技術的更新也相當快速,再加上只有遇到真正的使用者,你才能知道他們在想什麼,這幾種特性,都增加了讓瀑布式管理的專案成功的難度,但這在敏捷管理的迅速產出、快速學習、避免浪費的理念下,這些特性得到了被管控的方法。

敏捷式Agile
敏捷管理只需要短期的規劃、快速的開發產出,驗證後調整下次的規劃,持續的進步迭代(圖片來源:StarDust)

聽起來很美好,是吧?時代在進步,在軟體開發的產業,越來越多人願意使用敏捷並且取得成功,在美國,政府標案甚至會指定使用敏捷式開發,不過敏捷管理的缺點是不容易學習。敏捷理確實可以解決許多軟體專案管理的既有問題,敏捷管理要成功,需要需求方(客戶)、公司、開發團隊、PM都要能接受並落實這種管理,但要能掌握敏捷管理卻相當不容易,不同於瀑布式已經給出了很多明確的準則,敏捷式管理要能精通,更重視的心法。

有些公司宣稱自己使用Scrum、Kanban管理,其實都只學了敏捷管理的皮毛,骨子裡仍是瀑布式,我在剛開始接觸到敏捷式管理時,也遇到一樣的問題,雖然使用Scrum的管理方法,但卻抗拒未知與變動,內心仍用瀑布式的方式去理解專案,但若無法在思考上擁抱敏捷管理的理念,不但享受不到敏捷的好處,還會覺得敏捷強調的大量溝通與反省造成很大的工作量,這就是為什麼很多人會說敏捷式管理一點用處都沒有了(笑),但在軟體開發的趨勢中,敏捷管理將逐漸取代瀑布管理,在這個轉化的過程中,很多公司為了適應市場,發展出了所謂的「混合式」Hybrid。

怪異的混種chimera
說實話,Hybrid是一個奇怪的混種,有點不三不四,但在軟體開發管理模式轉變中,是可以被理解的,但是是對的嗎?

文章到這裡該告一段落,下篇文章,我們繼續說明「混合式」Hybrid的奇妙生態,以及馬在飛如何去適應並落實敏捷開發的理念。如果你有相關經驗可以分享,歡迎留言並分享我們的文章,我們也很希望和更多人討論軟體專案開發和管理的經驗、想法!讓我們一起為了更好的未來努力!

若你有軟體開發或專案管理的需求,請點擊此並留下你的需求,我們會盡快與你聯繫

前往馬在飛科技官網

--

--

馬在飛科技

不要浪費錢買 Output(產出),你要的是 Outcom(結果)! 客製軟體要花不少錢,但你知道你買的是什麼嗎? 你以為就是 APP/網站?其實不然,你真正需要的是達成目標,目標可能是:增加收入/提高回客率/降低成本...等等,APP/網站只工具,目標才是你真正花錢買的東西。立即洽詢馬在飛科技,找到產品成功的秘訣。