90年代中期,CMM開始傳入中國。1999年清華鼎新成為首家通過CMM評估的國內企業,截止2006年底,中國通過CMMI正式評估的組織的數量僅次于美國和印度,位居全球第三。CMM在中國推廣近10年以來,對于中國軟件企業的發展起到了巨大的推動作用。但是,最近幾年,CMMI在中國的推廣卻表現出了一些令人擔憂的現象,社會上對于CMMI的評價日趨下滑。筆者試圖透析企業通過評估后所表現出的種種怪現象,對中國軟件過程的改進起一點警示作用,讓這一好的過程改進模型在中國能夠落地開花,實效常在。
怪相之一:證書擺桌面,體系放一邊
2006年筆者曾經在某軟件園進行調查,走訪過8家通過了CMM評估的軟件企業,發現有5家企業將CMM評估證書高高掛在墻上,做過程改進的人員卻已不見蹤影,基本放棄了該體系的執行。大概這5家企業原本就沒有想到要真正去改進過程,只是因為政府對此有補助!
2000年國務院下發了8號文件《鼓勵軟件產業和集成電路發展的若干政策》,明確提出鼓勵軟件企業通過CMM評估。各地政府此后陸續出臺了資助政策,軟件企業通過評估后,可以從國家的不同部門比如信息產業廳、科技廳、外經貿委等拿到資助。很快就有軟件企業為了享受表面上看去是“免費的質量成本”,懷著“政府出錢,我拿證書,不拿白不拿”的心態,突擊通過了CMM的評估,于是便出現了“證書擺桌面,體系放一邊”的現象。
其實企業失算了!獲得的政府資助資金往往大都支付給了咨詢公司,而企業在通過評估的過程中需要編制體系文件,需要編制多個項目組的直接與間接證據,需要安排人員接受多次訪談,這些活動耗費了大量人力物力,工作量的成本一般會超出企業實際拿到的政府資助金額,一些弄虛作假還導致企業文化的淪喪。在這種意識下違背軟件業客觀的過程改進規律的行為,最終得到的只是一紙證書!弊,實際大于利!
怪相之二:證書拿到手,體系大調修
筆者曾經接觸過2家企業,在通過CMM或CMMI評估后很短的時間內,就對過程體系進行了大幅度的裁剪,其中一家公司的負責人講:“原來定的體系太繁瑣,為了通過評估,我們忍了,現在必須裁剪!”,
這是對CMMI的誤解!
在CMMI的各種構件中,只有目標是必需的,實踐是期望的,子實踐是解釋說明的。所以首先要滿足模型里每個目標的要求,目標的達成是根據實踐的執行情況來判斷的,模型里給出的實踐是可以替換的。只要能達成目標,采用什么實踐都是可以的。
CMMI采用SCAMPI評估方法,SCAMPI評估方法要求主任評估師必須具有10年以上的軟件工程經驗,評估組的成員必須平均具有6年以上工程經驗,評估組累計不少于25年工程經驗,每個生命周期階段要有2個人具有實踐經驗,至少一個成員要有6年以上的管理經驗,評估組累計要有10年以上管理經驗。這些要求其實是為了更好的進行專家判斷,避免“機械照搬”。
CMMI要求企業要建立裁剪指南,在實踐中,裁剪指南往往比體系本身更重要。僵化的體系是不可能真正在組織里推行下去的,要保持體系的靈活與敏捷,就必須定義詳細的、實際的裁剪指南,并在實踐中逐步完善。
過程的簡與繁都可能達到模型的要求,關鍵取決于起草體系的人員對模型的理解。企業在開始導入CMMI時,一般是請咨詢顧問介入,而目前國內的CMMI咨詢公司、咨詢顧問魚龍混雜,客戶往往依賴某些網站或協會之類所謂的獨立組織根據網民投票所選出的“咨詢公司排名榜”按圖索驥。如果咨詢顧問對模型的理解不深刻,自身的EPG成員又欠缺經驗,或者咨詢顧問參與的工作量很少,則難免怪相橫生。
怪相之三:工期依然拖,缺陷照常多
某企業實施CMMI到一定階段后,EPG抱怨領導意識有問題,對過程改進支持力度不夠,而領導卻說該授權的也授權了,該獎懲的也獎懲了,但是項目依然拖期,仍然存在質量問題,認為是EPG沒有解決核心問題。
問題究竟出在什么地方呢?
過程改進的目的可以用四個字來概括:“多、快、好、省”:
多,即項目組能滿足的客戶需求越多越好,企業能承接的項目越多越好;
快,即能夠提高企業的估算能力、應變能力,使項目能夠按期完工,減少拖期現象;
好,即提高交付的產品質量,減少售后維護的工作量;
省,即降低項目的開發成本,提高企業的贏利能力。
不同的企業在上述4個目的中的側重點可能有所不同。過程改進時,一定要緊緊圍繞企業的改進目標做工作,針對老板關注的問題、針對企業最薄弱的環節實施改進;同時,找到病根,更要找到有效的解決方案,并堅決執行。解決方案應既包含對過程體系的修改措施,也包含推廣措施。比如單元測試和代碼走查是提高軟件質量的有效措施,這已經在工程界得到了充分認可,但是在企業里推廣時,往往會遇到開發人員的阻撓,開發人員會認為做單元測試與代碼走查浪費了大量的時間,不如直接做黑盒的功能測試更簡單,這就需要EPG成員采取各種各樣的手段,努力使這些業內的最佳實踐變成企業的最佳實踐。這樣才能事半功倍,快速見效,否則見不到實際效果,任何管理方法都不會長久,任何老板也不會持續投資。上面提到的EPG與老板的互相抱怨問題,很大程度上歸因于此。
怪相之四:文檔一篇篇,不見有人看
有一家企業已經通過了CMM 3級的評估,完成一個項目需要項目組填寫接近90份文檔,當筆者去做CMMI的差距分析時,發現在那些文檔里有大量的顯而易見的錯誤,而需要看這些文檔的項目經理、QA人員及高層主管等多個角色中,卻沒有人發現錯誤,其實這些人根本就沒有去看這些文檔!嗚呼,既然沒有人看,何必寫呢?
SCAMPI評估方法需要企業提供3種證據:直接證據、間接證據、人證。每條實踐必須要有直接證據來覆蓋,直接證據包括了產出的文檔、使用的工具等等。由于直接證據是必須的,于是為了滿足評估的需要,很多企業做了上百個的文檔來滿足模型的要求,其實這是不對的。模型是強調直接證據,但是并非文檔越多越好,文檔只是用來證明某個實踐你做到了,只要達到了這個目的就可以了,而且一個文檔可以滿足多條實踐的要求,可以作為多條實踐的證據,這是最經濟的做法。只要內容有了,也并非在乎文檔的多少與格式。
在沒有實施CMMI之前,項目組往往不寫文檔或者很少寫文檔,實施CMMI之后,寫的文檔又可能太多,這是兩個極端,需要平衡。
怪相之五:流程很優秀,效果鮮見有
有一家軟件外包公司,CMMI3級,流程定義得很簡潔、實用,企業的執行力也很強,但是項目的實際效果卻不好,為什么呢?筆者仔細審查項目組的需求、設計、測試用例、源代碼等文檔,發現需求的描述有遺漏、有錯誤;設計文檔沒有滿足基本的設計原則;測試用例不完備、覆蓋率比較低;源代碼中需要重構的地方比比皆是。再問一個為什么?發現項目組成員比較年輕,工程經驗大都少于2年,盡管企業也進行了需求工程、設計模式等的技術培訓,但是經驗不是靠培訓能解決的。因此,即使有好的流程,仍然沒有開發出好的軟件系統!
另外一家軟件公司,沒有通過CMMI的評估,公司內有3個部門,其中一個部門積累了一個基于.net的可復用的MIS軟件框架,該框架已經在由少數的精英開發了4年,積累了4年,發布了多個版本。實現一個新需求時,只要定制界面,編寫存儲過程就可以了。當一個新員工進入該部門后,基于該框架,大概花費1周的時間就可以編寫出能夠交付給客戶執行的代碼,該部門的開發效率很高。對于該企業來講,引入CMMI并非當務之急,打破部門之間的壁壘,將該軟件框架推廣到其他2個部門,可能投入產出比更高。
人、過程、技術三者都不可偏廢!企業要分析在人、技術與過程中,哪個因素是企業的瓶頸問題,優先解決瓶頸問題才能事半功倍,最大限度的提高生產效率。企業只有擁有了具有一定技能的人員與成熟的技術,軟件過程才能最大程度的發揮其作用,軟件過程才是實現人員與技術集成的主線,才能真正讓過程效益最大化。
怪相之六:大家要業績,快速過五級
很多企業在通過了CMMI3級的正式評估后,急于通過CMMI的5級評估。為什么呢?一是企業可在市場競爭中可提高資質,戰勝對手,多多拿單;二是政府可提供巨資資助,證明政府有業績;三是咨詢公司可對外宣傳自己評估了幾家高成熟度的組織,以增強客戶對自己的信任。幾種因素綜合在一起,企業就不由自主地加快了向高成熟度組織的邁進。
據不完全統計,在中國,2006年一年內通過CMMI 5級評估的軟件公司超過了10家。也很不幸,在中國進行CMMI 5級評估的主任評估師有的受到了SEI的處分。自2007年始,SEI開始對CMMI高成熟度組織的評估師進行了重新考試,并非所有的主任評估師都可以做4-5級的正式評估,在全球SEI加大了對4-5級評估的審計工作,尤其是對東方的軟件大國。
在實施4-5級之前,需要慎重的考慮:你真的需要通過CMMI 4、5級的評估嗎?
CMMI的4級強調的是過程穩定性與項目量化管理,5級強調的是根本原因分析與持續改進。對于很多企業來講,可能在CMMI3級時,就已經做到了在項目組內定義量化的質量目標,并實現了該量化目標,因此在3級時可能就已經部分做到了4級的要求。比如有的外包企業在3級時就做到交付軟件的缺陷密度低于0.3個/KLOC,比SEI統計的通過CMM 5級評估的企業的平均質量還要好?蛻舻乃經Q定了供應商的水平,對于客戶要求高、生產高可靠性軟件的公司通過CMMI4-5級的評估是很有必要的,否則,真正達到了CMMI 3級的水平足以滿足一般的客戶需求。
在實施4-5級時,還需要慎重的考慮:你真能在短時間內證明過程的穩定性和量化的持續改進嗎?
按照統計學的要求,一般需要25個樣本點才可以證明過程的穩定,而且這些樣本點必須在5M1E等因素上是相近的,而軟件企業的人員變動、技術方法升級等變化比較頻繁,即使采集8個樣本點,對于大多數軟件企業講,也需要相當長的時間周期。根據SEI的報告,自1992年以來,從等級1到等級2的達到時間的中間值為19個月,從2級到3級的中間值為19個月,從3級到4級的中間值為24個月,從4級到5級的中間值為13個月。
如上所述,這些怪現象源自管理者的意識不對、政府的引導方式不當、EPG的經驗不充分、咨詢顧問的水平不高、主任評估師的職業操守欠缺、媒體的輿論導向有偏差等。當然,CMMI的怪現象還有很多,只是上述的現象比較突出,對于以后中國的CMMI的良性發展影響甚大,因此列舉出來并剖析之,希望軟件組織、政府機構、CMMI咨詢機構包括軟件客戶能夠引以為鑒,理性看待CMMI,做到“CMMI在實效上的繁榮,而不是證書上的繁榮”,促進中國的軟件過程改進事業持續、良性、健康地發展!
文章來源于領測軟件測試網 http://www.kjueaiud.com/