ISO9000和CMM:誰更適合軟件開發管理?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
目前,許多軟件企業在開發管理上存在的問題是沒有統一的規范標準,質量把控也不夠理想。因此,許多企業的軟件開發項目都要求承包商有一定的cmm級別或iso9000認證作為參加投標的資格。在上周,我參加了一個華南地區的軟件行業會議,會議主題是關于如何做好軟件開發的質量管理。在會議上大家掀起了一股討論的熱潮,就是在軟件開發中是選擇cmm體系還是iso9000質量體系?
什么是cmm和iso質量管理體系? (1)什么是軟件過程質量管理? 在研討會上,許多與會者一致的都認為目前我國軟件企業遇到的最大困難既不是來自國家有關的產業政策,也不是來自市場的競爭,而是來自企業內部管理的不完善和不協調,有相當一部分軟件企業的質量管理環節是相當的薄弱。因此,軟件企業的當務之急應該是苦練內功,通過加強質量管理工作來規范企業內部行為。而要想高效率、高質量和低成本的開發軟件,必須要改善軟件生產過程這一核心問題。 軟件過程是指軟件生存周期所涉及的一系列相關過程。軟件過程是研究如何將人員、技術和工具等組織起來,通過有效的管理手段,提高軟件的生產效率和保證軟件的產品質量。軟件過程成熟是指一個特定軟件過程被明確和有效地定義、管理、測量和控制的程度。由此誕生了軟件過程的兩個主要流派:美國軟件工程研究所(sei)開發的cmm軟件成熟度模型和國際標準化組織(iso)開發的iso9000標準系列。它們兩者都共同著眼于質量和過程管理,兩者都為了解決同樣的問題。但是它們的基礎是不同的:iso9000標準是確定一個質量體系的最少需求,而cmm模型強調持續過程改進。當然,這種觀點有一定的主觀性,因為一些國際標準團體認為如果深入地解讀iso9000,而不只是停留在表面的話,iso9000也是為了解決持續過程改進的問題。 (2)什么是cmm軟件成熟度模型? cmm(capability maturity model)是能力成熟度模型的縮寫。cmm描述了一個有效的軟件過程中的關鍵要素,討論了不成熟的軟件機構發展成為有規律的、成熟的軟件機構的改進過程。cmm涉及對軟件開發規劃、軟件過程工程化和對軟件過程管理的實踐活動。通過這些實踐活動,以提高軟件機構滿足成本、進度、功能和質量要求的能力。cmm的核心是把軟件開發視為一個過程,并根據這一原則對軟件開發和維護進行過程監控和研究,以使其更加科學化、標準化。 cmm可分為五個等級:一級為初始級,二級為可重復級,三級為已定義級,四級為已管理級,五級為優化級。其中任何軟件企業都可以認為是成熟度級別為一級的組織。換句話說,一級的企業在軟件過程中是有很多問題,但隨著成熟度級別的升高,企業軟件過程的能力也會越來越強。目前,cmm模式已被公認為是當前最好的軟件過程管理模式,它已成為業界事實上的軟件過程的工業標準。但是需要提醒的是,并不是實施了cmm,軟件項目的質量就一定有了保障。因為按照cmm思想進行管理與通過cmm認證并不能劃上等號。 (3)什么iso9000質量體系? 自從1987年iso國際標準化組織公布iso9000標準以來,iso 9000標準已經成為全球最有影響力的質量管理和質量保證標準。iso9000標準是建立在"所有工作都是通過過程來完成的"這樣一個認識基礎之上。在iso 9000標準中,與軟件企業關系最密切的是《iso 9001 質量體系-設計、開發、生產、安裝和服務的質量保證模式》和《iso 9000-3 質量管理和質量保證標準第三部分:iso 9001在計算機軟件開發、供應、安裝和維護中的指南》。還有如iso9004-2是指導軟件維護和服務的質量系統標準,它是指導和支持軟件產品的維護。而iso9004-4則是近年公布的很有用的附加標準,是用于改善軟件質量的質量管理系統文件。 iso 9000-3作為軟件企業實施iso 9001的指南,其主要思想是:軟件的開發和維護有著一系列的任務。這些任務的順利完成是需要各級管理層和開發人員的共同配合和一致協調的。需要指出的是,iso 9000-3對軟件企業的軟件開發和維護活動起到的只是指導性和建議性的作用,不帶有強制性。因此,一個軟件企業在貫徹和執行iso 9000-3的過程中,應該根據企業自身的基礎和現狀,有針對性地開展軟件質量管理和質量保障活動。此外,iso/iec還制訂了《信息技術-軟件生存周期過程》,全面系統地描述了軟件生存周期過程,是iso 9000-3實施指南的進一步擴展。 iso9000和cmm,誰更適合軟件開發? iso9000 和 cmm 是國際上通用的軟件質量評估和管理方法。二者有很多相似之處,它們的實施都可以改變軟件開發的不規范、文檔不齊、維護跟不上、質量漏洞多等弊病。因此,盡管iso9000標準的一些要求在cmm中不存在,而cmm的一些要求在iso9000標準中也不存在,但兩者之間都受到類似的關系驅動,有著相似之處。它們的核心思想都涉及質量管理和過程管理。因此,往往會產生這樣的問題:iso9000和cmm,誰更適合軟件開發? (1)兩者相通的聯系 兩者最大的相似點是都強調規范化和文檔化的過程管理。在基本原理方面,iso9000和cmm都十分關注軟件產品質量和過程改進。尤其是iso 9000:2000版標準增加持續改進、質量目標的量化等方面的要求后,在基本思路上和cmm更加接近。 它們的共同點都是認為:過程管理的核心是使過程狀態可見并使過程可控。也就是說:如果組織還沒有一個規范化的開發過程,則首要任務是對當前的開發過程進行分析、整理并文檔化,制定出一個符合本組織實際開發過程的規范,并從制度上確保開發過程規范的執行。如果已經具備了相對規范的開發過程,則需要對這個開發過程的規范表現進行持續的評估,找出問題,然后進行補充修訂。這就是我們通常所說的持續改進。 (2)cmm和iso有什么區別? 一般來說,iso9001會被認為是適用于所有領域的一種質量保證模式。針對質量管理而言,iso可以看作是一個濃縮的管理學框架。它是一個大而全的系統,幾乎覆蓋了公司管理的各個方面。它對于一個尚無完整質量管理體系和規范的公司來說,是一個很好的快速建立公司系統化管理框架的參照體系。通過這個體系的建立,可把公司的各個部門的業務流程、接口關系、人員崗位、部門職能界定及各種公司管理制度有機的整合起來。 而cmm 主要是對軟件開發實踐所涉及的整個開發流程的規定和分析,它的體系既包括軟件工程過程本身,也包括對這一過程的管理。它更多的是提示組織所處于各個成熟度等級的階段目標,以及為了達到這些特定的階段目標而需要的具體活動。對于一個具有一定管理基礎的組織,引入 cmm會對其持續提高過程能力、持續改進過程質量將起到極大的推動作用。 cmm與iso9000的區別主要有以下幾點:①iso9000的通用性太強,針對性太弱。iso9000適用范圍是所有設計\制造\開發及服務的行業,對軟件質量管理體系的要求是很低的,通過iso9000認證的企業只相當于cmm的2級或3級,而且要求不是很具體。②cmm是專門針對軟件開發及服務的。它提出的是對軟件開發過程改善的全程指導。它的每一級對所要實現的關鍵過程都有詳細的要求,關鍵實現的說明就有500頁之多,這對于推動軟件企業自身質量管理素質是非常有利的。③cmm強調軟件開發過程的成熟度,即不斷改進和提高開發過程,而iso9000僅是描述了可接受的最低標準。就軟件過程來說,cmm3級的覆蓋范圍是要大于iso9000的覆蓋范圍。④iso認證過程只有兩種結果:要么通過認證,要么不通過認證。cmm則給出一個過程改善的框架,它將成熟度分為五個級別。 簡單的說,不同點在于cmm是把焦點嚴格對準軟件開發,iso9000則是包括硬件、軟件、流程性材料和服務。一個是軟件行業"專用"的,另一個則是"泛用"的。因此,盡管兩者在涉及質量管理和軟件過程中有著相似之處,但也存在很大差別。 選擇兩種質量體系的策略和建議 就軟件企業來說,兩者在質量管理指導原則上的要求是差不多的。只是實現和表述上是不同的,但不能籠統的說誰比誰好。因此,對于軟件過程改進應該是基于cmm模型還是iso9001呢?明智的回答是應該同時考慮兩者,雖然兩者有很大程度的重疊。那么,到底是先選擇cmm還是iso呢?從筆者的實踐經驗來看,應從以下幾個方面進行考慮: (1)從軟件企業的業務特點考慮 一般來說,iso9000是全面規范企業的質量管理,而解決軟件過程問題則是cmm模型有很好的優勢。也就是說:如果企業只希望提高自己在項目管理、開發活動或者過程管理等方面中的某些能力,那么就可以應用cmm方法來增強自己的過程控制能力。而如果軟件企業希望全面提高質量管理,那么就可以先選擇iso9000。所以,當企業的規模不是很大,業務又主要集中在軟件開發為主的話,應是cmm比較適用。但如果企業的規模比較大,并且業務不僅僅集中在軟件開發,還包括硬件開發、硬件代理(采購)和其它服務,則可以考慮先實施iso9000體系。 (2)軟件企業對質量過程改進的熟悉程度 這一點的考慮主要是因為很多軟件企業長期以來形成的管理陋習和企業文化與cmm制度化的管理理念會存在一些相沖突的地方。因此,在打破舊體制建立新體制時就必然會帶來軟件企業的陣痛。此外,由于cmm是強調逐步改進,而非突變,故很難在短時間內看到顯著 的效果,這樣直接實施cmm的話會打擊大家對cmm的信心。因此,可以借助iso9000質量體系先建立規范化的軟件過程,熟悉質量管理內容和建立質量管理體系。也就是說,如果過去沒有接觸過類似的規范化質量管理,那么最好先從iso9000開始,首先建立持續過程改進的思想。因為iso9000的要求比cmm要稍低一些,可以適當的降低實施難度。如果企業已經實施過iso9000了,并且取得了較好的效果,這時再考慮實施cmm就會順利得多了。 (3)軟件企業對開發過程改進的預算 不論怎樣,幾乎可以肯定地說實施cmm的費用肯定要比實施iso9000的高出一些。據有關方面的統計,通過cmm4級以上的直接和間接的投入會是超過百萬元級的。因此,如果企業的預算不多的話,我們立足于"少花錢、多辦事"的原則,可以先采用iso9000的實施和評估方法,先建立規范化的質量控制過程。這樣不但經濟很多,而且效果還不錯。在預算充足的時候,再上cmm就也會事半功倍了。通常來說,單純比較軟件過程的話cmm的價值會更大些。但總的來說cmm和iso沒有孰輕孰重之分,而是可以互相結合的。例如,iso的質量目標是非常好的思想,cmm管控軟件開發過程則相對比較細致。 總之,單純實施cmm,永遠不能真正做到能力成熟度的升級,只有將實施cmm與實施iso9000有機地結合起來,才能發揮最大的效力。因此,我傾向于一個公司先基于iso9000建立起質量管理體系框架,培養質量意識。然后,在此基礎上再選擇若干開發過程進行重點監控,以逐步達到cmm成熟度等級的要求。 該文章在 2010/7/25 2:11:47 編輯過 |
關鍵字查詢
相關文章
正在查詢... |