蔣惠忠
摘要:CMMI是全球權(quán)威的軟件能力成熟度模型,在中國方興未艾。本文針對我國中小型軟件企業(yè)的特點,結(jié)合筆者自身在CMMI3的啟動、實施與持續(xù)改進工作中多年的探索研究和積累,試圖提出一套快速有效的CMMI3實施方案,希望能夠幫助那些準(zhǔn)備或正在實施CMMI3以期降低成本、提升管理水平的企業(yè),盡快達成目標(biāo)。
Abstract: CMMI is a global authority of software capability maturity model, which is not widely used in China. The thesis describes the characteristics of the small and medium software enterprises, combined with the author's own start in the CMMI3, implementation and continuous improvement work and the accumulation of many years of exploration and research to try to make a rapid and effective CMMI3 implementation of the program, hoping to help those who are ready or are in the CMMI3 implementation with a view to reduce costs, enhance the management level of enterprises, as soon as possible achieve their goals.
關(guān)鍵詞:CMMI;軟件企業(yè);快速實施
Key words: CMMI; software enterprises; rapid implementation
中圖分類號:TP31 文獻標(biāo)識碼:A文章編號:1006-4311(2010)04-0025-03
0引言
CMMI(Capability Maturity Model Integration),即能力成熟度模型集成。該模型起源于美國,并在美國和印度等國家得到了比較成功的運用,進而后來被逐步推廣到全球范圍內(nèi)的一些國家和地區(qū)。
有關(guān)資料顯示,在CMMI引入中國的這些年來,CMMI對于大型軟件企業(yè)的幫助作用比較明顯,在企業(yè)軟件開發(fā)管理規(guī)范、軟件質(zhì)量、市場競爭力等方面起到了一定的促進作用。與此同時,CMMI在不少中小型軟件企業(yè)中應(yīng)用的效果卻不甚理想。
本文中,筆者將就結(jié)合自己在工作中的實踐與研究,試圖就中小型軟件企業(yè)如何快速有效實施CMMI3提出一個完整的構(gòu)想。
1中小型軟件企業(yè)與CMMI
美國在改進軟件過程方面進行了幾十年的研究,位于匹茲堡的軟件工程研究所于1997年提出了能力成熟度模型(CMM:Capability Maturity Model),現(xiàn)進一步發(fā)展成為能力成熟度模型集成(CMMI:Capability Maturity Model Integration)。CMMI基于逐步改進的管理思想,通過提煉業(yè)界的最佳實踐形成體系,以大量的開發(fā)管理實踐為基礎(chǔ),具有強大的生命力和適應(yīng)能力。
根據(jù)不同的軟件開發(fā)過程能力,CMMI定義了5個成熟度級別,分別是:初始級、可重復(fù)級、已定義級、已管理級、優(yōu)化級。
1.1 CMMI引入中小型軟件開發(fā)企業(yè)的背景
CMMI在大型軟件企業(yè)中的成功運用,讓業(yè)界看到了CMMI在軟件企業(yè)規(guī)范化發(fā)展中的促進作用。因此,國家相關(guān)部門和相關(guān)協(xié)會制定了相應(yīng)的政策,倡導(dǎo)和鼓勵軟件企業(yè)引入CMMI。同時,在信息化建設(shè)項目的一些招投標(biāo)中,也將軟件企業(yè)是否具有CMMI資質(zhì)視為其企業(yè)軟件產(chǎn)品高質(zhì)量的標(biāo)準(zhǔn)之一。
眾多的中小型軟件企業(yè)也認(rèn)識到,由于軟件行業(yè)本身的市場競爭因素導(dǎo)致其生存壓力進一步加大,為此,要想企業(yè)做大做強,就必須要走規(guī)范化發(fā)展的道路,來提高產(chǎn)品質(zhì)量、提升競爭力,以應(yīng)對來自各方面的市場壓力。在國家相關(guān)部門和協(xié)會的政策指引與支持下,中小型軟件企業(yè)也進入了CMMI認(rèn)證的行列。
1.2 CMMI引入中小型軟件企業(yè)后的現(xiàn)狀
國內(nèi)中小型軟件企業(yè)特點及存在的問題
國內(nèi)的中小型軟件企業(yè),大體都有這些特點:①企業(yè)規(guī)模小,人員流動性大;②企業(yè)員工以技術(shù)開發(fā)人員為主,兼顧管理,缺乏有經(jīng)驗的專門管理人員;③質(zhì)量意識不濃,只注重產(chǎn)品功能,不注重產(chǎn)品質(zhì)量和維護;④沒有一套行之有效的開發(fā)規(guī)范;⑤產(chǎn)品及過程的可重用性差。
正是因為有上述這些特點,所以在中小型軟件企業(yè)中,也普通存在這些問題:①分工不合理,工作效率低;②項目的成功依賴特定人才,當(dāng)主要成員退出項目后,將導(dǎo)致項目的延期超時,甚至失敗;③項目難以監(jiān)控與管理,許多措施都是在項目開發(fā)過程中臨時采取。
中小型軟件企業(yè)實施CMMI后仍然面臨困境
在數(shù)量龐大的國內(nèi)中小型軟件企業(yè)中,對于那些準(zhǔn)備開展CMMI3認(rèn)證的企業(yè),由于沒有起碼的軟件開發(fā)和項目管理基礎(chǔ),完全靠自身的摸索去改進時困難重重,只能把通過認(rèn)證、提高軟件質(zhì)量、提升企業(yè)競爭力的所有希望都寄托在認(rèn)證咨詢機構(gòu)身上,陡然增加了認(rèn)證工作的實施風(fēng)險;對于正在開展CMMI3認(rèn)證工作的企業(yè),深感按CMMI3的要求建立企業(yè)的軟件開發(fā)、項目管理體系是個痛苦的、折磨人的過程,并且效果差強人意;對于已經(jīng)通過CMMI3評估的單位,卻普遍面臨著這樣的難題:如何使得CMMI標(biāo)準(zhǔn)真正與其內(nèi)部日常運作和軟件項目開發(fā)過程融為一體,使得軟件開發(fā)過程的能力有所提升,并讓企業(yè)決策層、管理層和執(zhí)行層切身感受到實施CMMI所帶來的工作績效的提升,從而更好地支持和推動持續(xù)改進。
然而實際的情況是:企業(yè)在通過了CMMI的評估后,企業(yè)高層管理者無法通過有效的渠道看到CMMI所帶來的支撐作用,抑或是作用太小得不到高層重視。此外,企業(yè)由于找不到一個繼續(xù)推行CMMI的好方法,從而使得CMMI在企業(yè)中的運用處于半停止或完全停止的狀態(tài)。
1.3 癥結(jié)分析
為什么大企業(yè)在實施CMMI后能取得良好的效果,而在中小企業(yè)就顯得有些力不從心呢?分析總結(jié)起來,造成上述現(xiàn)象的原因,是如何將CMMI標(biāo)準(zhǔn)結(jié)合企業(yè)實際,并真正實現(xiàn)本地化運作存在較大的困難,突出表現(xiàn)在以下兩方面:
一方面,在實施初期根據(jù)認(rèn)證咨詢機構(gòu)提供的一套通用的實施方案,稍作裁剪將其運用到具體的項目管理中。但是由于企業(yè)內(nèi)部缺乏CMMI專業(yè)人才或者CMMI專業(yè)人才沒有參與企業(yè)軟件開發(fā)管理的日常工作,實施方案即使是在做了相應(yīng)的裁剪優(yōu)化后,也難以與企業(yè)實際工作有機結(jié)合,導(dǎo)致實施成本過高,實施過程變得艱辛痛苦。另一方面,缺少企業(yè)高層管理者可以多維度掌握公司項目信息、以及CMMI與企業(yè)實際情況相結(jié)合的一個載體。日常的項目管理中,企業(yè)高層僅僅通過一些簡單的報表、報告來了解項目的情況,無法從全局角度來掌握項目的績效信息,以致于企業(yè)領(lǐng)導(dǎo)無法直接感受到CMMI實施所帶來的效果或者感受到的效果不明顯,從而得不到高層的支持。
有沒有一個有效的辦法來盡早改善這種局面呢?
2快速有效實施CMMI的構(gòu)想
若要使CMMI的實施真正給企業(yè)帶來良好的促進作用,就必須使企業(yè)日常的項目管理過程與CMMI的實施融合在一起,從而找到一個結(jié)合點做為載體。
在這個載體中,運用軟件工程的方法論與項目管理的成熟模型,使得軟件產(chǎn)品的生命周期、軟件開發(fā)和項目管理的過程,與CMMI的過程域有機結(jié)合,從而更有效地推進CMMI的實施工作。
CMMI過程域與項目管理過程全方位覆蓋:
我們暫將這個載體稱之為項目管理系統(tǒng)。通過研究和設(shè)計,我們可以發(fā)現(xiàn)項目開發(fā)管理各過程和CMMI的過程域是可以相互對應(yīng)的。拿CMMI3為例,如下圖所示:
①計劃管理。計劃管理包含日常工作中的所有計劃,涵蓋了CMMI中的項目策劃(PP:Project Plan)過程域。項目計劃(PP)作為CMMI2級就要求的一個關(guān)鍵過程域,貫穿了整個項目,是實施項目管理的基礎(chǔ)。PP過程域包含了3個特定目標(biāo)(SG:Specific Goal):建立估算、開發(fā)項目計劃、獲得對計劃的承諾。
計劃管理一個重要的組成部分就是項目計劃管理,通過類似微軟Project產(chǎn)品的項目計劃編制功能、任務(wù)接收人員的任務(wù)承諾功能以及任務(wù)審核功能,實現(xiàn)了PP過程域的所有特定目標(biāo)。
當(dāng)一個團隊接收到一個總?cè)蝿?wù)時,負責(zé)人必須將任務(wù)進行細化,分解到單人可執(zhí)行的粒度,這個過程就體現(xiàn)了“開發(fā)項目計劃”的目標(biāo);在任務(wù)下達人員執(zhí)行時,需要對任務(wù)的完成時間進行估計,規(guī)定任務(wù)完成期限,這體現(xiàn)的就是“建立估算”目標(biāo);任務(wù)下達了,還需要任務(wù)執(zhí)行人的反饋,得到人員對任務(wù)的承諾。當(dāng)任務(wù)完成時,任務(wù)執(zhí)行人將任務(wù)提交給負責(zé)人,由負責(zé)人審核任務(wù),完成任務(wù)的驗證。
這些基礎(chǔ)數(shù)據(jù)為改進提供了參考依據(jù),通過對歷史項目詳細計劃的查詢總結(jié),可以分析項目計劃分解等方面的不合理性與可改進處,了解項目計劃的開發(fā)能力,進而提高項目開發(fā)管理水平。另一方面通過歷史數(shù)據(jù)的統(tǒng)計參考,再適時采用Delphi、Pert等方法可以更精確地估算出類似任務(wù)和項目需要的工作量和成本,逐步提高估算的精確度。
在項目監(jiān)控過程中,當(dāng)項目計劃和實際情況發(fā)生偏離時,可以變更調(diào)整計劃,重新估算時間,更可以把糾正計劃納入到項目計劃中,形成統(tǒng)一的管理。如:通過統(tǒng)計某個員工所有分配任務(wù)的變更情況,來了解這個員工的計劃能力、統(tǒng)籌能力等。通過一個員工所有接收任務(wù)的估計工時和實際工時的對比,可以了解這個員工的工作效率:如果大部分任務(wù)實際工時遠大于估計工時,有可能這個員工的工作效率就比較低。
②日志管理。日志管理主要采集人員的日常工作情況,累積企業(yè)成果,形成企業(yè)知識庫。
工作日志是對計劃實際執(zhí)行情況的記錄,是對實際工作情況的反映和真實數(shù)據(jù)的累積。每個人員一般每天對每個執(zhí)行的任務(wù)需要記錄一次日志,日志主要信息包括工作的內(nèi)容、工時、起止時間等,同時,增加了諸如“工作類型”等指標(biāo),方便以后的分類統(tǒng)計分析。
工作計劃和日志,奠定了監(jiān)督活動、溝通狀態(tài)和采取糾正措施的基礎(chǔ)。通過對照工作計劃和工作日志,可以監(jiān)督項目的實際性能和進展;通過計劃與日志的查詢,項目成員能更準(zhǔn)確的回顧和總結(jié)個人工作,增強和領(lǐng)導(dǎo)的溝通渠道;領(lǐng)導(dǎo)也可以清楚地了解項目任務(wù)承諾和執(zhí)行情況、預(yù)測并預(yù)防風(fēng)險;當(dāng)計劃和實際進展發(fā)生嚴(yán)重偏離時提供分析偏離問題原因的依據(jù);同時也可以隨時掌握員工動態(tài),了解員工性格、習(xí)慣、興趣等,發(fā)現(xiàn)并分析員工潛力,有利于企業(yè)的人才培養(yǎng)和人力資源管理。
日志也是度量分析(MA:Measurement and Analysis)非常重要的一個數(shù)據(jù)來源,是度量分析主要的統(tǒng)計數(shù)據(jù)。在日志中增加了諸如“工作類型”等指標(biāo),通過對這些指標(biāo)數(shù)據(jù)的統(tǒng)計和分析,可以建立多維度的度量視圖,多方面體現(xiàn)企業(yè)各方面的能力和水平。
如:通過統(tǒng)計可以建立階段進度工作量表,可以比對總體進度實際與計劃的偏差,分析企業(yè)對項目的估算能力,偏差越小,說明估算能力越強,對項目成本估算越準(zhǔn)確;可以比對各階段的偏差,發(fā)現(xiàn)風(fēng)險高發(fā)階段和工程能力薄弱之處;可以比對各階段人員計劃和實際配置,有利于發(fā)現(xiàn)企業(yè)人才構(gòu)成問題,為優(yōu)化企業(yè)人力資源措施提供依據(jù)。
利用日志數(shù)據(jù)還能建立項目各階段質(zhì)量成本表,分析項目各階段的質(zhì)量投入。質(zhì)量成本包括評審、質(zhì)量檢查、產(chǎn)品返工、測試等一系列與產(chǎn)品質(zhì)量相關(guān)的活動。我們的改進方向應(yīng)是盡量降低返工工作在整體質(zhì)量成本和項目工作量中的比重。
根據(jù)日志類型指標(biāo)還可以建立項目階段資源模型,統(tǒng)計項目各階段工作量、各類型工作量。通過這些數(shù)據(jù)分析企業(yè)各類型工作崗位從事人員的能力、項目各類型工作比例是否合理、各階段工作量比重是否正常等問題。
對于工作執(zhí)行描述的累積還可以形成企業(yè)的知識管理,在企業(yè)內(nèi)共享共用每個員工的工作經(jīng)驗、問題解決方法和工作成果,推進企業(yè)的知識積累和過程改進。
③項目工程。同時系統(tǒng)根據(jù)瀑布模型各階段的活動,形成了需求管理、設(shè)計管理、測試管理、缺陷管理、同行評審管理和運維管理。
需求管理結(jié)合了CMMI中需求開發(fā)(RD:Requirement Development)和需求管理(REQM:Requirements Management)的特定目標(biāo),對需求開發(fā)成果進行采集和管理。設(shè)計管理主要實現(xiàn)對系統(tǒng)設(shè)計數(shù)據(jù)的采集以及系統(tǒng)實現(xiàn)情況的跟蹤。兩者再結(jié)合測試管理,形成需求跟蹤矩陣,實現(xiàn)需求管理的目標(biāo)。
測試管理和缺陷管理對測試過程(從計劃到設(shè)計,再到執(zhí)行和總結(jié))和缺陷處理過程進行了全方面的數(shù)據(jù)采集,詳細記錄了測試過程和產(chǎn)品缺陷處理情況。并根據(jù)采集數(shù)據(jù)統(tǒng)計分析測試覆蓋率、缺陷發(fā)現(xiàn)率等質(zhì)量情況,生成質(zhì)量報告。
同行評審管理實現(xiàn)了文檔評審和代碼走查的網(wǎng)上開展。允許評審人員異時異地對同個產(chǎn)品進行評審,并可以和被評審產(chǎn)品作者進行溝通,跟蹤評審問題的解決情況。同時在評審過程中支持召開會議,此時可以通過同行評審管理對產(chǎn)品進行會前預(yù)先評審和問題匯總、會后對問題的解決跟蹤。
運維管理對系統(tǒng)運行維護階段的活動進行采集,主要記錄客戶反饋問題及系統(tǒng)維護變更情況。有利于維護成本的分析和問題處理知識庫的形成。
同時,為達到全面的管理,還要包含項目報告管理、供應(yīng)商管理、文檔管理、質(zhì)量保證、統(tǒng)計分析、過程改進、培訓(xùn)管理等,限于篇幅,在此不再贅述。
3項目管理系統(tǒng)的作用分析
對于企業(yè)管理層來說,實現(xiàn)對企業(yè)日常工作和人力資源的有效管理,全方位掌握績效信息是其所關(guān)注的;對于普通管理者來說,實現(xiàn)對具體事務(wù)的跟蹤,確保成果的正確實現(xiàn)是其所重點關(guān)注的。
若企業(yè)能夠構(gòu)建上述這樣一個系統(tǒng),使企業(yè)高層領(lǐng)導(dǎo)通過該系統(tǒng)可以隨時掌控每個項目、每個員工的進展動態(tài),既能監(jiān)控項目進度和成本,又能對公司員工進行扁平化管理;使項目負責(zé)人通過該系統(tǒng),管理跟蹤項目的日常工作,減少項目溝通成本,更好地管理項目成果。
3.1 對企業(yè)日常運作的作用
①減少了人員流動時的成本:新人進入公司后不需要特殊培訓(xùn),只要學(xué)會使用系統(tǒng)就能自主了解學(xué)習(xí)公司現(xiàn)有成果;老員工離職時,由于在系統(tǒng)中保留了工作成果,工作交接等也不需要太多資源;另外大部分員工都不需要具有專業(yè)CMMI知識,只需要使用系統(tǒng),就能清晰地定位自己的角色,順利地完成自己的本職工作。
②充分利用人力資源:通過系統(tǒng),多項目可以交叉使用同一資源,尤其是底層開發(fā)人員、測試人員等,通過合理的任務(wù)安排,每天都能達到工作飽和,保證資源既不閑置也不超負荷。
③累積了大量公司成果:通過長時間的使用,系統(tǒng)采集了大量數(shù)據(jù),形成了多方面的知識累積,豐富了公司的組織資產(chǎn)庫,為以后類似項目的復(fù)用和持續(xù)改進提供了基礎(chǔ)和依據(jù)。
3.2 對企業(yè)實施CMMI的作用
對于準(zhǔn)備CMMI評估但缺少一定基礎(chǔ)的企業(yè),可以逐步進行改進和實施。在企業(yè)毫無規(guī)范基礎(chǔ)的情況下,可以采用逐步推進的方式,如可以先只采用計劃管理和日志管理,以實施項目策劃和項目監(jiān)控、度量分析過程域的要求。由此,一段時間后再實施需求管理、設(shè)計管理等項目開發(fā)活動達到CMMI中項目工程類的過程域要求。最后可以實施質(zhì)量保證、過程改進、培訓(xùn)管理等模塊,來實現(xiàn)對項目的整個支持要求。
對于已經(jīng)進行CMMI評估的企業(yè)來說,構(gòu)建并使用這樣一個系統(tǒng),除了可以快速導(dǎo)入CMMI之外,還可以減少CMMI的培訓(xùn)成本和實施難度。企業(yè)普通員工只需要了解如何使用系統(tǒng),項目負責(zé)人等只需要培訓(xùn)專業(yè)技能和少量CMMI培訓(xùn),就能達到CMMI的實施要求。
對于已經(jīng)通過CMMI但在艱難實施的企業(yè),通過這樣一個系統(tǒng),可以減少實施成本,有效管理各過程。使員工將更多的精力投入到技能提升上,增強企業(yè)的技術(shù)競爭力;也可以精簡CMMI人員,只需要少數(shù)幾人精通CMMI,關(guān)注企業(yè)CMMI實施情況,通過系統(tǒng)的統(tǒng)計數(shù)據(jù)不斷分析企業(yè)存在的不足,持續(xù)改進企業(yè)軟件開發(fā)過程。
3.3 構(gòu)建成為SaaS平臺的作用
項目管理系統(tǒng)的軟件供應(yīng)商可以為不準(zhǔn)備實施CMMI但又承接了高要求項目的企業(yè)開通網(wǎng)上項目管理服務(wù)平臺,用戶可以通過注冊本系統(tǒng)的賬號,登記并記錄準(zhǔn)備開發(fā)或正在開發(fā)的項目,通過本系統(tǒng)不斷提交項目開發(fā)數(shù)據(jù),從而實現(xiàn)項目全過程、全方位的監(jiān)控,確保單個項目的質(zhì)量。
對于第三方監(jiān)理單位也可以注冊該系統(tǒng)的賬號,登錄并對自己監(jiān)理的開發(fā)項目進行監(jiān)控。從而,使本系統(tǒng)為開發(fā)方和監(jiān)理方提供一個便捷的交流溝通平臺。
4后記
企業(yè)軟件開發(fā)過程規(guī)范化發(fā)展,并不是一道不可逾越的高墻。高墻之內(nèi),是低效率的工作、不可保證的軟件質(zhì)量;高墻之外,是有效的溝通、高效的工作、高質(zhì)量的軟件產(chǎn)品。
設(shè)計一套完善的“項目管理系統(tǒng)”,讓CMMI真正與企業(yè)的實際結(jié)合起來,在快速導(dǎo)入CMMI的同時,又提升了軟件項目的管理水平,并得到了持續(xù)不斷的改進與發(fā)展。由此,使得企業(yè)的軟件開發(fā)項目有歷史經(jīng)驗可復(fù)用、計劃可追蹤、過程可監(jiān)控、質(zhì)量可保證。
希望這些研究與思考,可以給類似企業(yè)帶去一定的參考作用,幫助其在快速有效實施CMMI3的同時,迅速提高軟件開發(fā)過程能力;同時,也希望有這方面研究的單位或個人不吝賜教、互相研討。
參考文獻:
[1]Stephen R. Schach.面向?qū)ο笈c傳統(tǒng)軟件工程[M].韓松等,譯. 北京:機械工業(yè)出版社,2003.
[2]Frederick P.Brooks.JR.人月神話[M].汪穎,譯.北京:清華大學(xué)出版社,2007.
[3]費國棟.軟件項目管理系統(tǒng)的研究與實現(xiàn)[D].大連:大連理工大學(xué),2005.
[4]彭晏飛,劉樹啟.基于CMM的中小型軟件企業(yè)軟件過程改進研究[J].中國西部科技2008.7(10):47-49.
[5]方建勇.CMM與軟件工程化淺析[J].硅谷,2008 (4):16-17.