近年來Agile methethology的風潮席捲全世界軟體業,弄得好像哪個公司不懂Agile就落伍了一樣。我的公司現在也讓很多專案用Agile的方法做。我本人也是Agile methodology的信奉者。
最近有人問我說,為什麼大型套裝軟體的案子不能用Scrum (Scrum是Agile 的重要核心觀念)做。一個簡單的回答,就是依照Stacy matrix module, 套裝軟體的專案大部分都屬於simple, 頂多是complicated等級的案子。所以不適合用Scrum,比較適合以傳統PMP 方法為主的water fall 作法。
我舉一個組隊爬山的例子。如果有一個山從來沒有任何團隊爬過。爬山過程中不知道哪裡有懸崖哪裡有危險動物,我建議就用Agile (scrum) 去多方嘗試。但是即使再高的山(像是玉山富士山),其他人都已經爬過了,還把感想寫在FB上了,那我就建議用傳統water fall的方法,依照前人的路線(lessoned learn)來爬山。
之前SAP的導入為了搭上Agile的風潮並想要更快的導入SAP,就提出一個water fall和scrum混和的Activate的methodology。結果蠻失敗的,原因之一是專案範疇(scope)混亂。如今的商業環境不太能允許一個專案因為Scope不清楚而讓公司預算無法控制。
我們公司也有用Agile成功的案例,例如很多AI的案子,因為一開始不知道要用哪一套演算法(Algorism)所以透過Scrum一次次的sprint去找到對的方法來執行。這種案子不需要外部顧問協助;也沒有硬體支出。所以成本相對低廉,即使預算不可控也不會花太多錢。
台灣PMI創始人在一次演講中說,只懂PMP而沒有Agile的精神是觀念落後。但是什麼專案都拿Agile來套的話會是災難。
Agile methodology強調專案人數必須要控制在5-20之間的團隊的原因就是因為Agile可以做那種AI應用;小型自動化開發的案子。但不適合做ERP, MES等級的大專案。
我拿蓋房子為例,要讓Agile做室內裝修會是好工具;但是如果連土建架鋼筋都要透過一次次sprint來調整就沒辦法做了。在舉打仗為例子,agile像是五人一對的海豹特種兵部隊,可以執行各種困難的任務。但是你不能把這種部隊放在烏克蘭這種都是平原的戰場跟人家坦克飛機對打。
在技術日新月異需求越來越多元的今天,Agile絕對是有別於傳統Water fall的新的專案手法。但是ERP, MES這類套裝軟體這種在專案開始以前就很清楚專案scope的專案,就不可以用Agile來執行。