陳 麗 李曉利 余 俊 于 鑫
(電子信息系統(tǒng)復(fù)雜電磁環(huán)境效應(yīng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,河南 洛陽(yáng)471003)
軟件外包(Software Outsourcing,SO)是指企業(yè)為了削減軟件項(xiàng)目成本、致力于核心競(jìng)爭(zhēng)力的業(yè)務(wù)開(kāi)發(fā),而將軟件項(xiàng)目的整體或者部分工作外包給其他公司的活動(dòng)[1]。軟件外包特指信息技術(shù)外包中的軟件部分外包。根據(jù)商務(wù)部服貿(mào)司統(tǒng)計(jì),2013年中國(guó)承接的服務(wù)外包合同167 424份,合同金額954.9億美元,同比增長(zhǎng)55.8%。其中軟件外包占比超50%,且處于上升趨勢(shì)[2]。軟件外包有利于企業(yè)資源整合,提高效率,降低成本。
過(guò)程決定質(zhì)量。目前我國(guó)的外包軟件質(zhì)量管理仍處于起步階段。若委托方在控制項(xiàng)目質(zhì)量方面沒(méi)有一個(gè)規(guī)范的質(zhì)量保證過(guò)程要求,承包方在承接項(xiàng)目研制時(shí)通常是“要什么交什么”,研制過(guò)程不透明,導(dǎo)致外包軟件項(xiàng)目存在較大風(fēng)險(xiǎn)。
本文依據(jù)有關(guān)法律法規(guī)、項(xiàng)目管理相關(guān)標(biāo)準(zhǔn)、項(xiàng)目研制相關(guān)規(guī)定,深入研究外包軟件項(xiàng)目各階段的過(guò)程活動(dòng),分析各個(gè)活動(dòng)應(yīng)注意的關(guān)鍵問(wèn)題并給出建議,為外包軟件項(xiàng)目管理提供借鑒參考。
當(dāng)前軟件外包業(yè)務(wù)被廣泛應(yīng)用于各領(lǐng)域,軟件外包理論得到長(zhǎng)足發(fā)展,如羅納德·科斯的“交易費(fèi)用理論”、大衛(wèi)·李嘉圖的“比較優(yōu)勢(shì)理論”等[3],都對(duì)外包業(yè)務(wù)管理從理論上給出諸多研究結(jié)果。在這些理論的指導(dǎo)下涌現(xiàn)了多種外包項(xiàng)目管理辦法,它們具有一個(gè)相似的項(xiàng)目管理框架,如圖1所示。每個(gè)模塊可作為一個(gè)獨(dú)立的階段進(jìn)行管理,每個(gè)階段的活動(dòng)因?qū)嵤┲黧w不同而管理方法不同。
圖1 軟件外包項(xiàng)目管理框架
本節(jié)基于軟件外包項(xiàng)目管理框架,結(jié)合軍用軟件能力成熟度模型、項(xiàng)目建設(shè)管理相關(guān)規(guī)定等要求進(jìn)行研究。
在項(xiàng)目立項(xiàng)階段,委托方編寫(xiě)總體技術(shù)方案,進(jìn)行必要性和可行性分析,明確功能與用途、主要指標(biāo)要求,論證項(xiàng)目的運(yùn)行場(chǎng)景、編報(bào)經(jīng)費(fèi)預(yù)算及研制周期。
在總體技術(shù)方案中通常明確項(xiàng)目的實(shí)現(xiàn)方式:自研、整體或部分外包、采購(gòu)貨架產(chǎn)品等。自研項(xiàng)目管理可根據(jù)GJB5000A軍用軟件研制能力成熟度模型中有關(guān)要求開(kāi)展,采購(gòu)貨架產(chǎn)品可按照GJB9001C質(zhì)量管理體系要求進(jìn)行,整體或部分外包的管理將在本文中詳細(xì)給出。
在明確了項(xiàng)目頂層需求及實(shí)現(xiàn)方式后,優(yōu)先從單位的合格供方名錄中選擇與外包軟件技術(shù)要求相同或相近的備選承包方[4],必要時(shí)制定外部供方評(píng)價(jià)準(zhǔn)則。建立供方協(xié)議的活動(dòng)流程如圖2所示。
圖2 建立供方協(xié)議階段研制流程
軟件項(xiàng)目的采購(gòu)或外協(xié)遵循相關(guān)采購(gòu)管理辦法相關(guān)規(guī)定,分為五種采購(gòu)或外協(xié)的方式:公開(kāi)招標(biāo)方式、邀請(qǐng)招標(biāo)方式、競(jìng)爭(zhēng)性談判方式、單一來(lái)源方式和詢(xún)價(jià)方式。項(xiàng)目組選擇一種適用的方式,并在招標(biāo)申請(qǐng)中注明選擇這種方式的理由。審批通過(guò)后,進(jìn)行招標(biāo)工作準(zhǔn)備。
在該階段,備選承包方擬制項(xiàng)目研制方案和投標(biāo)書(shū),委托方組織評(píng)審,現(xiàn)場(chǎng)評(píng)價(jià)打分,選定最終的合格承包方。評(píng)審結(jié)束后簽訂正式合同和技術(shù)協(xié)議。合同和技術(shù)協(xié)議簽訂后,為確保項(xiàng)目能夠保質(zhì)保量完成,委托方應(yīng)制訂一份供方協(xié)議管理計(jì)劃,對(duì)研制過(guò)程關(guān)鍵節(jié)點(diǎn)進(jìn)行監(jiān)控。
對(duì)外包項(xiàng)目研制過(guò)程進(jìn)行監(jiān)控是為了規(guī)范項(xiàng)目的研制過(guò)程,委托方不可能像自研項(xiàng)目管理那樣對(duì)外包項(xiàng)目進(jìn)行全程跟蹤,因此對(duì)研制過(guò)程中的關(guān)鍵路徑和關(guān)鍵活動(dòng)進(jìn)行監(jiān)控[5],就發(fā)揮著“四兩撥千斤”的作用。
在軟硬綜合項(xiàng)目中,項(xiàng)目硬件裝備生產(chǎn)按照GJB9001C質(zhì)量管理體系要求對(duì)產(chǎn)品的生產(chǎn)過(guò)程進(jìn)行跟產(chǎn)監(jiān)造。軟件產(chǎn)品的研制可以按照軍用軟件成熟度模型[6]要求進(jìn)行過(guò)程監(jiān)控。下面重點(diǎn)討論如何對(duì)外包軟件項(xiàng)目研制過(guò)程實(shí)施監(jiān)控。
一般情況下,委托方選擇外包軟件研制過(guò)程的需求分析、軟件設(shè)計(jì)、軟件測(cè)試等關(guān)鍵活動(dòng)實(shí)施監(jiān)控。
2.3.1 需求分析階段
為了確保委托方的需求和期望能夠得到正確實(shí)現(xiàn),需對(duì)外包軟件項(xiàng)目需求分析階段的關(guān)鍵活動(dòng)進(jìn)行監(jiān)控:需求分析、需求評(píng)審、建立需求追溯矩陣。
對(duì)需求分析活動(dòng)進(jìn)行監(jiān)控,通常重點(diǎn)關(guān)注承包方是否充分識(shí)別了需求,是否與委托方的需求存在差異,分析該差異的重要性和影響范圍,在需求評(píng)審會(huì)上進(jìn)行評(píng)價(jià),最終確定是否接受。
需求評(píng)審重點(diǎn)關(guān)注承包方是否正確理解委托方的需求并轉(zhuǎn)化為軟件需求,應(yīng)組織專(zhuān)家對(duì)需求進(jìn)行全面評(píng)審。記錄評(píng)審問(wèn)題,分析承包方對(duì)問(wèn)題的整改措施是否合理,并經(jīng)過(guò)專(zhuān)家簽字確認(rèn)。
委托方建立的需求追溯矩陣與承包方的有所不同,委托方的需求追溯矩陣只需建立軟件項(xiàng)目立項(xiàng)時(shí)確定的需求與交付物功能性能指標(biāo)實(shí)現(xiàn)情況的追蹤關(guān)系,確保委托方的所有需求“一個(gè)不多,一個(gè)不少”地得到實(shí)現(xiàn)。
2.3.2 軟件設(shè)計(jì)階段
軟件設(shè)計(jì)通常分為三步:基于委托方需求的系統(tǒng)設(shè)計(jì)、基于系統(tǒng)需求的概要設(shè)計(jì)、基于概要設(shè)計(jì)的詳細(xì)設(shè)計(jì),如圖3所示。
圖3 軟件設(shè)計(jì)
對(duì)系統(tǒng)設(shè)計(jì)的審核通常關(guān)注系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)是否合理、可擴(kuò)展;是否考慮了系統(tǒng)在不同狀態(tài)下的運(yùn)行方式;CSCI的用途描述是否準(zhǔn)確,接口定義是否清晰;每個(gè)CSCI的控制關(guān)系和數(shù)據(jù)流程是否與預(yù)期用途吻合等。
對(duì)概要設(shè)計(jì)進(jìn)行審核通常關(guān)注CSCI結(jié)構(gòu)設(shè)計(jì)是否合理、可擴(kuò)展;是否清晰標(biāo)識(shí)CSCI的軟件單元接口;實(shí)現(xiàn)CSCI所需的數(shù)據(jù)和數(shù)據(jù)文件是否齊全等。
對(duì)詳細(xì)設(shè)計(jì)進(jìn)行審核通常關(guān)注:是否對(duì)概要設(shè)計(jì)中的軟件單元進(jìn)行詳細(xì)定義,若采用面向?qū)ο蟮脑O(shè)計(jì)方法進(jìn)行設(shè)計(jì),是否描述了每個(gè)類(lèi)的屬性和操作;是否明確每個(gè)類(lèi)的數(shù)據(jù)成員和數(shù)據(jù)文件等。
軟件設(shè)計(jì)評(píng)審?fù)ǔ槌邪巾?xiàng)目組內(nèi)部評(píng)審,委托方若想深入了解軟件設(shè)計(jì)的細(xì)節(jié),或準(zhǔn)備進(jìn)行二次開(kāi)發(fā)時(shí),可在合同中聲明參與軟件設(shè)計(jì)評(píng)審。
軟件項(xiàng)目的驗(yàn)收交付活動(dòng)主要有:廠所驗(yàn)收測(cè)試及評(píng)審、靶場(chǎng)驗(yàn)收測(cè)試及評(píng)審。驗(yàn)收交付流程如圖4所示。
圖4 驗(yàn)收交付流程
在開(kāi)展驗(yàn)收測(cè)試時(shí),應(yīng)編寫(xiě)驗(yàn)收測(cè)試計(jì)劃/大綱;建立需求雙向追溯矩陣,確保需求被正確實(shí)現(xiàn)。在測(cè)試計(jì)劃/大綱中應(yīng)充分分析測(cè)試環(huán)境,區(qū)分哪些測(cè)試項(xiàng)在廠所進(jìn)行,哪些測(cè)試項(xiàng)在靶場(chǎng)進(jìn)行,哪些測(cè)試項(xiàng)需要結(jié)合試運(yùn)行才能測(cè)試充分等。
在廠所測(cè)試時(shí)應(yīng)重點(diǎn)關(guān)注:廠所測(cè)試環(huán)境與真實(shí)運(yùn)行環(huán)境的差異;測(cè)試用例是否覆蓋所有技術(shù)指標(biāo)要求;測(cè)試問(wèn)題影響域分析是否充分;測(cè)試問(wèn)題嚴(yán)重程度及整改情況等。靶場(chǎng)驗(yàn)收測(cè)試充分結(jié)合廠所測(cè)試結(jié)果,重點(diǎn)對(duì)廠所驗(yàn)收測(cè)試中未開(kāi)展的需求進(jìn)行交付驗(yàn)收測(cè)試。
在軍民融合方針指引下,軟件項(xiàng)目的研制越來(lái)越多的選擇外包方式。作為委托方不僅要做好總體、明確需求,還要對(duì)外包項(xiàng)目研制過(guò)程進(jìn)行有效監(jiān)控。外包軟件項(xiàng)目是否成功存在多種不確定因素,做好關(guān)鍵過(guò)程和關(guān)鍵活動(dòng)的監(jiān)控能夠提升項(xiàng)目的成功率。
本文依據(jù)裝備建設(shè)管理辦法及軍用軟件能力成熟度模型相關(guān)要求,對(duì)外包軟件項(xiàng)目研制關(guān)鍵過(guò)程中關(guān)鍵點(diǎn)進(jìn)行分析,指明每個(gè)活動(dòng)應(yīng)注意的關(guān)鍵問(wèn)題,并給出建議措施。