實(shí)施CMMI時(shí)必須解決了解的問題

在基于CMMI實(shí)施軟件過程改善時(shí),有些根本的思想認(rèn)識問題解決不了,往往會(huì)使實(shí)施的周期比較長,效果不好,甚至導(dǎo)致過程改善的失敗或中止。軟件企業(yè)的高層領(lǐng)導(dǎo)、企業(yè)的過程改善主管、銷售人員、項(xiàng)目經(jīng)理及一般的開發(fā)人員都需要對這些問題統(tǒng)一認(rèn)識,在此基礎(chǔ)上才能消除各方面的阻力,把握好過程改善的方向,控制好過程改善的進(jìn)度。筆者在總結(jié)了3年的實(shí)施CMM的經(jīng)驗(yàn)教訓(xùn)后,歸納了如下幾個(gè)思想認(rèn)識問題,供擬準(zhǔn)備進(jìn)行過程改善或正在進(jìn)行過程改善的軟件企業(yè)同行參考: CMMI不是萬能的,只有CMMI是不行的,還要技術(shù)(開發(fā)方法、工具)人員二個(gè)要素一起改善
在軟件工程發(fā)展的歷史進(jìn)程中,人們?yōu)榱私鉀Q軟件危機(jī),嘗試了采用諸如形式化描述語言、結(jié)構(gòu)化開發(fā)方法、CASE工具、構(gòu)件化開發(fā)方法等等各種解決方案,但是效果并不那么顯著,CMU SEI提出了軟件過程能力成熟度模型(CMMI)基于過程的角度來解決軟件危機(jī)。那么是否實(shí)施了CMMI,軟件企業(yè)的開發(fā)能力就一定能提高,一定能帶來經(jīng)濟(jì)效益呢?答案是否定的。如果企業(yè)里要帶來經(jīng)濟(jì)效益必須要結(jié)合軟件過程、工具、開發(fā)方法、人員等多種因素一起提高,才能保證帶來經(jīng)濟(jì)效益,因?yàn)槿藛T、技術(shù)和過程是支撐軟件開發(fā)平臺的三條腿,少了那一條都不行。大家也都知道木桶原理,一個(gè)木桶可存櫧水的最大容量是由最短的那根木頭決定的。在企業(yè)的開發(fā)能力中過程、技術(shù)(含工具、方法)、人員都是主要的因子,都需要全面提高,只關(guān)注一個(gè)方面,而忽略了其他方面,都是有害的。
在開始實(shí)施CMMI時(shí),最容易犯的一個(gè)錯(cuò)誤就是"唯管理論"或孤立地只抓過程改善,忽略了開發(fā)技術(shù)與人員的提高,過分強(qiáng)調(diào)管理的作用,實(shí)施了半年或一年后,發(fā)現(xiàn)企業(yè)的生產(chǎn)能力并沒有得到明顯的改善,這時(shí)反對的聲音就會(huì)成為主流,過程改善就難以繼續(xù)進(jìn)行了。有的企業(yè)采用面向?qū)ο蟮拈_發(fā)方法進(jìn)行軟件開發(fā),但是企業(yè)內(nèi)并沒有對面向?qū)ο蠹夹g(shù)真正了解的專家,雖然也采用RUP過程、也采用ROSE等開發(fā)工具,但是僅僅是形似,沒有做到真正的OO方法,沒有得到OO方法的精髓,這種問題僅僅依靠過程改善是無法解決的。還有的企業(yè)開發(fā)人員的積極性很差,工作熱情很低,企業(yè)的激勵(lì)機(jī)制沒有起到很好的作用,這種問題也是依靠CMMI無法解決的。