過程缺陷是主因
1995年,The Standish Group調查了全球352家軟件組織的8000多個軟件項目。調查結果表明:31%的項目在完成前被取消,浪費800多億美元;53%的項目消耗了189%的預估成本,只有16%的小企業、9%的大企業按時交付了軟件產品。
12年后,美國南加州大學的Barry Boehm教授對影響軟件項目成功的主要風險因素進行調查,總共調查67人,這些人有平均27年軟件企業軟件、硬件、系統的工作經驗。調查結果排出了影響軟件項目成功的前十大風險,無一不和過程有關。
上述問題的存在,也嚴重制約著我國軟件企業的國際競爭力的提升。同時,我國軟件企業改進軟件生產過程的效果并不理想?梢哉f,如果不解決過程的持續改進問題,我國的軟件企業很難真正走向世界。
如何邁向高級別CMMI
高級別的過程能力意味組織可以在數據的基礎上,定量控制所關注的過程屬性,在過程穩定的基礎上預測過程和過程產品的質量,并在統計管理的基礎上解決引起過程波動的偶然因素,進行持續的過程改進。高成熟度的過程,需要在統計控制理論的基礎上保證過程的穩定,并穩步提高過程的性能和能力。
目前在CMMI高級別的過程改進中,普遍存在以下誤區:
1.以為做了很多度量,并經過很多人的評審,就達到了高級別。高級別過程改進的關鍵是做了度量正確的事情,并用正確的技術分析來解釋這些度量的結果。所以我們必須等到有了足夠準確的數據,才能嘗試高級別的量化控制。
2.孤立量化的控制過程或者屬性,而且不能對控制目標和結果做出合理的解釋。度量或者量化控制都是管理的一種手段,而管理本身只是服務于組織的業務目標。所以,有些組織為度量而度量,為控制而控制。照本宣科地建立量化控制目標,一方面與組織的業務目標脫節,導致高層管理不能體會到過程改進的效果;另一方面使一些控制目標相互割裂孤立,不能形成有效的控制體系,無法對組織所關注的過程及其屬性進行合理、全面的解釋。
3.不能準確理解和建立過程性能模型。高成熟度級別的組織,由于關鍵過程已經穩定,所以可以在此基礎上,建立過程和其下游過程相關屬性的性能模型,以預測過程的下一步狀態,進行合理的調整和更加準確的過程控制。性能模型應在統計分析技術的支持下建立。故成熟度越高的組織,其過程的可預測性就越好。
由此可見,實現高級別的過程改進,主要包括以下幾個方面:
1.建立系統的過程數據庫。這就要求期望沖擊高級別過程改進的組織,必須認真做好CMMI3級的工作,建立組織內系統的過程數據庫和資產庫。我們有些已經實現CMMI3級的組織,過程數據散落在各個區域,缺乏通暢的渠道來支持數據的及時收集,導致數據的采信度低,度量分析也比較困難。
2.合理有效地建立過程性能基線,是實現高級別過程控制的重要基礎。主要步驟如下:(1)確定過程量化目標:根據組織的業務目標,建立過程改進的目標和量化控制的過程及其屬性目標。(2)選擇數據構造數據樣本:在目標確定后,收集活動執行的數據,構造數據樣本。(3)度量數據樣本,分析數據散布和波動的原因,改進并實時觀測,確定改進的有效性,逐步達到期望的過程性能和能力。(4)確定過程穩定是否達到,從已觀測分析的歷史數據中,分析過程的相關總體統計量,建立過程性能基線,統計過程控制過程的穩定。 [Page]
3.建立多層次、多維度的數據采集、分析和量化控制體系。CMMI4級的目的是統計控制過程的穩定,發現異常并及時糾正。所以當出現異常時,需要其下層和相關的數據支持。譬如項目數據異常時,我們需要分析其相關任務,甚至任務執行人的數據,才能發現真正的引發異常的原因。我們有很多的組織害怕異常,其原因一方面是對統計過程控制的意義缺乏正確的理解,另一方面就是沒有足夠的數據和正確的方法來分析異常的原因。事實上,雖然在統計控制原理中,異常是小概率事件,但對軟件過程而言,由于其本身不是一個大批量生產的過程,異常其實是不可避免的,而且有些異常并非表示過程一定向著壞的方向發展。
對于CMMI5級的組織,更需要足夠的相關數據,分析過程改進的機會,并在統計控制狀態下進行改進。
CMMI5絕非終點
實現CMMI高級別的過程改進,是軟件組織成熟的象征。但我們必須清醒地認識到,過程的改進必須一步一個腳印,循序漸進并且踏踏實實。否則,改進只是一紙證書,不可能給組織帶來真正的回報,即便一時在競標中獲勝,也會因“內亂”而得不到真正的利益。建立暢通、有效的組織過程數據庫,及時收集真實的項目和過程數據,并進行合理有效的度量分析,是高級別過程改進的基礎。否則,高成熟度只是空中樓閣。
對于軟件企業如何沖刺CMMI5級問題,筆者以為,沖刺意味著接近終點,CMMI5級絕非意味著過程改進的終點,而恰恰是組織可以在統計控制狀態下,開始持續的過程改進。所以,希望本文可以對有意進行高級別改進的組織起到一點幫助。
不要曲解CMMI的本意
最近幾年來軟件外包在我國持續升溫,全國很多軟件園都以軟件外包為主題,很多軟件企業也把外包作為企業的主要利潤增長點。
CMMI認證被認為是進入軟件外包市場的敲門磚。為了拿到那張代表資格的CMMI證書,不少軟件生產企業不惜數百萬元的巨額投入。CMMI認證熱潮可謂此起彼伏。這些企業把CMMI認證當作提升實力和走向世界的通行證。
但與CMMI認證熱潮相對的是,有些軟件企業的生產過程并沒有得到真正改進。認證通過后,認證文檔沒有人看,CMMI模型對過程的要求沒有人遵守,工期依然拖后,軟件產品的質量問題仍然很嚴重。
這些企業都曲解了CMMI模型的本意。制定CMMI的根本目的是為了改進軟件的生產過程,從而整體上提高組織的生產質量和效率。它不是軟件企業走向世界的通行證,也不是企業實力的象征。如果企業不是以過程改進為目的進行CMMI認證,而把獲得CMMI證書當作其終極目的,那么企業除了不能從根本上提升自身實力之外,還可能會因此誤入歧途。 正如軟件專家、UML之父Ivar Jacobson博士在訪華期間提醒中國軟件企業時所說:“要謹防CMMI陷阱。如果采用不良的軟件過程,通過CMMI的級別越高,軟件企業生產不合格軟件的過程越有效率,而不是使企業開發出更好的軟件!
延伸閱讀
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/