對在中國軟件產業中應用 CMM的一些建議
現在,讓我們看看SW—CMM的如下三項用途:
1、用于軟件過程的改進。(SPI,Software Process Improvement)
幫助軟件企業對其軟件過程的改變進行計劃、發展以及實施。
2、用于軟件過程評估。(SPA,Software Process Assessment)
在評估中,一組經過 培訓的軟件專業人員確定出一個企業軟件過程的狀況,確定出該企業所面對的與軟件過程有關的最迫切的所有問題,以及取得企業一級對軟件 過程改進的支持。(這項是為了實施上一項而進行的。)
3、軟件能力評鑒。(SCE,Software Capabili Evaluation)
在能力評價中,一組經過培訓的專業人員鑒別出合格的軟件合同承包者;或者是檢查監視正用于軟件制作的軟件過程的狀況。
上述的第三項,“軟件能力評鑒”本來并不是 軟件工程研究所創造出SW—CMM時的用途目標之一。在SW—CMM用于幫助一些商業公司成功地改進他們的軟件過程之后,美國空軍電子系統指揮部要求軟件工程研究所開發出一個辦法來用于評鑒軟件合同承包者;因此,在軟件過程改進(SPI)這個用途之外,SW—CMM增加了軟件能力評鑒(SCE)這個新用途。
這里必須要注意區分“軟件過程評估”與“軟件能力評鑒”本質上的不同!斑^程評估”是企業內部在進行“軟件過程改進”時用于摸清目前情況和確定需改進的目標而進行的。而“能力評鑒”則由軟件合同的發出者用于鑒別和挑選出合格的合同承包者。很自然地,企業的有關人員會采取截然不同(。┑膽B度與對策去進行這兩種評審。我國軟件產業還很薄弱,沒有可能提供很多有能力的“能力評鑒員”去承擔這種挑戰性很強的“能力評鑒”工作。若企圖要一下子推行大量的“能力評鑒”活動,評鑒結果的可靠性必然低。
在CMM的“軟件過程評估”與“軟件能力評鑒”活動中,都會用到一份稱為“軟件過程成熟度提問單”的問卷。評審人員首先用這個問卷了解一個企業的軟件工程過程的基本情況,然后以此為根據作出如何進行一步的調查(對于“軟件能力評鑒”來說,是作進一步的“取證”),例如,與不同崗位的工作人員作面談,查閱文件,或抽檢實際過程中的數據資料記錄等。
然而,如果對這份“軟件過程成熟度提問單”作出如實的回答的話,我們就可以取得一個企業的軟件過程成熟度的輪廓;卮疬@份提問單,大約只須花一個小時,有興趣的同行們不仿試一試,來一個非正式的“軟件過程評估”。嘗試回答“軟件過程成熟度提問單”的一個更大的得益是,問卷以一種最自然的方法把你引入CMM的世界,消除了CMM的神秘感。你會想:“啊,大概就是這么一回事!
同行們,CMM只不過是我們手中可選用和可加以改造的一件工具,它并不是一只要來控制我們的怪物,讓我們發揮各自的聰明才智,充分地利用好它,并加以創新。(當然,如果我們自己不能很好地控制這件工具的話,如果使用的方法不正確的話,CMM確實可以變成一只要來控制我們的怪物。)
對于在中國軟件產業中應用CMM,筆者初步有如下建議:
a.專注于軟件工程過程改進(借助于“軟件過程評估”),除非需要,不要搞軟件能力評鑒,不要去追求什么“ 認證”,“評級”,“登記”與“注冊”。
b.軟件過程管理與改進的唯一目的是:按時,按預算地開發制造高質量的軟件產品。(質量的其中一點是:產品要適應市場的需要。若不能做到這個,一切都是徒勞。)
c.把CMM和其他的模型與 標準作為參考,而不是生搬硬套。運用自己的專業判斷力。
d.按照企業自身的特點、要求與條件去制訂軟件過程和選擇實行改進的部分。
e.軟件過程的建立與改進要有短、中、長期的目標,有緩急之分。不要一下子什么都想達到。不要一下子動大手術。不要作賭博式的全盤投入。在選擇先做什么的時候,可有兩方面的考慮:“最薄弱的環節”、“最易做到而又有顯著收效”。
f.千萬不要一開始就把目標定得過高。不必一下子去滿足某一能力成熟度等級的所有目標,可以試行某些關鍵過程領域的一部分關鍵實踐活動。要逐步取得經驗。
g.企業上層領導要首先理解建立軟件過程管理和改進的重要,并親自領導這件工作。要保證過程管理的人員配備。企業上層領導的持之以恒的參與是成功的先決條件。
h.專業開發人員要全力支持與參與過程管理和改進。
i.國家政府的政策制訂者要聽取對于“認證”的正反兩面的意見。不要以為可以簡單地用推行“認證”、“評級”的方法去提高軟件工業的能力。盡量只進行必要的、有限的“認證”與“評級”去選擇合同承包企業。并且,發出合同之后一定要進行工程監督。
j.國家在財政上協助企業進行軟件過程改進。比如,付給外部咨詢機構的費用可以考慮給予部分或全部抵稅等。
k.企業外的咨詢機構一定要對受咨詢企業的“過程評估”結果(商業機密)對外保密。只有這樣做,才能使企業在內部的“過程評估”中,坦誠地暴露軟件過程中存在的各種問題。從而制定出真正對癥下藥的過程改進的對策。
l.一個 企業或組織遠遠不能單憑一點點對SW—CMM的認識就作出是否“全面”引進應用SW—CMM的決定。那是一個非常重要的決定。全面引進應用SW—CMM所涉及的范圍非常廣,并且要求人力、財力與設備 資源的投入。企業必須在對SW—CMM及有關的一切知識有透徹的理解之后,才考慮是否全面引進應用SW—CMM和如何引進應用SW—CMM的問題。
[1] [2]