軟體企業如何實施CMM

wangjun_pfc發表於2007-10-13

軟體企業如何實施CMM

 

 

前言


  CMM(軟體過程能力成熟模型)的主要思想很清楚,標準的條例也很明確,但如何達到這種標準的可操作性比較差,可參考的、可借鑑的具體實施步驟比較少。


  國內的絕大部分軟體企業目前處於CMM的初級階段,沒有基礎和經驗。在實施CMM的過程中,往往感到迷茫,不知從何處下手。本文討論軟體企業實施CMM或通過CMM評估所必須經歷的步驟,希望能起到一個拋磚引玉的作用,軟體企業實際實施CMM時,可以根據自身的實際情況和具體要求加以應用。



1
、提高思想認識



  近年來,隨著國民經濟持續增長,作為高新技術的軟體產業雖然發展很快,但和國外同行業相比仍存在很大的差距。究其原因,投資環境、人才和技術固然是制約因素,但我們認為,管理和政策顯得更為關鍵。隨著電子資訊產業的發展,人們已經逐步認識到,軟體是促進我國電子資訊產業發展的關鍵技術。而要發展我國的軟體產業,在戰略上,必須將軟體產業作為我國高新技術產業的龍頭和國民經濟發展的新增長點,在策略上,必須走軟體過程管理專業化的道路。
 


  CMM在中國的實施,從整體上看處於起步階段,很多軟體公司對ISO9000瞭解較多,也有很多公司都通過了ISO9000認證。相對而言,瞭解CMM的就不多了。具備一定規模的軟體企業,對CMM非常感興趣並表示了極大的關注,有部分公司也在積極實施CMM,但正式推行CMM需要在人力和經費上增加投入,一般的軟體中小企業有一定困難。



  根據全球軟體銷售額數字分析,今後幾年軟體和資訊服務的市場規模將有一個巨大的發展。然而中國這樣的一個大國,軟體銷售額還不到世界市場的0.5%。我國軟體企業除少數幾家在500人以上外,多數是在50人以下的民營、集體和個人的軟體公司。以開發技術和規範化程式來衡量,總體上仍是相當落後的,大多數企業仍為手工作坊式製作,產品缺乏市場競爭力。因此,軟體過程管理已成為發展我們軟體產業的一個關鍵性問題。我們希望企業通過使用CMM模型,一個等級一個等級地去提高自己的軟體開發及生產能力,提高企業的整體水平。
 


  實施CMM對軟體企業的發展起著至關重要的作用,CMM過程本身就是對軟體企業發展歷程的一個完整而準確的描述,企業通過實施CMM,可以更好地規範軟體生產和管理流程,使企業組織規範化。而且,只有在國際市場取得成功的產品和企業才具有長久的競爭力和生命力,由於CMM已獲得國際企業和使用者的廣泛認可,因此必須在軟體企業實施CMM



