馬小龍 劉家才 唐衛(wèi)寧
(湖州師范學(xué)院商學(xué)院,浙江 湖州 313000)
軟件產(chǎn)品的質(zhì)量是決定一個(gè)軟件企業(yè)能否成功的關(guān)鍵因素,而軟件產(chǎn)品的質(zhì)量是由開發(fā)軟件的過程質(zhì)量所決定的。因此,對軟件企業(yè)來說,為了在激烈的軟件市場競爭中更好地生存和發(fā)展,必須實(shí)施軟件過程改進(jìn)[1]??梢灶A(yù)見的是,凡是不能適應(yīng)軟件過程改進(jìn)這種理念的軟件企業(yè),注定在未來數(shù)年內(nèi)被軟件行業(yè)的競爭所淘汰。
對于軟件企業(yè)而言,無論規(guī)模的大小,都必須要實(shí)施軟件過程改進(jìn)[2]。而實(shí)際上,中小軟件企業(yè)要實(shí)施完整的、規(guī)模巨大的軟件過程改進(jìn)工作非常艱難,如中小企業(yè)實(shí)施能力成熟度模型集成(capability maturity model integration,CMMI)。目前的研究集中在適用于大型軟件企業(yè)要求的CMMI和經(jīng)過剪裁的面向中小軟件企業(yè)的CMMI。但是中小軟件企業(yè)實(shí)施剪裁的CMMI也不容易,這是因?yàn)閷?shí)施CMMI需要有一批實(shí)施專家,這對于中小軟件企業(yè)來說是一筆不小的成本。
本文通過提出一種基于CMMI和6 Sigma的軟件過程改進(jìn)框架來加速中小軟件企業(yè)實(shí)施CMMI,以期望中小軟件企業(yè)在較短的時(shí)間內(nèi)以較低的成本達(dá)到CMMI2或者CMMI3等級。
CMMI是由美國國防部、卡內(nèi)基-梅隆大學(xué)的軟件工程學(xué)院和美國國防工業(yè)協(xié)會共同開發(fā)和研制的新一代成熟度模型[3]。CMMI分為階段式和連續(xù)式兩種表示方法。階段式表示方法提供了預(yù)定義的路線圖,路線圖被劃分為“成熟等級”的一系列階段。每個(gè)成熟度等級都有一組過程域,每個(gè)過程域用滿足其目標(biāo)的實(shí)踐來描述。而連續(xù)式模型沒有組織級成熟度相關(guān)的分散階段,允許軟件企業(yè)按照企業(yè)的目標(biāo)有節(jié)奏地實(shí)施不同的過程改進(jìn)工作。
CMMI分為五個(gè)等級,25個(gè)過程域。每個(gè)過程域都有一些特殊目標(biāo)和通用目標(biāo),這些目標(biāo)通過相應(yīng)的特殊實(shí)踐和通用實(shí)踐來實(shí)現(xiàn)。
雖然CMMI的具體實(shí)施可以有效地幫助軟件企業(yè)進(jìn)行過程管理,但仍存在一些不足,其主要的不足之處在于模型只說明了要做什么,而沒有說明怎么做,企業(yè)對解決具體質(zhì)量問題缺乏明確的方法和工具。因此,軟件組織應(yīng)尋找一種實(shí)用的過程質(zhì)量改進(jìn)工具,從而使得組織內(nèi)的過程達(dá)到CMMI模型所要求的各項(xiàng)目標(biāo)。
六西格瑪(6 Sigma)管理法是一種以客戶為導(dǎo)向的、持續(xù)改進(jìn)的管理模式,其特點(diǎn)是以數(shù)據(jù)為基礎(chǔ),追求完美的質(zhì)量管理。六西格瑪管理法是對全面質(zhì)量管理的繼承和發(fā)展,其核心是將所有的工作作為一種流程,采用量化的方法分析流程中影響質(zhì)量的因素,并找出最關(guān)鍵的因素加以改進(jìn),從而達(dá)到更高的客戶滿意度。六西格瑪管理法的實(shí)施主要采用所謂的DMAIC(DMAIC是指由定義D(define)、測量M(measure)、分析A(analyze)、改進(jìn) I(improve)、控制 C(control)五個(gè)階段構(gòu)成的過程)改進(jìn)方法模型對組織的關(guān)鍵流程進(jìn)行改進(jìn)[4]。
在DMAIC過程中,定義即確定客戶對于質(zhì)量認(rèn)知的首要因素和過程;測量即測量核心業(yè)務(wù)流程運(yùn)作的有效性;分析即分析收集的數(shù)據(jù)和流程圖,確定造成缺陷的關(guān)鍵因素及與競爭對手的差距所在;改進(jìn)即基于分析,針對關(guān)鍵因素確立最佳改進(jìn)方案;控制即主要對關(guān)鍵因素進(jìn)行長期控制并采取措施以維持改進(jìn)結(jié)果,進(jìn)而達(dá)到質(zhì)量管理的新水準(zhǔn)。
六西格瑪作為一種過程改進(jìn)工具,用來幫助企業(yè)改進(jìn)制造過程、降低缺陷、提高產(chǎn)品質(zhì)量和企業(yè)運(yùn)營效率并縮短周期。而實(shí)施CMMI的目的,在于提高軟件企業(yè)的開發(fā)效率和軟件產(chǎn)品的質(zhì)量,其主要用于軟件過程的改進(jìn),促進(jìn)軟件企業(yè)能力成熟度的提高。因此,六西格瑪和CMMI在改進(jìn)目的上是類似的,都是用來提高企業(yè)的整體質(zhì)量管理水平,只是CMMI注重的是流程的規(guī)范化和體系化,而六西格瑪則為解決具體軟件質(zhì)量問題提供了改進(jìn)方法體系。二者相結(jié)合,可以相互促進(jìn),產(chǎn)生更加有效的改進(jìn)結(jié)果[5]。
CMMI不需要軟件企業(yè)完成大量的文檔。實(shí)施者的職責(zé)之一就是將文檔減少到合理的程度?;谙嗤脑瓌t,本文仔細(xì)研究了CMMI2和CMMI3的過程域,結(jié)合中小軟件企業(yè)的現(xiàn)狀,對其作出適當(dāng)?shù)恼{(diào)整。
剪裁的CMMI框架根據(jù)增量迭代模型的不同階段,將軟件開發(fā)分為項(xiàng)目開發(fā)活動(dòng)和項(xiàng)目管理活動(dòng)兩部分,使項(xiàng)目管理和軟件開發(fā)緊密結(jié)合[6]。項(xiàng)目開發(fā)活動(dòng)歸入需求分析、系統(tǒng)設(shè)計(jì)、編碼和單元測試、綜合測試和維護(hù)五個(gè)過程域;項(xiàng)目管理活動(dòng)按不同性質(zhì)被納入需求管理、軟件項(xiàng)目計(jì)劃管理、軟件項(xiàng)目跟蹤和監(jiān)控、軟件質(zhì)量保證和軟件配置管理五個(gè)過程域。
在剪裁的CMMI框架中,項(xiàng)目開發(fā)過程被劃分為以下五個(gè)過程域。
①需求分析過程域,對用戶進(jìn)行需求調(diào)研,獲取用戶需求并定義產(chǎn)品需求。
②系統(tǒng)設(shè)計(jì)過程域,設(shè)計(jì)開發(fā)軟件產(chǎn)品的體系結(jié)構(gòu)、用戶界面、數(shù)據(jù)庫和子模式,確定所采用的技術(shù)工具,在需求和代碼之間建立橋梁,直到產(chǎn)品實(shí)現(xiàn)。
③編碼和單元測試過程域,根據(jù)系統(tǒng)設(shè)計(jì)文檔的要求對各模塊進(jìn)行編碼,對編碼的階段性產(chǎn)品進(jìn)行單元測試。
④綜合測試工程域,依據(jù)用戶需求、系統(tǒng)設(shè)計(jì)文檔對最終產(chǎn)品進(jìn)行全面測試,得到用戶所需求的產(chǎn)品。
⑤維護(hù)過程域,客戶依據(jù)合同和需求文檔對產(chǎn)品進(jìn)行測試和維護(hù),以確保軟件滿足用戶的長久需求[8]。
在剪裁的CMMI框架中,項(xiàng)目管理過程可劃分以下為五個(gè)過程域。
①需求管理過程域,分配需求被有效地建立成一個(gè)基線。這個(gè)基線是以后活動(dòng)的基礎(chǔ),軟件計(jì)劃、產(chǎn)品和活動(dòng)與分配需求保持一致。
②項(xiàng)目計(jì)劃管理過程域,軟件估計(jì)被文檔化,以供計(jì)劃和跟蹤軟件項(xiàng)目使用,軟件項(xiàng)目的活動(dòng)和約定是有計(jì)劃的,并形成文檔。
③項(xiàng)目跟蹤和監(jiān)控過程域,這個(gè)過程域周期性地跟蹤和監(jiān)督項(xiàng)目各單元,如進(jìn)度、工作量、成本和資源等,不斷了解項(xiàng)目的進(jìn)展情況,當(dāng)項(xiàng)目進(jìn)展顯著偏離計(jì)劃時(shí),則采取糾正措施。
④軟件質(zhì)量保證過程域,通過提供一種有效的人員組織形式和管理方法,實(shí)現(xiàn)對產(chǎn)品開發(fā)質(zhì)量的檢查和監(jiān)督,從而持續(xù)改進(jìn)軟件質(zhì)量。
⑤軟件配置管理過程域是軟件過程的關(guān)鍵要素,其目的是建立并維護(hù)軟件產(chǎn)品在整個(gè)軟件生存期內(nèi)的完整性。這個(gè)過程域是開發(fā)和維護(hù)各個(gè)階段管理軟件演進(jìn)過程的方法和規(guī)程[7]。
基于CMMI和6 Sigma的6SBC模型,融合了CMMI和六西格瑪兩種改進(jìn)方法的優(yōu)點(diǎn)。6SBC模型框架圖如圖1所示。
圖1 6SBC模型框架圖Fig.1 Block diagram of 6SBC model
本文建議在戰(zhàn)略層面使用六西格瑪法,從而更好地控制軟件過程改進(jìn)活動(dòng)。如果在基于CMMI的基礎(chǔ)上引入六西格碼作為軟件過程改進(jìn)方法,可以縮短改進(jìn)的時(shí)間,提高改進(jìn)的質(zhì)量[9]。此外,在六西格瑪法實(shí)施中產(chǎn)生的分析和控制文檔,滿足了CMMI許多具體和通用的要求,公司不需要再投入額外的費(fèi)用去完成這些文檔資料。
對于中小軟件企業(yè)而言,首先是識別企業(yè)需要改善的關(guān)鍵域,選擇一個(gè)能從總體上代表公司水平的項(xiàng)目工程,被選擇的工程估計(jì)至少要有3~6個(gè)月的時(shí)間項(xiàng)目周期[10]。企業(yè)至少要投入3個(gè)人到這個(gè)項(xiàng)目中,以便他們能在組織內(nèi)部推動(dòng)六西格瑪,減少雇傭六西格瑪黑帶大師的費(fèi)用。本文力推公司的高層領(lǐng)導(dǎo)作為黑帶大師,而項(xiàng)目經(jīng)理作為黑帶(項(xiàng)目經(jīng)理)來管理項(xiàng)目。黑帶的職責(zé)是啟動(dòng)六西格瑪項(xiàng)目。
第一階段是定義階段,在這個(gè)階段,團(tuán)隊(duì)成員和團(tuán)隊(duì)領(lǐng)導(dǎo)就項(xiàng)目做什么和項(xiàng)目的目標(biāo)是什么達(dá)成一致意見。為了定義一個(gè)工程,黑帶要制訂項(xiàng)目章程。作為這一階段的成果,將有一個(gè)預(yù)期改善明確的聲明,推動(dòng)這個(gè)項(xiàng)目以項(xiàng)目章程的形式通過這個(gè)階段。
第二個(gè)階段是測量階段,這個(gè)階段的目標(biāo)是通過對當(dāng)前過程現(xiàn)狀的了解,盡可能發(fā)現(xiàn)組織的弱點(diǎn)。這一過程將定義和收集過程數(shù)據(jù),并對數(shù)據(jù)進(jìn)行基線分析。通過對數(shù)據(jù)收集和評估工作,可以獲得對問題和改進(jìn)機(jī)會的定量化認(rèn)識,并在此基礎(chǔ)上獲得項(xiàng)目實(shí)施方面的信息。
第三個(gè)階段是分析階段,這個(gè)階段需要對度量數(shù)據(jù)進(jìn)行噪聲分離和穩(wěn)定性的判斷,目的是明確引起過程偏差的原因。在這個(gè)階段需要團(tuán)隊(duì)成員識別現(xiàn)有過程的缺點(diǎn),驗(yàn)證缺點(diǎn)的根源,并在改進(jìn)階段解決。
第四個(gè)階段是改善階段,改善階段用來實(shí)施已確定的解決方案,并用事實(shí)和數(shù)據(jù)來證明實(shí)施的方案能解決問題。這個(gè)階段的最后,需要組織重新評估過程域,確定是否需要進(jìn)一步的改善。
第五個(gè)階段是控制階段,這個(gè)階段用來監(jiān)督整個(gè)六西格瑪項(xiàng)目的執(zhí)行。控制階段的活動(dòng)將進(jìn)一步確保問題不會再次發(fā)生,新的工作方式要制度化,要進(jìn)一步按照組織的目標(biāo)改進(jìn)[11]。
本文建議中小企業(yè)采用控制圖表來幫助這個(gè)階段。這個(gè)階段的結(jié)果是預(yù)計(jì)使用新的過程來形成一個(gè)組織層面的政策和制定改善計(jì)劃。
一旦一個(gè)組織完成了六西格瑪項(xiàng)目的整個(gè)過程,可以期望一個(gè)團(tuán)隊(duì)在較短的時(shí)間內(nèi)以較少的努力達(dá)到期望的能力水平。此外,一步步的框架允許項(xiàng)目團(tuán)隊(duì)繼續(xù)關(guān)注開發(fā)軟件產(chǎn)品而不是擔(dān)心過程改進(jìn)活動(dòng)。中小企業(yè)可以在隨后的過程域中使用相同的過程,從而提升他們的能力。
本文根據(jù)我國軟件業(yè)的實(shí)際情況,通過對CMMI2和CMMI3的各關(guān)鍵過程域進(jìn)行剪裁和重定位,結(jié)合6 Sigma的DMAIC方法提出了軟件過程改進(jìn)模型6SBC——一種適合我國中小型軟件企業(yè)的軟件開發(fā)模型,為我國中小軟件組織走上軟件開發(fā)規(guī)范化道路、進(jìn)而真正實(shí)施CMMI起到一定的幫助作用。
[1]張友生,徐鋒.CMM/CMMI在中國的實(shí)施狀況調(diào)查報(bào)告[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(7):31 -32.
[2]魏德智.關(guān)于建立需求工程過程模型的初步研究[D].北京:北京工業(yè)大學(xué),2004.
[3]王慧,周伯生.基于CMMI的軟件過程管理框架的度量系統(tǒng)[J].計(jì)算機(jī)工程,2008(B09):37-38.
[4]Basem E.Manufacturing and design for six Sigma(X-FSS)[R].Doctor Dissertation,University of Michigan,2002.
[5]楊世元,蘇海濤,趙永濤.基于系統(tǒng)工程方法的6 Sigma管理理論及應(yīng)用研究[J].現(xiàn)代管理科學(xué),2004(10):20-22.
[6]Software Engineering Institute.CMMI V1.1-SCAMPI V1.1 class a apprasial results[R].Carnegie Mellon University,2005.
[7]劉小茵,萬舉勇.6 Sigma在CMMI中的應(yīng)用[J].軟件工程與標(biāo)準(zhǔn)化,2006(3):34 -37.
[8]錢運(yùn)峰,劉寬宏,覃征.CMMI度量過程域在中小企業(yè)的研究與實(shí)踐[J].計(jì)算機(jī)工程與科學(xué),2006(11):89-90.
[9]張志紅.基于并行質(zhì)量工程的6 Sigma公差[D].天津:天津大學(xué),2006.
[10]張素姣,田霞,馮珍.六西格瑪DMAIC方法在產(chǎn)品質(zhì)量改進(jìn)中的應(yīng)用[J].科技管理研究,2010(11):177-179.
[11]Cvetan Redzic,Jongmoon Baik.Six Sigma approach in software quality improvement[C]//Fourth International Conference on Software Engineering Research,Management and Applications,Seattle,WA,USA,2006:9 -11.