魏鉅熔
(江西聯(lián)創(chuàng)精密機電有限公司 江西省南昌市 330096)
軟件是信息化裝備的重要組成部分,信息化裝備對軟件的功能和性能等要求正在逐步增加,對裝備軟件化的程度要求也在不斷提升,軟件的規(guī)模和復(fù)雜度日漸提高,軟件的重要性日益凸顯,軟件質(zhì)量嚴(yán)重影響信息化裝備的質(zhì)量。因此加強軟件質(zhì)量管理已經(jīng)迫在眉睫,而軟件研制過程質(zhì)量控制作為軟件質(zhì)量管理的重要階段,加強軟件研制過程的質(zhì)量控制的重要性尤為突出。
當(dāng)前,基于GJB5000A-2008《軍用軟件研制能力成熟度模型》標(biāo)準(zhǔn)的軍用軟件研制能力評價工作,正在各類軍工單位中如火如荼地開展,已有不少單位通過了二級或三級評價,也有部分單位正在試點四級的管理。不論是二級評價還是三級評價,在試點實施過程中,或多或少有一些共性的或容易被忽視的方面,將會對缺乏實施經(jīng)驗的軟件過程改進(jìn)組織帶來困惑甚至產(chǎn)生問題。
GJB5000A 將組織軟件研制能力成熟度分為五個等級[1],其中1 級(或ML1)稱為初始級,2 級(或ML2)稱為已管理級,3 級(或ML3)稱為已定義級,4 級(或ML4)為已定量管理級,5 級(或ML5)稱為優(yōu)化級,如圖1 所示。
GJB5000A 二級(已管理級)包括需求管理(ReqM)、項目策劃(PP)、項目監(jiān)控(PMC)、配置管理(CM)、測量與分析(MA)、過程和產(chǎn)品質(zhì)量保證(PPQA)、供方協(xié)議管理(SAM)共7 個過程域[1]。
(1)需求管理(ReqM):二級中唯一的工程類過程域,是針對工程活動、面向產(chǎn)品的要求。主要活動包括需求提供者和接收者一起對需求進(jìn)行分析、討論,按照相應(yīng)準(zhǔn)則對需求含義達(dá)成共識;需求基線必須納入配置管理,并得到控制和維護;同時,建立需求和其他工作產(chǎn)品的雙向可追溯性,正向跟蹤確保需求沒有遺漏、反向跟蹤確保需求沒有多余,需求變更沒有遺漏,總結(jié)為“不多不少、變更不落”。
(2)項目策劃(PP):是在軟件項目啟動后,對項目進(jìn)行科學(xué)合理的策劃,制定項目計劃,是軟件項目管理的一個重要過程。主要活動包括確定軟件生命周期模型、建立工作分解結(jié)構(gòu)(WBS)、進(jìn)行軟件項目估計、估計軟件項目工作量及估算項目資源等。同時,對可能存在的風(fēng)險進(jìn)行分析和識別,并按優(yōu)先級排序。以此制定詳細(xì)的軟件項目計劃,作為項目監(jiān)控的依據(jù)。
(3)項目監(jiān)控(PMC):是在項目計劃制定后,按照項目計劃定期監(jiān)督實際績效和進(jìn)展。主要包括項目過程數(shù)據(jù)的日常收集、項目執(zhí)行情況的定期監(jiān)督、項目任務(wù)活動的再細(xì)化和調(diào)整,糾正措施的跟蹤管理以及風(fēng)險跟蹤等活動。當(dāng)實際績效和結(jié)果顯著偏離計劃時,需納入軟件問題跟蹤表,對軟件問題進(jìn)行分析和處理,直至結(jié)束。
圖1:軍用軟件研制能力成熟度的五個等級
(4)配置管理(CM):是軟件技術(shù)狀態(tài)管理過程,主要活動包括建立配置庫結(jié)構(gòu)及規(guī)定訪問權(quán)限;標(biāo)識、建立配置項和基線,控制對配置項、基線的變更及維護維護基線完整性等。首先是建立配置庫包括開發(fā)庫、受控庫和產(chǎn)品庫,并按要求對“三庫”實行管理;其次是基線的建立、管理和維護過程,含標(biāo)識配置項,在不同階段建立和發(fā)布基線并將基線納入受控庫中進(jìn)行管理,建立配置管理記錄、執(zhí)行配置審核、維護基線的完整性并對配置項和基線進(jìn)行跟蹤和更改控制。
(5)測量與分析(MA):是對軟件項目管理和技術(shù)活動中產(chǎn)生的數(shù)據(jù)進(jìn)行測量和分析,提供管理決策以支持管理和技術(shù)活動的改進(jìn)。根據(jù)組織的方針,制定項目測量目標(biāo),明確測量項的采集時機、分析時機、報告時機和存儲規(guī)程等,明確如何對測量數(shù)據(jù)進(jìn)行分析和報告。測量分析結(jié)果在相應(yīng)節(jié)點與利益相關(guān)方進(jìn)行交流。
(6)過程和產(chǎn)品質(zhì)量保證活動(PPQA):貫穿整個軟件生命周期,客觀評價是質(zhì)量保證活動的準(zhǔn)則,其要求客觀地評價所實施的過程活動、工作產(chǎn)品對適用的過程要求、標(biāo)準(zhǔn)和規(guī)程的符合性。軟件質(zhì)量師(QA)根據(jù)質(zhì)量保證計劃對所實施的過程活動及形成的文檔、源代碼等工作產(chǎn)品進(jìn)行審核并保存相關(guān)記錄。同時,質(zhì)量保證組組長對QA 工作進(jìn)行審核。
(7)供方協(xié)議管理(SAM):是約束、管理和控制供方產(chǎn)品及過程的活動。與GJB9000 標(biāo)準(zhǔn)的供方管理相類似,評價供方的能力,選擇供方,通過與供方建立協(xié)議,明確獲取產(chǎn)品的方式,執(zhí)行供方協(xié)議,監(jiān)督供方的過程,評價供方提供的產(chǎn)品并接收產(chǎn)品。
綜述:目的是確保軟件項目的過程得到策劃和執(zhí)行,以此來監(jiān)督、控制軟件項目研制進(jìn)度,使軟件研制過程具體化、可視化、精細(xì)化,解決軟件開發(fā)的抽象性、不可控性等問題[2]。
3.1.1 領(lǐng)導(dǎo)“真重視”
軟件過程改進(jìn)是一個系統(tǒng)工程,是跨部門的組織活動,有其特有的軟件工程要求和管理特點。首次建立軟件過程改進(jìn)組織、試點實施軟件工程化體系,在組織體系上需要一個有力的領(lǐng)導(dǎo)來組織,并將一定的壓力向各個業(yè)務(wù)部門傳導(dǎo)才能夠保證有效落實。
在軟件過程改進(jìn)實施過程中會占據(jù)大量人力、物力等資源,有時可能會出現(xiàn)與型號項目相沖突,不能完全保證人員和資源到位。在試點實施初期,由于實施人員對標(biāo)準(zhǔn)和體系的理解不透徹,許多工作達(dá)不到要求會返工重做,工作效率甚至?xí)档偷纫幌盗袉栴}。如果高層領(lǐng)導(dǎo)不重視、認(rèn)識不到位,則資源和監(jiān)管等都得不到保證,這就使體系推進(jìn)緩慢,甚至無法運行步履維艱;如果高層領(lǐng)導(dǎo)思想觀念不轉(zhuǎn)變、仍以GJB9000 質(zhì)量管理體系要求推進(jìn)工作,做的不夠細(xì)致、不夠充分,軟件過程改進(jìn)工作也將屢屢碰壁。
3.1.2 一線有“明白人”
實施中需要有一定的軟件工程和項目經(jīng)驗的人員作為EPG 成員,即一線要有“明白人”,否則,軟件工程體系文件將頻繁修改,項目實施經(jīng)常性返工和重做。在試點實施初期,煩瑣的過程控制要求會降低軟件研發(fā)效率,體系的不確定性會引起項目組的抵觸情緒和行為,阻礙軟件過程改進(jìn)實施。
如果組織內(nèi)有“明白人”,過程實施工作將事半功倍,否則實施工作難度將加大、周期變長,且實施效果可能不盡人意。“明白人”的要求最好是具備以下全部或部分能力:一是熟悉軟件相關(guān)的國軍標(biāo)(如GJB2786A、GJB438B、GJB5000A 等)、熟悉調(diào)整后的評價流程;二是具有一定的軟件工程化知識、最好是編寫過相關(guān)的軍用軟件文檔、熟悉行業(yè)內(nèi)軟件研制程序及所用的開發(fā)模型;三是熟悉企業(yè)內(nèi)部組織結(jié)構(gòu)、深得領(lǐng)導(dǎo)和同事的信任;四是要有較高的情商、溝通表達(dá)能力較好,有一定的號召力;五是對軟件工程化有興趣,能堅持、有耐心、不怕繁瑣。
3.1.3 充分的資源保障
軟件過程改進(jìn)涉及研發(fā)、質(zhì)量、管理等多個部門,在人員安排和跨部門協(xié)調(diào)有時會存在一些困難,特別是中小軍工單位,在人手不夠、項目較多情況下會面臨項目疊加和人員工作沖突等矛盾。此時更需要公司領(lǐng)導(dǎo)和部門主管的鼎力支持,合理規(guī)劃,并提供人員、物力和財力等各類資源保障。特別是財力保障,因為績效激勵是有效的潤滑劑,可促使項目組成員在煩瑣的事務(wù)中持續(xù)地工作。
項目實施期間會產(chǎn)生大量的管理文件和記錄,同時需收集各類信息和數(shù)據(jù),人工采集和編制會占用大量時間、耗費大量精力,而且數(shù)據(jù)會出錯甚至可能錯漏百出,建議選擇適宜的項目管理工具或輔助研發(fā)工具進(jìn)行文件和記錄等證據(jù)的管理,這樣可以減輕實施人員的工作量,也可降低數(shù)據(jù)的錯誤,提升工作效率。
實施GJB5000A 二級過程中難免存在問題和疑惑,主要體現(xiàn)在對軍標(biāo)理解不透徹、體系理解不到位、項目實施不徹底等三個方面。但通過共同努力實踐,所有問題均會得到有效解決。
3.2.1 軍標(biāo)理解不透徹
GJB5000A 標(biāo)準(zhǔn)不好理解,很難讀懂。GJB5000A 來源于CMMI 并略有刪減,為了更好地理解軍標(biāo),可以從軟件工程化角度思考軟件研制過程。從某個角度來描述如何更好地將軟件開發(fā)和維護進(jìn)行過程監(jiān)控和研究,將軟件開發(fā)的抽象性、不可見與不可控等變得具體、可見與可控,使軟件過程得到清晰的定義、管理、測量、控制和有效。將軟件研制能力分級,每級含一定數(shù)量的過程域,每個過程域中具有一定的目標(biāo),以及為了達(dá)到這些目標(biāo)必須要做到的行動步驟,即最佳實踐。為了更好地理解軍標(biāo),建議多看、多思考、多總結(jié),參加新時代認(rèn)證中心組織的學(xué)習(xí)班,在體系運行過程中再回頭看。同時,也可加強與同行專家的交流,多向?qū)<艺埥?、不恥下問。
3.2.2 體系理解不到位
體系文件是軟件過程改進(jìn)的約束性文件,是項目實施的根本依據(jù)。體系文件依據(jù)國軍標(biāo)編制,是結(jié)合本單位的項目特點和軟件管理情況的本地化文件,所以不能圖快圖省事,從其他單位或咨詢公司拿來就用。但可通過調(diào)研學(xué)習(xí)其它單位在實施GJB5000A 二級過程中積累的經(jīng)驗和注意事項,找出本單位在軟件工程化方面的薄弱環(huán)節(jié)和差距,并提出改進(jìn)建議,以此構(gòu)建本單位的軟件工程體系。在構(gòu)建體系文件時期,研發(fā)、質(zhì)量、管理、測試等各類人員充分溝通多交流,確定初版后,找一兩個試點項目運行找出其中的問題,以確定基本可行的版本。
體系文件的理解不會一蹴而就,是一個循序漸進(jìn)的過程。在此次期間可以針對性地增加體系文件的培訓(xùn)、學(xué)習(xí)交流討論會等活動。另外也存在體系文件描述不夠清晰、詳盡,造成項目組對體系文件理解不夠透徹、不到位,而且相同問題會在不同項目組中反復(fù)發(fā)生。這就需要加強體系文件培訓(xùn),先系統(tǒng)層面后按過程域或按角色開展。
3.2.3 項目實施不徹底
項目實施不徹底的原因就來自上述兩類情況,特別會表現(xiàn)在之前接觸較少的方面,如測量與分析和配置管理過程域。測量與分析中測量項不準(zhǔn)確、有遺漏,測量采集時機、分析方法不完整等。測量項是項目監(jiān)控的數(shù)據(jù)來源,測量項若有遺漏如項目平均生產(chǎn)率、不符合項分布等,會失去測量和監(jiān)控的意義,無法支撐和促進(jìn)后續(xù)的改進(jìn)。在選擇測量項時需結(jié)合組織特點,測量數(shù)據(jù)要有一定的意義,統(tǒng)計和促進(jìn)哪個方面的改進(jìn)和完善。
配置管理是控制軟件技術(shù)狀態(tài)的過程,若配置控制出現(xiàn)問題,則整個研制過程和軟件狀態(tài)會出現(xiàn)不可控情況,所以配置控制顯得尤為重要。在實施中出現(xiàn)過“三庫”職責(zé)和權(quán)限不清晰,出入受控庫和產(chǎn)品庫時機不明確等常見問題,在仔細(xì)研究相關(guān)國軍標(biāo)或咨詢同行專家的情況下,結(jié)合GJB9000 質(zhì)量體系中對軟件“三庫”及配置管理的要求進(jìn)行融合,制定確實可行的配置管理程序。
GJB 5000A 二級實施過程中會遇到各種各樣的困難和問題,但通過反復(fù)實踐所有困難和問題終會迎刃而解,試點前的疑慮和困擾將云散月明、撥云見日。且在實施之初不能以過級為目的,而應(yīng)該是實實在在地想提升軟件工程化水平為目標(biāo),那么在評價通過后也不會出現(xiàn)“兩張皮”的現(xiàn)象。本文就實踐過程中遇到的問題和過程情況進(jìn)行了總結(jié),概述了GJB5000A 二級各過程域主要活動內(nèi)容、實施要點,常見問題與處理措施,希望對中小軍工企業(yè)在軟件過程改進(jìn)實施過程中有一定的提示和參考作用,盡量少走彎路。