2
、進行CMM培訓和諮詢工作



  任何一個軟體企業要想實施一先進的管理措施,首先應該做的就是理論基礎的建設,作為一個過程式管理方法的CMM,同樣也不例外。
 


  根據CMM模型的要求,一個專案的開發一定要有章可循,而且要做到有章必循,這兩點都離不開培訓。培訓工作需要投入很大的人力、物力和財力,只有企業的管理人員和軟體開發人員對CMM真正瞭解和認識了,自覺地按CMM的方法去進行工作,才能真正實施CMM,而不是一時應付,做表面文章。



  培訓的內容需要精心地準備,主要有兩個方面,第一,對所有員工包括經理在內的最基本的軟體工程和CMM培訓知識;第二,對各個工作組的有關人員提供專業領域知識等方面的培訓;此外,在每次開發過程中,還要對普通人員進行軟體過程方面的培訓。



  培訓的方式有很多,第一,向有關專業培訓諮詢機構進行諮詢。這些培訓公司為CMM知識的匯入起著主導作用,他們來源於各種背景,有國家有關研究所、相關協會、大學、原ISO9000諮詢公司、新創辦的CMM諮詢公司、實施過CMM的企業等,但這些培訓諮詢公司主要集中在北京、上海,尤其是北京。在此,我們建議其他省市,特別是被批准為"國家軟體基地"的城市,應加大力度,竭力扶植有關諮詢培訓機構。



  第二,利用網際網路資源進行諮詢和培訓。例如,可以利用Internet下載有關學習資料和別人的經驗,可以報名參加CMM網校(http://www.21cmm.comhttp://www.21cmm.com )進行系統的學習。
 


  第三,聘請有關CMM專家到企業實地指導CMM的實施。企業職工可在被指導過程中逐步掌握CMM的要領和實施過程。值得注意的是,企業可以在最開始階段聘請一位經驗豐富的CMM專家,但以後一定要培養自己的專家,這樣不僅能節約開支,還能使企業自己具有一個對CMM深刻理解的、有實踐經驗的專家,為企業今後的繼續升級打下一個良好的基礎。



3
、確定合理的目標



  CMM模型劃分為5個級別,共計18個關鍵過程域,52個目標,300多個關鍵實踐。每一個CMM等級的評估週期(從準備到完成)約需12-30個月。無論一個軟體企業的軟體過程處於什麼樣的水平,都可以在CMM框架的5個級別中找到自己的位置。CMM框架的不同級別是針對處於不同管理水平的軟體企業制定的,一個軟體企業實施CMM,首先必須瞭解自己的管理現狀,對照CMM的級別,找到自己在CMM中所處的位置,然後有針對性採取與自己所處級別相適應的措施,使企業遲早納入CMM的進化階段,使軟體過程管理早日得到改善,最終達到提高軟體質量,獲取經濟效益的目的。



  因此,要實施CMM,首先應該對本企業的現狀有一個準確的評估。企業目前處於什麼水平,企業發展的問題是什麼,藉助CMM要達到的目的是什麼。然後再結合企業的實際情況選擇CMM的切入點,確定總體目標。這個目標包括在多長時間之內,需要投入多少人力、物力和財力,要達到哪一級。
 


  由於軟體過程的建立和改進是一個漸進的、分輕重緩急的、逐步完善的過程。所以,在總體目標已經確定的前提下,還要制訂近期目標和長期目標。



4
、成立工作組



  企業針對CMM的實施,應成立專門的CMM實施領導小組或專門的機構。CMM的實施需要有強有力的組織保證,領導層必須真正學習理解軟體過程管理和改進的重要性,親自領導和參與,要保證過程管理的人員配備,抽調企業中有管理能力、組織能力和軟體開發能力的骨幹人員,確實把此項工作當做企業生存和發展的大事來抓。



  在CMM的實施過程中,工作組的成立是CMM的一個關鍵步驟。有幾個重要的組織是必不可少的,這些組織包括軟體工程過程組、軟體工程組、系統工程組、系統測試組、需求管理組、軟體專案計劃組、軟體專案跟蹤與監督、軟體配置管理組、軟體質量保證組、培訓組。



  軟體工程過程組是由專家組成的組,全心全意推進組織所採用的軟體過程的定義、維護和改進工作。軟體工程過程組統領CMM實施活動,協調全組織軟體過程的開發和改進活動,制定、維護和跟蹤與軟體過程開發和改進活動有關的計劃,定義用於過程的標準和模板,負責對全體人員培訓有關軟體過程及其相關的活動。



  軟體工程組負責一個專案的軟體開發和維護活動(即需求分析、設計、編碼和測試)的團體。



  系統工程組是負責下列工作的個人(既有經理又有技術人員)的團體;規定系統需求;將系統需求分配給硬體、軟體和其他成分;規定硬體、軟體和其他成分的介面;以及監控這些成分的設計和開發以保證它們符合其規格說明。



  系統測試組是一些負責笄和完成獨立的軟體系統測試的團體,測試的目的是為了確定軟體產品是否滿足對它的要求。



  軟體質量保證組是一些計劃和實施專案的質量保證活動的團體(既有經理又有技術人員),其工作的目的是保證軟體過程的步驟和標準是否得到遵守。根據文件化的規程制訂軟體專案的SQA計劃;參與專案軟體開發計劃、標準和規程的制訂和審查;評審軟體工程活動,以檢驗一致性;定期向軟體工作組執行其活動結果;根據文件化的規程對在軟體活動和軟體工作產品中所找出的偏差建立文件;與客戶的軟體質量保證人員一起對軟體質量保證組組的活動和調查結果進行定期審查。



  軟體配置管理組是一些負責策劃、協調和實施軟體專案的正式配置管理活動的團體(既有經理又有技術人員)。維護配置管理庫、控制變更;入庫檢查,出庫登記;編寫專案各個階段的配置管理報告;制定專案階段配置管理計劃;管理專案中確認的要配置項。
 


  培訓組是一些負責協調和安排組織培訓活動的團體(既有經理又有技術人員)。通常這個組織負責準備和講授大多數的培訓課程協調其他培訓方式的使用。



  在CMM的實施中組織機構的設定必須完善,但不等於說每一個機構必須是獨立的。有些組織很小時,機構可以適當合併,成員可以身兼數職。但對那些關鍵實踐要求獨立性時,組織必須十分小心。例如,軟體質量保證組的獨立性就是必須考慮的,否則在技術上或機構上出現的偏差,會無目的地影響到軟體過程、專案質量和風險決策的正確性。



  在這裡還要提到一點,那就是物理組和邏輯組。在CMM中有兩種組織,一種叫物理組織,它是客觀存在的,例如專案組、技術部等,有眾多專職人員;另一種叫邏輯組織,就是說它的人員可以是兼職的,在用不到的時候,成員有自己的工作,而且很多邏輯組只需一兩個人就可以了。



5
、制定和完善軟體過程



  CMM模型強調軟體過程的改進,如果企業還沒有一個文件形式的軟體過程,則首要任務是對當前的工作流程進行分析、整理及文件化,從而制定出一個具有本企業風格的軟體過程,並用該文件化的過程指導軟體專案的開發。
 


  如果已經具備了軟體過程,則要對這個過程做內部評估,對照CMM的要求,找出問題,然後對這個過程進行補充修改。在具體實施的過程中,可以選擇有一定代表性和完善性的專案組或專案進行試點,跟蹤、監督改進後的軟體過程的實施情況,執行改進活動的狀態。
 


  同時,過程小組的成員還應該維護過程中的資料庫,定期統計各個過程中的產品和規模、開發週期、修改次數及評估週期。這些資料庫可用來分析專案的效率以及存在的問題,以便今後進一步的改進,同時還可以為專案開發實事求是過程提供諮詢。
 


  總結這些專案組或專案以前成功的經驗,從中規劃出一個具有實際意義的軟體過程,按照CMM規範評估這個過程,找出其中的優缺點。對不滿足CMM要求的地方加以完善,使其成為一個完美的實施CMM的軟體過程方案;然後將這個軟體過程應用到當前正在承接的或即將承接的專案上,在實際使用過程中進一步發現其中的不足和錯誤之處,加以改進,最後將試點的結果推廣到整個企業。
 

6
、內部評審



  CMM每一級別的評估都由美國卡內基梅隆大學的軟體工程研究所(CMU/SEI)授權的主任評估師領導一個評審小組進行。目前,全世界一共只有三百多個主任評估師,大部分在美國,而我國大陸還沒有一個主任評估師。由於我國在CMM評估中要聘請外籍主任評估師,所以費用較高。據估計,要通過一個級別的CMM評估,費用是通過ISO9000認證的十多倍。



  因此,我們建議軟體企業在進行正式評估之前,先進行內部評審或評估。這種內部評審包含兩層含義。第一種就是軟體企業組織自己內部成員,嚴格、認真地按照CMM規範評估過程,對自己的軟體過程進行評審,找出其中的不足點並進行改進。



  第二種含義就是在全國範圍內,由有關軟體工程和CMM專家組成一個專門的"內部評審"機構,負責指導協調實施CMM的活動,推進活動的深入開展,對國內軟體企業CMM評估進行"預先評估"。這種預先評估,可降低軟體企業通過正式CMM評估的風險,減少軟體企業實施CMM的成本,為企業最終獲得國際CMM認證打下基礎。



7
、正式評估



  如前所述,CMM正式評估由CMU/SEI授權的主任評估師領導一個評審小組進行,評估過程包括員工培訓(企業的高層領導也要參加)、問卷調查和統計、文件審查、資料分析、與企業的高層領導討論和撰寫評估報告等,評估結束時由主任評估師簽字生效。
 


  目前主要有兩種基於CMM的評估方法,一種是CBA-SCE(CMM-Based Appraisal for Software Capability Estimation),它是基於CMM對組織的軟體能力進行評估,是由組織外部的評估小組對該組織的軟體能力進行的評估。另一種是CBA-IPI(CMM-Based Appraisal for Internal Process Improvement),它是基於CMM對內部的過程改進進行的評估,是由組織內部的小組對軟體組織本身進行評估以改進質量,結果歸組織所有,目的是引導組織不斷改進質量。



  這兩種評估均由CMU/SEI授權的主任評估師領導,參考CMM框架來進行,都要審查正在使用和將來使用的檔案/文件,並對不同的組織員工進行採訪。SECIPI兩評估結果應該一致,評估結果的所有資料都將呈報CMU/SEI



  針對企業實施CMM的需要,這裡主要講述CBA-IPI的評估方式,以便企業為提高軟體過程進行內部評審。



  CBA-IPI的評估由幾方共同組成:評估小組、公司的管理人員、具體專案的執行人員以及主任評估師。其中評估小組是由經驗豐富的軟體專業人員組成,還要經過CMMCBA評估的培訓,使他們瞭解組織的同時,也懂得如何將CMM模型及關鍵實踐與組織的要求建立關聯。



  CBA評估過程主要分成兩個階段:準備階段和評估階段。準備階段包括小組人員培訓、計劃以及其它必要的評估準備工作。在評估的最初幾天,小組成員的主要任務是採集資料,回答SEICMM提問單,文件審閱以及進行交談,對整個組織中的應用有一個全面的瞭解。



  然後進行資料分析。評估員要對記錄進行整理,並檢驗所觀察到的一切資訊,然後把這些資料與CMM模型進行比較,最後給出一個評估報告。在每個評估報告中,必須針對CMM 的每個關鍵過程域,指出這個軟體過程在什麼地方已經有效地執行了,什麼地方還沒有有效地執行。只有所有評估人員一致通過的情況下,這個評估報告才有效。



  在評估報告的基礎上,評估小組成員起草一個評估結果。評估和評級的結果應與有關的關鍵過程域和目標相對應。在評估結果揭曉後,將送交所有有關的人員,然後準備開始評級。



  要特別注意的是,在評估過程中,如果某一過程並不是CMM的要求,但這一過程與組織的能力成熟度有一定的關係,那麼,它也應包含在評估結果中。



8
.根據評估結果改進軟體過程



  根據IDEAL模型,成熟度的評估只是軟體過程改進中的一個環節,如果這個環節與軟體過程改進的其他環節不能很好地結合,那麼,CMM評估對於軟體過程改進所應具有的作用就得不到發揮。



  一般來說,應該在評估之後很快地作出軟體過程改進的計劃,因為這時大家對評估結果和存在的問題仍有一個深刻的認識。計劃在軟體過程改進中是一個非常必要的階段,只有有效的計劃,才能確保軟體過程得到有效的改進。



  CBA評估方法對衡量軟體企業的能力成熟度是一個非常有效的手段,評估結果本身就是一個非常堅實的基礎,是制定軟體過程改進計劃的依據。CBA評估客觀地指出了企業軟體過程存在的問題,幫助企業發現軟體過程的不足之處,充分指出了軟體過程改進的前景
 


結束語



  因為軟體過程成熟度的升級本身就是一個過程,而且全面引進應用CMM所涉及的範圍非常廣,要求人力、財力與裝置資源的投入相當大。所以在實施CMM時,企業千萬不要一開始就把目標定位過高,不必一下子去滿足某一能力成熟度等級的所有目標。而要根據企業自身的情況,試行某些關鍵過程域的一部分關鍵實踐活動,逐步完善軟體過程和成熟度的升級。



  軟體企業在實施CMM的過程中,應當處理好CMM實施和認證的關係。實施是基礎,認證是結果。只有認真紮實的實施,才可能有認證的通過。由於我國大部分軟體企業距離CMM的認證有相當大的距離,最好先按照CMM嚴格的軟體工程方法,致力於改進企業的管理,提高軟體開發能力,而先不要搞軟體能力評鑑,追求認證、評級等。等到能力成熟後,再進行認證。這樣可以避免和杜絕華而不實、弄虛作假的現象。應該把實施CMM作為提高軟體企業管理水平和提高軟體質量的突破口,追求真正的軟體能力和水平的提高,而不是把單純的CMM軟體認證作為一個唯一的目標。

 

相關文章