童衛(wèi)東
(中國船舶重工集團公司 第七二三研究所,江蘇揚州 225001)
GJB 5000A過程改進中需要關(guān)注的幾個問題
童衛(wèi)東
(中國船舶重工集團公司 第七二三研究所,江蘇揚州 225001)
文章對GJB 5000A過程改進中幾個需要關(guān)注的問題進行了研究,簡要分析了問題存在的原因,提出了在實踐成熟度二級改進過程中解決這些問題的方法。
GJB 5000A;成熟度認證;解決方法
當前,軟件研制能力成熟度認證工作在國內(nèi)軍工企業(yè)中如火如荼地開展,已有多家單位通過了GJB 5000A成熟度二級認證或三級認證,也有部分單位開始向四級成熟度等級努力。
軟件研制能力成熟度認證已在國內(nèi)開展多年,有不少軟件企業(yè)通過了CMMI四級、五級認證。國內(nèi) GJB 5000A-2008是等同采用CMMI-V1.2軟件部分形成的國家軍用標準,它是一個能力框架,給出了不同成熟度等級的能力要求(特征),但并未給出達到這些能力要求的途徑或指南,因此,每個實施單位要根據(jù)本單位的實際情況制定內(nèi)部標準,以指導本組織的軟件過程,使組織的能力成熟度達到目標等級。不同的單位有不同的做法,但通過調(diào)查發(fā)現(xiàn),在二級成熟度改進過程中,有一些共性的或者容易被忽視的方面,容易在實施過程中給企業(yè)改進活動的組織實施帶來困惑,甚至產(chǎn)生問題。
本文結(jié)合了GJB 5000A二級認證實踐,對認證過程中容易出現(xiàn)的幾個問題進行描述,并給出了初步解決方法。
測量與分析,是軟件項目實施、組織過程改進的基礎(chǔ)。通過測量與分析活動,可以監(jiān)控項目的進度、成本、質(zhì)量等,使項目進展“可視化”,促進項目成功。通過測量與分析,可以改進軟件開發(fā)過程,節(jié)約開發(fā)成本,開發(fā)出高質(zhì)量的軟件產(chǎn)品。
在推進軟件成熟度認證的過程中,發(fā)現(xiàn)許多單位或項目是為了測量而測量,羅列出一堆測量項,卻不知道為什么要測量這些數(shù)據(jù)、如何利用測量得到的數(shù)據(jù)。說得嚴重點,是為了評價。不同的成熟度等級,有不同的管理特征和需要,相應(yīng)的測量需求(測量目標)就不一樣,測量項要緊扣測量的目標。GJB 5000A關(guān)于測量與分析的目的描述是:測量與分析的目的是開發(fā)和保持測量能力,以支持管理信息的需要[1]。也就是說,應(yīng)該選擇“適用于管理信息需要的”測量項。所謂“適用”,是指能夠支撐測量目標的實現(xiàn),并不是越多越好,超出需要的測量會增加人力成本,甚至會因為對測量數(shù)據(jù)的理解偏差而導致混亂。
項目管理的三要素是質(zhì)量、進度、成本[2]。在成熟度二級,選擇能監(jiān)控這三個要素的測量項就可以達到項目的基本要求了。關(guān)于項目質(zhì)量、過程質(zhì)量的測量項一般有:缺陷數(shù)、缺陷分類比率、缺陷密度、不符合項數(shù)量、不符合項分類比率等;關(guān)于項目進度的測量項一般有:項目階段進度偏差、項目進度偏差以及與進度偏差項相關(guān)聯(lián)的工作量偏差等;關(guān)于成本的測量項有:項目工作量、工作量偏差等。
為了支持組織的過程改進,向更高的成熟度等級邁進,一般還應(yīng)定義一些組織級測量項,以支撐組織過程改進計劃的制定,并作為組織內(nèi)軟件項目策劃的基本參數(shù)?;镜慕M織級測量項一般包括:組織的平均生產(chǎn)率、千行代碼平均缺陷率、需求變更比率等。
配置管理的基本目的是,在合適的時候,管住需要控制的內(nèi)容。配置管理不是管得越多越好、越細越好,重點是在需要受控的節(jié)點上管住應(yīng)該受控的配置項。
配置管理的關(guān)鍵點是配置項識別、基線的建立與變更、產(chǎn)品庫的建立。配置項的識別要做到不多也不少。而現(xiàn)在的情況是經(jīng)常遺漏配置項,比如外部要求、協(xié)議、驅(qū)動程序、開發(fā)環(huán)境等?;€是后續(xù)開發(fā)的基礎(chǔ),產(chǎn)品庫則是用于發(fā)布和交付的最終開發(fā)物,一定要從嚴控制。其它配置項,則要根據(jù)其重要程度,確定控制級別。一切從嚴的管理辦法既難以操作,也毫無必要。
配置管理是與工程開發(fā)緊密結(jié)合的過程活動,是在GJB 5000A二級改進過程中最容易見到成效的過程活動。實際上,配置管理活動還可以在一定程度上起到項目監(jiān)控的作用:配置管理人員“按圖索驥”,按配置管理計劃檢查受控配置項以及數(shù)據(jù),可以對項目的推進起到監(jiān)控、促進作用。
體系文件是組織過程改進的重要基礎(chǔ),是軟件項目開發(fā)過程中遵循的內(nèi)部標準,一套好的體系文件,不但要符合GJB 5000A要求,更要有利于項目的開發(fā)以及組織的軟件過程改進。
從現(xiàn)狀看,各軍工單位直接與科研生產(chǎn)有關(guān)的體系主要有:質(zhì)量管理體系、安全保密體系、安全生產(chǎn)與職業(yè)健康體系等。此外,還有檔案管理、人事管理、財務(wù)管理等體系。這么多的體系要求,往往讓身在其中的人無所適從。因此,新增加的軟件過程改進體系一定要最大限度地與現(xiàn)有體系相適應(yīng),要“順”。所謂“順”,就是新體系要在已有的體系基礎(chǔ)上進行細化和優(yōu)化,對照GJB 5000A要求查漏補缺,而不是另起爐灶。
另外,大多數(shù)單位軟件過程改進的目標一般不會停留在二級上,而是有著持續(xù)改進、逐級提升的要求,因此,在制定二級體系文件時,一定要兼顧未來升級的要求,不能升級一次,體系推倒重來一次。實際上,GJB 5000A標準中,三級的許多過程要求,在二級中已有描述,比如三級的“組織培訓”過程域要求,在二級的公用實踐“培訓人員”中已有體現(xiàn);三級的“風險管理”過程域要求,在二級的“項目策劃”過程域的“SP2.2標識項目風險”和“項目監(jiān)控”過程域的“SP1.3監(jiān)督項目風險”中已有所要求。因此,在制定二級體系文件時,也要瞄準三級要求??尚械淖龇ㄊ窃诙墪r指定一些與三級過程域關(guān)聯(lián)的規(guī)程,到三級時進行擴充、細化,保證二級到三級的平穩(wěn)過渡?!霸诙壣?,在三級發(fā)芽、成長”,是一種切實可行的做法。
GJB 5000A二級是要達到項目已策劃、受管理、可控制。因此,二級過程改進的重點是管理。但從根本上來說,管理的提升是組織層面的目標,對于軟件開發(fā)人員個體來說,技術(shù)的提升更是其興趣所在。如果在二級過程改進時,僅僅是按標準要求,制訂了一堆規(guī)程和表單,開發(fā)人員很可能把其視作約束,認為GJB 5000A徒然增加了許多工作量,對軟件技術(shù)的提高和項目的開發(fā)無益,進而在推進過程中產(chǎn)生抵觸情緒,降低改進效果。
從具體實踐來看,試點項目順次啟動并拉開時間梯次、建立組織資源庫,可以比較好的解決這一問題。第一個試點項目啟動時,幾乎全部EPG參與輔導,并全程參與技術(shù)類文檔、管理類文檔的編制、評審;第二個試點項目在第一個項目兩個階段后啟動,全面參考第一個項目,EPG退出,但在階段點進行重點監(jiān)控,隨時解決問題;從第一、第二個項目中選取比較完善的工作產(chǎn)品,納入組織資源庫;后續(xù)啟動的項目利用組織資源庫中的資源,實施就比較順利了。
組織資源庫建設(shè),是GJB 5000A三級的要求,但在二級時建立,可以讓各項目參加人員提前享受軟件過程改進的成果,提高其參與改進的動力。
剛開始過程改進的組織,往往對工作量和風險估計不足,或者僅有感性上的認識,導致在制定計劃以及WBS時,往往會認為所有的工作都已經(jīng)考慮到了,所有的工作量都已經(jīng)體現(xiàn)在WBS中,沒有考慮到風險識別不到位、體系文件存在缺陷或培訓不到位、在執(zhí)行過程中會走很多彎路、增加較多的計劃外工作量等情況,使得實際進度與計劃存在較大偏差。因此,在試點階段,項目計劃應(yīng)留有一定余量,防止過多的修改計劃導致項目不能按期交付。
軟件開發(fā),“唯一不變的是變更”[3]。在軟件開發(fā)過程中,最有可能出現(xiàn)的非計劃任務(wù)是變更。大多數(shù)軟件開發(fā)項目,都存在變更過程,比如因策劃階段與用戶溝通不到位而引起的需求變更,其他如資源因素,需要推遲交付期的計劃變更等等。那么,在分解WBS,或制定計劃時,怎么考慮變更對計劃的影響?
比較可行的方法是:在總的WBS中安排有可能發(fā)生的變更工作量(如估計工作量的10%),該工作量不分配到各階段,但在項目的WBS中為其安排相應(yīng)工期,計劃變更時,就可以使用這部分的工期,但不影響項目最終的交付進度。當然,這個工作量也有可能不發(fā)生,在統(tǒng)計階段工作量時,在哪個階段發(fā)生的變更工作量,就統(tǒng)計在哪個階段。這樣做的另一個好處是:不在階段預(yù)留變更工作量,能如實反映出每個階段估計工作量和實際工作量的偏差,反映出估計人員進行項目估計應(yīng)該注意的地方,這樣可以為項目及后續(xù)項目開發(fā)積累數(shù)據(jù),可在后續(xù)項目中參考此偏差,對每個階段的工作量進行較為準確的估計。
在GJB 5000A二級認證過程中,許多單位因為培訓不到位,帶來了很多問題,如:各項目組對標準、過程體系的理解五花八門,導致執(zhí)行的流程南轅北轍;即使制訂了文檔模板,項目組編制的軟件文檔也是“你說東,我說西”,條目類似,內(nèi)容相去甚遠;組織熱衷于管理過程的宣貫以便獲得認證,對具體的軟件工程技術(shù)不太關(guān)心,導致項目組的開發(fā)水平提高不大,對過程改進失去興趣,反過來阻礙成熟度提升。在實際的評價實踐中,一般都會把“提高組織培訓的有效性”作為一個待改進項。
為什么會有這樣的問題呢?據(jù)分析,由于組織培訓是成熟度三級的過程域,因此,許多單位在實施成熟度二級的過程改進時,不太重視培訓,既沒有在制度上予以保證,又沒有采取有效實踐,導致上述問題發(fā)生。
由此可以看出,實施GJB 5000A二級認證時,組織培訓也是非常重要的方面,必須加以考慮。組織培訓雖然是三級必須滿足的過程域,但它對二級成熟度的達成具有至關(guān)重要的作用,在二級過程改進活動中必須給予足夠重視。實施組織培訓過程,對二級成熟度的達成能起到很好的保證、支持作用。為了規(guī)范化培訓活動,可以在二級時就制定一個培訓程序,指導單位和項目進行培訓,提高體系執(zhí)行的有效性和一致性。
GJB 5000A認證牽涉到管理、支持、工程的多個方面,是一個規(guī)范化的過程改進活動,認證過程中必然會遇到各種各樣的問題??偟膩碚f,不應(yīng)該以過級為目的,僵化地按成熟度等級來實施過程改進,而應(yīng)該以實實在在地提升單位的軟件工程化水平為目的。本文就實際實施過程中碰到的一些具體問題進行了探討,并給出了一些解決措施,希望能對GJB 5000A二級認證征途上的同行有一些助益。
[1]GJB 5000A-2008.軍用軟件研制能力成熟度模型[S].2008.
[2]美國項目管理協(xié)會.項目管理知識體系指南[M].北京: 電子工業(yè)出版社, 2009.
[3]Roger S.Pressman著.軟件工程實踐者的研究方法[M].鄭人杰, 馬素霞, 白曉穎, 譯.北京: 機械工業(yè)出版社, 2011.
Some Problems of Concern in Process Improvement of GJB 5000A
Tong Weidong
(No.723 Research Institute of CSIC, Jiangsu Yangzhou 225001, China)
The paper studies the problems of concern in the process improvement of GJB 5000A.It analyzes the causation of the problems and puts forward the way to resolve the problems in the practice of the secondary maturity improvement.
GJB 5000A; maturity certification; solution
C936
A
10.14141/j.31-1981.2017.01.002
童衛(wèi)東(1969—),男,高級工程師,研究方向:軟件開發(fā)及軟件工程化管理。