韓成哲
(中國人民解放軍 92493部隊(duì), 遼寧 葫蘆島 125000)
軟件項(xiàng)目管理就是通過使用知識、 技能、 工具和方法組織、 計(jì)劃、 實(shí)施并監(jiān)控軟件項(xiàng)目, 使之滿足項(xiàng)目需要??煞譃橛布寄?方法、 過程、 技巧)和軟技能(人員管理)。一個成功的軟件項(xiàng)目必須滿足或超過聯(lián)系人的期望值。PMBOK的9大過程領(lǐng)域分別為整體、 范圍、 時(shí)間、 成本、 質(zhì)量、 人力資源、 溝通、 風(fēng)險(xiǎn)和采購管理[1]。沒有項(xiàng)目管理, 項(xiàng)目也有可能成功, 但很難保證風(fēng)險(xiǎn)以及財(cái)政支出, 并且其模式是不可復(fù)制的。
圖1 軍用軟件研究成熟度的5個等級
軍用軟件成熟度模型是我軍為了使軟件開發(fā)項(xiàng)目符合國際的認(rèn)證標(biāo)準(zhǔn)CMM(Capability Maturity Model)而推出的適用于我軍軟件項(xiàng)目研制工作的模型, 與CMM相似, 主要分為5個階段, 如圖1所示。
從圖1中可看出, 該模型注重的是整體成熟度, 對各個單體過程的完成度并不是其主要關(guān)注點(diǎn), 所以用ML1作為本模型的起點(diǎn)。成熟度等級的完成各分為不同的過程域, 過程域可繼續(xù)細(xì)分為其專屬的專用目標(biāo)和共同目標(biāo)。通過專用目標(biāo)和共同目標(biāo)的完成情況判斷各個過程域的完成情況, 再依據(jù)過程度的完成情況確定軟件的成熟是在哪個等級上, 是一個從小單元到大單元遞推的模塊化
過程。
筆者主要利用軍用軟件成熟度模型對軟件項(xiàng)目進(jìn)行管理, 這就需要用到項(xiàng)目管理類過程域, 其主要是與項(xiàng)目的策劃、 監(jiān)督以及控制有關(guān)的各類活動。在項(xiàng)目開始立項(xiàng)前需確定為該項(xiàng)目服務(wù)的專門部門, 這里取名為項(xiàng)目管理辦公室(簡稱總工辦),總工辦根據(jù)下屬相應(yīng)的職能設(shè)立管理組, 每個組根據(jù)職責(zé)負(fù)責(zé)相應(yīng)的軟件管理責(zé)任。開發(fā)管理組又細(xì)分為: 軟件工程過程組(SEPG: Softwate Engineering Process Group)、 售后服務(wù)組(RMG: Responsible Maintenance Group)和軟件質(zhì)量保證組(SQAG: Software Quality Assarance Group)(見圖2)。SEPG負(fù)責(zé)提供過程指導(dǎo)、 幫助策劃和制定項(xiàng)目過程, 如果RMG和SQAG對過程的理解發(fā)生爭持, 則SEPG為最終仲裁者。SPPG和SPTOG負(fù)責(zé)軟件項(xiàng)目開發(fā), 而SCMG則負(fù)責(zé)軟件的配置問題[2]。
圖2 項(xiàng)目管理辦公室運(yùn)行機(jī)制
運(yùn)用上述建立的項(xiàng)目管理辦公室運(yùn)行機(jī)制, 每個組分別按照職能對項(xiàng)目進(jìn)行管理。管理要體現(xiàn)在項(xiàng)目實(shí)施的每個環(huán)節(jié), 即立項(xiàng)到售后服務(wù)的整個過程, 使其達(dá)到GJB對于軟件項(xiàng)目的標(biāo)準(zhǔn)。表1為各個過程域的分類, 從表1中可看出, 哪些過程域是項(xiàng)目管理類的, 即課題所要重點(diǎn)注意的。
任何項(xiàng)目的開始必須有一個立項(xiàng)過程, 很多管理者往往存在立項(xiàng)過程不必要進(jìn)行管理的誤區(qū)。然而, 立項(xiàng)過程既為管理過程的開始, 就要先期用到項(xiàng)目策劃、 監(jiān)控和風(fēng)險(xiǎn)管理。策劃使項(xiàng)目有一個明確的目標(biāo)以及大概方向, 監(jiān)控立項(xiàng)的過程就是把握好問題的關(guān)鍵, 風(fēng)險(xiǎn)管理可以為后續(xù)的工作建立初期的風(fēng)險(xiǎn)機(jī)制, 分析可能發(fā)生的意外情況。
由圖3可看出, 決策層要對項(xiàng)目進(jìn)行論證以及最后的審批, 而項(xiàng)目負(fù)責(zé)人要根據(jù)決策層提出的意見進(jìn)行修改并開始項(xiàng)目, 總工辦在立項(xiàng)過程中起到承上啟下作用??偣まk需要與項(xiàng)目領(lǐng)導(dǎo)小組進(jìn)行溝通, 同時(shí)要向項(xiàng)目負(fù)責(zé)人傳達(dá)指令, 使項(xiàng)目能順利立項(xiàng)。立項(xiàng)過程中可不要求具體人員參加。按照上述辦法, 立項(xiàng)后即可完成軍用軟件成熟度模型2級的兩項(xiàng)內(nèi)容以及3級的一項(xiàng)內(nèi)容。
項(xiàng)目立項(xiàng)后, 總工辦繼續(xù)對項(xiàng)目的整體進(jìn)行控制, 而項(xiàng)目負(fù)責(zé)人開始對項(xiàng)目的要求進(jìn)行需求分析和改進(jìn)與總體目標(biāo)相關(guān)的可行性方案(見圖4)。對需求要進(jìn)行反復(fù)修改, 并且把所能達(dá)到的需求列入開發(fā)步驟, 把暫時(shí)達(dá)不到的需求列為暫定計(jì)劃或預(yù)留, 在開發(fā)過程中要通知相應(yīng)的開發(fā)人員預(yù)留相應(yīng)的接口, 不能堵死出路。這里對應(yīng)的是軍用軟件成熟度模型的需求管理和供方協(xié)議管理。
隨著項(xiàng)目的進(jìn)行, 所有的需求都慢慢出現(xiàn), 為避免歧義, 需求提供者和接收者要共同完成各階段的需求分析, 這一過程就是求得對需求的共同理解。在此基礎(chǔ)上, 項(xiàng)目的參與者還要對當(dāng)前達(dá)成一致的需求進(jìn)行承諾, 該承諾包括項(xiàng)目在以后計(jì)劃活動以及產(chǎn)品改動的承諾, 該過程就是對需求的承諾。得到對需求承諾后, 對需求進(jìn)行變更, 需求的改變進(jìn)行雙向跟蹤, 找出項(xiàng)目工作與需求之間不一致的地方進(jìn)行修正。重復(fù)這一過程, 以達(dá)到需求和項(xiàng)目目標(biāo)的高度一致性[3]。
圖4 需求階段主要完成的工作
確定相應(yīng)的需求后, 負(fù)責(zé)人在總工辦的領(lǐng)導(dǎo)下對總體目標(biāo)進(jìn)行軟件的設(shè)計(jì)與開發(fā)。軟件開發(fā)是軟件項(xiàng)目的核心部分, 目標(biāo)的實(shí)現(xiàn)以及需求的完成都離不開軟件開發(fā)。在開發(fā)過程中要用到集成項(xiàng)目管理、 項(xiàng)目監(jiān)控、 風(fēng)險(xiǎn)管理和定量項(xiàng)目管理等。
在開發(fā)過程中, 項(xiàng)目監(jiān)控要一直持續(xù)到項(xiàng)目結(jié)束并延伸到維護(hù)階段。風(fēng)險(xiǎn)管理也要隨著項(xiàng)目的深入進(jìn)行修正, 以確保整體的軟件開發(fā)風(fēng)險(xiǎn)在可承受范圍內(nèi)。集成項(xiàng)目管理要建立并維護(hù)項(xiàng)目的共同愿望和集成團(tuán)隊(duì)結(jié)構(gòu), 努力維護(hù)在結(jié)構(gòu)中的團(tuán)隊(duì), 并在結(jié)構(gòu)中對團(tuán)隊(duì)配置職責(zé)、 需求和接口等, 保證團(tuán)隊(duì)之間接口的工作, 使項(xiàng)目的集成化提高。要建立和維護(hù)項(xiàng)目質(zhì)量及過程性能目標(biāo), 提供穩(wěn)定的歷史數(shù)據(jù)選擇組成項(xiàng)目定義過程的子過程, 統(tǒng)計(jì)子過程形成定義過程, 并對質(zhì)量、 過程性能等目標(biāo)進(jìn)行跟蹤, 判斷是否需要修正, 保證項(xiàng)目滿足質(zhì)量目標(biāo)和過程性能目標(biāo)。QPM是4級項(xiàng)目管理, 工作較多, 可根據(jù)實(shí)際情況針對項(xiàng)目處理[4-8]。
項(xiàng)目的維護(hù)階段可以參照項(xiàng)目的開發(fā)階段, 單獨(dú)建立模塊也可把維護(hù)加到項(xiàng)目開發(fā)的模塊中一并進(jìn)行處理。
綜上所述, CMM對軍用軟件項(xiàng)目開發(fā)管理以及開發(fā)能力評估有著重要的指導(dǎo)作用, 同時(shí)也可作為軍用軟件生產(chǎn)過程的執(zhí)行標(biāo)準(zhǔn)。筆者結(jié)合某軍用軟件項(xiàng)目開發(fā)實(shí)際, 研究提出了總工辦管理框架圖以及各個階段的各項(xiàng)工作內(nèi)容, 并在軟件項(xiàng)目實(shí)際開發(fā)中進(jìn)行了實(shí)際應(yīng)用, 其成果可應(yīng)用于同類軍事軟件項(xiàng)目開發(fā)過程中。
參考文獻(xiàn):
[1]MISHRA ALOK. Sofeware Quality Assurance Models in Small and Medium Organisations [J]. International Jourual of Information Technology & Management, 2006, 5(1): 4-20.
[2]邢彬彬, 姚政. CMM/CMMI與軟件生命周期模型關(guān)系的研究 [J]. 計(jì)算機(jī)應(yīng)用研究, 2007, 24(11): 65-69.
XING Bin-bin, YAO Zheng. Study of Relation between CMM/CMMI and Software Life Cycle Models [J]. Application Research of Computes, 2007, 24(11): 65-69.
[3]GJB 5000A-2008. 軍用軟件研制能力成熟度模型 [S]. 北京: 中國標(biāo)準(zhǔn)出版社, 2009.
GJB 5000A-2008. Military Capability Maturity Model for Software Development [S]. Beijing: China Standard Press, 2009.
[4]方德英, 李敏強(qiáng). 中小規(guī)模低成熟度軟件企業(yè)的項(xiàng)目風(fēng)險(xiǎn)管理 [J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2003(10): 12-15.
FANG De-ying, LI Min-qiang. An Approach for Risk Management to Low-Maturity Software Firms [J]. Computer Systems Application, 2003(10): 12-15.
[5]鄧景毅, 葉世綺, 鄭欣. 軟件成熟度模型(CMM)發(fā)展綜述[J]. 計(jì)算機(jī)應(yīng)用研究, 2002, 19(7): 6-9.
DENG Jing-yi, YE Shi-qi, ZHENG Xin. The Survey of CMM (the Capability Maturity Model) [J]. Application Research of Computers, 2002, 19(7): 6-9.
[6]JAMES HERBSLEB. Software Quality and the Capability Ma-Turity Model [J]. Communications of the ACM, 1997, 40(6): 30-40.
[7]張友生, 徐鋒. CMM/CMMI在中國的實(shí)施狀況調(diào)查報(bào)告 [J]. 計(jì)算機(jī)工程與應(yīng)用, 2006, 42(7): 31-32.
ZHANG You-sheng, XU Feng. The Investigation Report of Implementation Status of CMM/CMMI [J]. Computer Engineering and Applications, 2006, 42(7): 31-32.
[8]王慧, 周伯生, 羅文劼. 基于CMMI的軟件過程性能模型 [J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2009, 30(1): 110-112.
WANG Hui, ZHOU Bo-sheng, LUO Wen-jie. Research on CMMI-Based Process Performance Models [J]. Computer Engineering and Design, 2009, 30(1): 110-112.