SCRUM、敏捷跟 CMMI 的差異

摘要:SCRUM、敏捷跟 CMMI 的差異

  我經常在網路上看到很多人喜歡拿 SCRUM、敏捷來跟 CMMI 來做比較,而凸顯 SCRUM與敏捷的輕巧與便利,但其實者兩個是不應該拿來做比較的,因為他們所面對到的 VIEW 是不同的,敏捷與 SCRUM 主要是面對到專案層級,而 CMMI 所面的對是組織的層級,所以兩著拿來做比較,其實是有點問題的,看到這裡,很多人會想又一個CMMI一派的人在這裡亂叫但其實如果有真正的去將這兩套搞懂,其實就不會有那麼多的爭議。SCRUM、敏捷其主要面對的是專案在執行時的方法,但他並非是一套 Total Solution,儘管他是用來管理專案,生命週期也是從專案的起始到結束,但是他所對到的層級仍然是在專案層。CMMI的主要的精髓其實是在 High Maturity 的層級,可以用來量化專案的執行數據、預測專案未來執行狀況以及作業流程的改善,而最多人接觸到的部分依舊是在文件的收集、流程的執行,但其實這都只是用來支援整個組織運作的一環,就好像 Microsoft 出了那麼多好用的軟體Word、Excel、VS.NET...等,其最主要的目的就是為了要鞏固他的Windows作業系統意思是相同的。

  CMMI 最大的詬病是在專案在執行時所需要做的文件保留,常常在執行 CMMI 的人員最喜歡問的一句話就是「到底是專案執行重要,還是做那沒有用的文件重要」,但很可惜的,我們得到的大多都不是我們想聽到的,大多都是「兩個都很重要,兩個都要做」,結果常常會讓人失望。專案經理跟主管與 SCRUM、敏捷跟 CMMI 的狀況是一樣的,其實是所面對到的 VIEW 不同!試著想想如果你是一個老闆,你底下有一個專案經理,能力非常強!一個人可以估算的出專案的時程、成本...等相關的內容,你能不重視他嗎?但是你可能日子久了你就要擔心一件事情,就是他如果離職了,那公司要怎麼辦,你能不擔心嗎?如果可以有一套方法能讓這個強人的經驗流傳下來,靠著一套流程的建立,讓一般的專案經理依循這套流程執行專案,或許無法完美,但可以有到 70~80 分的完美,那你能不重視這方法嗎?站在不同的角度會有不同的思考。

  剛剛有說過 SCRUM、敏捷跟 CMMI 的角度是不同的,原因是 SCRUM 與敏捷所面對的層級是專案的執行方法,而CMMI面對到的是一整個組織在對他底下所有專案的管理,工程領域在 CMMI 中只是一個環節,沒錯他是主要的執行環節,但他不是主要的精髓,CMMI 主要精髓是在:1. 讓專案的經驗能傳承,2. 量化專案的管理,3. 預測專案執行狀況,4. 了解專案淺在問題,5. 流程改善。其主要是讓我們的經驗能不斷的循環,不斷的精進,在整個 CMMI 的作業流程有包含了:
1.組織:針對組織的資料收集、標準流程建立、量化資料、Model建立...等。CMMI導入重點: Level 3、Level 4、Level 5
2.管理:管理面是對於專案執行的規劃、時程、成本與定期的審查管理。CMMI導入重點:Level 2、Level 3、Level 4
3.工程:工程面是面對到需求訪談、系統分析、系統設計、系統建置、系統測試、上線、驗收、交付...等相關作業流程。CMMI導入重點:Level 2、Level 3
4.支援:支援面試對於專案品質的確認、資料建構的管理、專案資料收集...等。CMMI導入重點:Level 2、Level 3、Level 5
就上述所描述的,CMMI 所面對到的是從一整個組織面開始流程的建立,專案的管理時程規畫、成本的掌控、風險的管理...等,到了工程領域其實他就是個方法,一個執行專案的方法,可以運用瀑布式、漸進式、螺旋式、敏捷...等工程管理方法,但很不幸的台灣在導入的初期大多都是使用最完整與嚴謹的瀑布式來導入(也許是在瀑布式的流程最好做資料收集,所以才會如此),所以會讓執行的人員未受其利,先受其害。工程面的執行其實是 CMMI 的一個執行方法,CMMI 它真正面對到的是組織層面,而並非是只針對單一專案,只是要能達到組織層面的部分,最少要到 CMMI Level 3 以上才會開始有所體悟,而且必須要在不能跳級的狀況下,它是一套流程,不過很可惜的是台灣與大陸大多是將它當成是一個牌照,一個可以跟政府標案的牌照,而本末倒置的因為 CMMI 而 CMMI,這也造成很多人斷章取義將 CMMI 其中的一部分取出來,針對他不斷的攻擊與批評。