在質量三角形(圖1)中,技術當然是非常重要的,技術和人這兩個因素是影響產品質量的先決條件,而過程是影響產品質量的第三個重要因素。在我國軟件業的發展過程中,隨著產品規模和團隊規模的增大,以及技術的成熟化,過程瓶頸越來越突出。有人說,“缺乏規范的過程正是國內軟件組織的軟肋”。國內軟件業最缺的正是管理,而CMMI恰好可以補上我們的不足。

1 CMMI模型的概念及其基本思想
CMMI是英文Capacity Maturity Model Integration的簡稱,即能力成熟度集成模型。CMMI是一套融合多學科的、可擴充的產品集合,CMMI-SE/SW (Capability Maturity Model Integration for Systems Engineering and Software Engineering,CMMI-SE/SW)是系統工程和軟件工程能力模型集成,在該模型中,對于系統工程和軟件開發過程中需求的建立、項目計劃的制定和實施,以及對軟件的測試等過程都有詳盡的描述。CMMI的思想來源于已有多年歷史的產品質量管理和全面質量管理,該模型中融合了全面質量管理的思想,以不斷進化的層次反映了軟件過程定量控制中項目管理和項目工程的基本原則。其基本思想是:通過不斷地對企業的工程過程的基礎結構和實踐進行管理和改進、控制,解決企業軟件生產中所出現的問題,增強研制開發能力,保證按計劃、保質保量地制造出高品質的產品。
CMMI的一個重要價值在于它把眾多的common sense整合成完整的知識體系,CMMI中貫穿著抓主要矛盾的哲學思想,它與ISO9000的一大不同就是它的分級思想,它承認資源總是相對不足的,問題不可能一下子全解決,要分幾步(等級)走,每一步解決一些關鍵問題(KPA)。再比如它先做管理后做工程的思想,用Humphrey的原話來解釋:\"看起來,定義和實施一個工程過程似乎要比定義和實施管理過程容易(特別是在技術人員的眼中),但是如果沒有管理過程的規定,工程過程很可能會成為進度和成本等壓力的犧牲品\"。所以在CMMI L2里面全部是項目管理的過程,而產品工程則放到了L3。CMMI作為美國SEI眾多專家多年研究的結晶,其中的豐富內涵有待于我們在學習和實踐的過程中不斷認識,逐步理解。
2 我國軟件組織實施CMMI過程改進的發展現狀
從美國軟件產業的發展過程可以看出,軟件產業的發展可以分為三個階段:結構化生產方式、以過程為中心的生產方式和工業化生產方式。
我國軟件組織正在由結構化生產方式向以過程為中心的生產方式和工業化生產方式前進。為了跟上國際競爭的步伐,目前已有很多企業(不論是國營或者民營公司)認識到要按CMMI改進軟件過程,實施科學化、系統化的管理,以提高組織的軟件過程能力成熟度,這表明,我國軟件企業已經具備了改善自我的強大動力。但是,我國軟件企業在進行過程改進的道路上仍然存在很多問題,主要表現在以下幾個方面:
a)一些組織想通過ISO9000和CMMI提高能力成熟度,但是他們不熟悉CMMI的概念,也不知道CMMI和ISO9000之間究竟有哪些區別;
b)大部分軟件組織在軟件工程理論和實踐兩方面都比較薄弱,雖建立了軟件過程,但過程階段不明顯,軟件生產無序,對進度、預算、質量的預測和控制不得力,常常在遇到問題時就放棄原定計劃;重視編程與測試,卻忽略需求分析和構架設計;
c)高層管理者對軟件管理尚未引起足夠的重視,沒有配備足夠的資源或合格的人員承擔過程改進工作;
d)缺少文檔化的過程描述,特別是缺少工作文檔(如過程中的變更請求報告)、工作量統計文檔(如時間和工作量統計表,周狀態報告)和風險管理文檔(如風險估計報告、風險評測報告);
e)缺乏對過程和產品進行度量,軟件過程積累的歷史數據很少,因此很難基于歷史數據對工作量和進度進行合理的估計。
3 對我國軟件企業實施CMMI過程改進的幾點建議
軟件過程改進是一種含有大量管理成分的工作技術,它主要包括以下三個關鍵步驟:a) 對比目前的狀態和期望達到的狀態,找出存在的差距;b) 確定要改變哪一些差距,要改變到什么程度;c) 制定相應的具體的實施計劃,其中的“具體”是指:①要有明確的,可以檢驗的目標;②要定出檢驗成功與否的標準;③要有具體的實施辦法;④指定具體執行計劃的人,并明確具體的職責與任務;⑤要明確執行計劃的主要領導或協調者,以負責解決在計劃執行中出現的問題;⑥要列出“實施計劃”所應用的新技術與新工具以及如何獲得這些新技術與新工具。
為了幫助軟件企業更好地推進CMMI過程改進工作,切實提高軟件過程管理能力,結合本人參與的過程改進實踐,給出如下建議:
3.1 建立合理的組織機構,配備必要的資源
建立合理的組織機構是做好過程改進工作的有力保障。高層管理者應該把更多的注意力放在過程改進上,為其配備必要的資源,設立一支有相當規模的專職的過程改進隊伍,在投資上應達到足夠的力度。
這支改進隊伍,負責研究軟件工程理論和軟件過程改進方法,制定和實施過程改進計劃,他們是實現企業過程改進活動的具體組織者。在執行計劃的過程中,通過檢查它的遵從性,在遇到計劃偏離時,仔細研究造成偏離的原因,并采取相應的糾正行動,他們是企業進行定期過程診斷的內部評估師和企業過程改進活動的監控者。
3.2 轉變觀念和工作習慣
過程改進是思想觀念和工作方式的改變,是企業文化的轉變,它涉及到企業中絕大部分工作人員。CMMI不是個別人的事,組織中每個人都應不同程度的參與,每個人都要想想我應該盡到什么職責,要“調整心態,從我做起”。
對于高層管理者來說,首先需要正確認識CMMI實施帶來的額外工作量,CMMI實施最直接的后果就是帶來了很多的事務性管理工作,這要求設立一些專職的角色,如SQA、SCM,或者配備適當的工具,把相應的工作量從項目經理的身上分離出來,否則,一旦技術和管理展開競爭,犧牲的肯定是管理;其次,高層管理者有必要改變自己的管理習慣,原來很多事都口頭裁決,現在需要先看有沒有規范,如果有,就遵循規范,規范是文檔化的組織意志;第三,實施CMMI體系就是要打破舊平衡,建立新平衡。在這個過程中,管理體系會相對混亂,對正在運行的項目會產生一定的影響,甚至于在個別企業中,出現技術人員由于適應不了新的工作方式而離職的例子,這些情況,高層管理者都應該有心理準備,對CMMI抱有堅定的信心。
對于項目經理來說,要改變技術本位主義思想。國內的項目經理,大多是技術出身,沒有接受過系統的管理知識,心態多是技術帶頭人而已。CMMI本質就是要解決管理問題,所以對項目經理來說,實施CMMI就是要從技術上分出一部分時間來做管理,項目經理必須主動調整心態以適應新的情況。另外,項目經理還是溝通項目層和管理層的橋梁,對于CMMI的貫徹起著承上啟下的關鍵作用。貫徹CMMI不可能奢望全體人員一致擁護,但是項目經理的積極參與卻是必要的。CMMI實施的內部驅動力有兩個:高層經理和項目經理。高層經理通過資源和政策驅動,項目經理以實際問題驅動。項目經理要做過程改進的“明白人”,認識到過程改進工作正是為項目服務的,而不單單是被動的服從高層經理的安排和質量經理的規劃。
對于質量管理人員來說,要增強服務意識。質量部門是主要的制度制定者,但這并不意味著質量管理人員就應該高高在上。一線開發者是為用戶服務的,而職能管理部門又是為一線服務。服務意識的增強體現在深入了解項目經理對過程改進的需求,根據實際需要驅動質量工作重點,爭取在局部先有所突破。質量宣傳要密切接觸一線人員,采取多種靈活方式,多了解反饋,這可能比會議形式的宣貫更有效。過程改進需要不斷地成功來推動后續的改進。
對于開發測試人員來說,主要是改變以自我習慣為中心的做事方式,養成遵循過程規范的工作習慣。只有大家關注過程規范,它才有可能得到不斷優化和成熟,要避免“兩張皮”。開發人員還需要通過自身努力,借鑒PSP的方法提升個體軟件能力,這是個自我工程,須以個人的上進心為動力。
3.3 加強培訓,提高過程改進技能
實施CMMI過程改進需要建立相當規模的過程改進隊伍,但提高這支隊伍的質量卻比它的數量更重要。要認識到只有高素質的人員,執行成熟的良好過程,才能生產出好的產品。因此,應普遍開展CMMI模型及軟件工程基礎的培訓,使每個崗位的人員都具備過程改進的意識,并掌握必要的過程改進知識和技能。
3.4 加強度量,積累有效數據
度量數據是進行過程改進的基礎,要重視過程與產品的度量工作。在項目的整個開發過程中,特別是在里程碑處,要收集過程的執行數據,記錄活動狀態,既為當前項目的測量和分析提供數據,又可作為歷史數據保留下來為今后的項目提供參考。這些數據主要包括:軟件規模、工作量、成本和進度的估計數據和實際數據、產品質量度量數據、需求變化情況以及風險分析數據等等。
3.5 加強配置管理,重視輔助工具的開發
應加強軟件配置管理及配置管理工具的開發。配置管理最主要的目的是在項目的整個軟件生命周期中建立和維護軟件項目產品的完整性,系統地控制對配置項的改變,并管理組織的軟件工程資產。配置管理的內容繁多,權限管理復雜,開發或采購合適的配置管理工具是非常必要的。
4 結束語
過程改進是為了建立一個有利于研制開發最好的軟件和成為最好的軟件組織的、優秀的企業文化,以此來幫助企業通過不斷的過程改進,實現企業目標,獲得最大的經濟效益。
我國軟件產業方興未艾,實施CMMI可以在起跑線上改變我國的軟件工程文化,改善軟件人員的素質,不僅對我國的經濟具有重要意義,也是提高軟件企業素質,增強軟件企業的國際競爭力的必要前提,而且還為軟件的出口創匯創造了條件。
CMMI是一個較好的過程改善框架,但CMMI只給出做什么,并沒有給出如何做,因此要認真研究如何遵循CMMI模型進行具體操作的問題。對于CMMI,前期要“打破神秘,從頭學起”,后期要“調整心態,從我做起”。前期重在學,深入學有利于打破神秘,盡快結束爭論和觀望;后期鼓勵做,要調整心態,改變習慣,從自身開始,方可獲得成功。