周鋼 梁海峰 孫靜 崔航 單威 王宇
摘 ?要:中國民航信息集團公司近年來在北京、重慶、沈陽、成都、嘉興、歐洲等地設立了區(qū)域研發(fā)中心,基本實現了集中開發(fā)到分布式開發(fā)。然而,各區(qū)域研發(fā)中心的軟件研發(fā)要求和人員技術能力存在較大差異,且異地分布式開發(fā)的溝通效率低,這些因素導致分布式研發(fā)團隊的軟件開發(fā)質量不穩(wěn)定。文章基于以上問題展開研究,設計了分布式研發(fā)模式下的開發(fā)能力評估模型,并研制了基于該模型的質量管理平臺,有效地保證了民航信息系統的研發(fā)質量。
關鍵詞:軟件工程;分布式研發(fā)模式;開發(fā)能力;評估模型;CMMI
中圖分類號:TP311.5 ? 文獻標識碼:A ? 文章編號:2096-4706(2023)16-0109-07
Research on Software Development Capability Assessment under the
Distributed R & D Mode
ZHOU Gang, LIANG Haifeng, SUN Jing, CUI Hang, SHAN Wei, WANG Yu
(TravelSky Technology Network Co., Ltd., Beijing ?101318, China)
Abstract: In recent years, TravelSky has established some regional regional R & D centers in Beijing, Chongqing, Shenyang, Chengdu, Jiaxing, Europe, and so on. It basically realizes the centralized development to the distributed development. However, there is a large difference in software research and development requirements and personnel technical capabilities of regional research and development centers, and the communication efficiency of remote distributed development is low, resulting in the development quality of software is unstable. Based on the above issues, this paper carries out research, designs a development capability assessment model under the distributed R & D mode, and develops a quality management platform based on this model, which effectively ensures the R & D quality of civil aviation information systems.
Keywords: software engineering; distributed R & D mode; development capability; assessment model; CMMI
0 ?引 ?言
近年來,隨著國家強調科技創(chuàng)新的重要性,作為唯一的以信息服務為主業(yè)的中央企業(yè),中國民航信息集團公司(簡稱“中國航信”)持續(xù)加大研發(fā)投入,提升投入強度。中國航信所運營的民航信息系統是民航業(yè)務生產鏈條的重要組成部分,是民航商務運營的關鍵信息技術基礎設施,承擔我國民航客貨運輸業(yè)務數據處理和傳輸的關鍵系統,被行業(yè)和媒體譽為“民航健康運行的神經”。
隨著業(yè)務的迅猛發(fā)展,中國航信研發(fā)和運營的民航信息系統的規(guī)模逐年增大,系統的總代碼量已經超過9 000萬行。自2017年開始,為解決總部研發(fā)資源瓶頸問題,中國航信的研發(fā)體系啟動了從集中走向分布的工作,資源分布按業(yè)務特點,形成“北京+X”的有序分布,研發(fā)人員達2 000余人。面對多地協同分布式研發(fā)模式下溝通效率低、技術人員能力存在較大差異,研發(fā)產出一直處于較低水平的挑戰(zhàn),如何能有效地配置研發(fā)資源,提高開發(fā)效率,如何通過高質量的軟件研發(fā)和交付來保障大型信息系統的安全性和可靠性,是中國航信乃至軟件行業(yè)面臨的一個重要挑戰(zhàn)。
一直以來,軟件開發(fā)能力往往是通過各種基礎信息進行主觀綜合評價,這種定性評價的方式很難進行橫向及縱向對比,也很難發(fā)現自身具體的能力差距以及造成差距的根本原因和明確的解決方案[1]。而軟件開發(fā)能力的量化評估,可以一定程度解決軟件開發(fā)能力評價缺乏客觀性和可比性的不足。本文所論述的大型軟件的開發(fā)能力評估模型和技術基本解決了軟件開發(fā)能力評價缺乏客觀性和可比性的不足,有效地保證了民航信息系統的研發(fā)和運營,也為其他領域和行業(yè)的軟件研發(fā)質量管理工作提供了有益的借鑒和參考。
1 ?相關工作
國內外學者從不同視角對企業(yè)的研發(fā)能力進行了大量研究,研發(fā)分為研究和開發(fā)兩個階段,前者主要是知識的獲取與積累,后者更注重成果的生成和轉化?,F有文獻多集中于把研發(fā)看作一個整體分析,并基于企業(yè)從宏觀層面上進行研發(fā)能力評估,針對企業(yè)不同研發(fā)階段的能力影響因素分類研究較少[2]。由美國國防部(United States Department of Defense)與卡內基-梅隆大學(Carnegie-Mellon University)下的軟件工程研究中心(Software Engineering Institute, SEISM)以及美國國防工業(yè)協會(National Defense Industrial Association)共同開發(fā)和研制的軟件能力成熟度集成模型(Capability Maturity Model Integration, CMMI)[3],主要是針對企業(yè)的軟件開發(fā)項目進行能力成熟度的評估,是世界公認的軟件能力成熟度評估標準,業(yè)界普遍使用CMMI模型作為軟件生產過程標準和軟件企業(yè)成熟度等級認證標準[4]。
在金融行業(yè),眾多銀行信息系統基于“應用開發(fā)平臺”模式建設,加強對應用系統的自主掌控,提升銀行信息化的風險管理與控制水平。但平臺研發(fā)的質量缺乏有效的體系保證,難以進行全面的質量管控[5]。
在軟件測試方面,當前存在一些軟件測試過程改進模型,例如,應用于企業(yè)內部測試能力評估的測試成熟度模型(TMMi),基于SPICE的專業(yè)軟件測試機構測試過程改進模型,能夠及時、全面、有效地分析測試過程的效能[6]。
敏捷開發(fā)以盡早交付客戶可以工作的軟件為唯一標準,強調提高效率,是軟件開發(fā)管理的利器,但達成高效的前提是:保持穩(wěn)定的開發(fā)步驟,保持穩(wěn)定的開發(fā)團隊,團隊之間彼此默契[7]。由多個區(qū)域研發(fā)單位人員組成的分布式研發(fā)團隊并不具備這個前提。
以上的研究只有CMMI比較符合中國航信對于開發(fā)能力評估的需要,CMMI項目管理方法是全面管理軟件項目中的每一個環(huán)節(jié),提供軟件開發(fā)特征和參考模型[8]。但在實踐應用中,如何做,如何有效實施,卻要靠組織根據自己的實際情況進行探索和實踐[9]。CMMI進行開發(fā)能力評估存在以下問題:一是CMMI的一大堆規(guī)程和過程只是要求企業(yè)或項目團隊按照規(guī)范按部就班地去做事情,缺乏具體操作層面的實踐要求,使得只能通過主觀意向性來判斷規(guī)范的達成情況,因而評估結果不夠客觀;二是CMMI模型假定每個個體都會按照制訂的規(guī)程去認真地完成每一件事情,而這個假設往往又是很難成立的,就如CMMI要求進行工作產品的評審,但評審效果由于缺乏客觀的標準很難評估;三是CMMI強調要進行項目團隊技能的評估,項目團隊技能無法達到的時候要組織專門的培訓,關鍵問題是項目團隊技能無法滿足的情況非常普遍,由于進度要求我們仍然要進行項目,CMMI模型僅使用定性的描述,這在項目團隊進行各方面的優(yōu)劣比較和規(guī)劃改進路線時無法提供有力支持。
在本研究中,結合中國航信的實際情況,重點關注開發(fā)并建立一套適合分布式研發(fā)模式的軟件開發(fā)能力評估模型,即制造一把衡量軟件開發(fā)能力的標尺,以解決大型信息系統開發(fā)質量持續(xù)改進“做什么、怎么做、何時做、誰來做、做多少”的問題。
2 ?軟件開發(fā)能力評估模型設計
軟件開發(fā)能力評估模型的研究目標是,明確中國航信研發(fā)體系軟件工程能力等級建設標準和實踐指導,既可用于分布式研發(fā)模式的能力評價,也可用于過程改進路線規(guī)劃。模型采用能力等級以及能力積分兩種評價方式,能客觀、科學地評價中國航信研發(fā)體系軟件開發(fā)能力水平。模型框架如圖1所示。
圖1 ?軟件開發(fā)能力評估模型框架
借鑒CMMI模型的分級表示方法[3],分布式軟件開發(fā)能力評估模型劃分了3個漸進的能力等級,設置了9個評價域,每個評價域包含若干個評價項。每個能力等級包含若干評價項。評價項源自中國航信軟件研發(fā)流程庫的研發(fā)管理制度,完整覆蓋了中國航信對軟件研發(fā)活動所規(guī)定的質量要求和標準。同時,評估模型還設置能力積分,對每一個評價項按照其所對應的能力等級設置分值,并按照明確評價標準和引導改進的原則、以及度量的目的設置多個采分點,每個采分點對應軟件工程實踐的達成情況判斷。
2.1 ?評估管理域與評價項
評估模型從管理分布式軟件研發(fā)實踐活動的角度劃分為9大管理域,每個管理域又劃分若干子域,各子域包括多個評價條目。具體內容有:
1)過程管理域。建立并保持更新標準的研發(fā)管理過程,明確定義過程管理者職責,為團隊提供過程指導,識別和解決過程問題,確保過程實施和改進的有效性。設置過程定義、過程管理角色2個子域,從9個工程實踐進行評價項。
2)團隊管理域。制定計劃描述完成工作所需的內容,通過對項目進度的掌握,以便出現偏離時采取適當的糾正措施調整偏差,保證目標的達成;識別、記錄、分析和管理潛在的風險或機會,緩解不利影響,提高實現目標的可能性。設置計劃、跟蹤與監(jiān)控、風險與問題3個管理子域,從12個工程實踐分別進行評價。
3)開發(fā)管理域。確保相關人員對需求的理解保持一致,設計和開發(fā)滿足需求的解決方案,集成滿足功能和質量需求的工作產品。設置需求、設計、編碼3個管理子域,從41個工程實踐分別進行評價。
4)測試管理域。通過測試提高軟件滿足客戶需求的可能性。從9個工程實踐分別進行評價,設置41個評價項。
5)質量管理域。驗證并改進執(zhí)行的過程和所產生的工作產品的質量。設置質量管理、配置管理、安全管理3個子域,從24個工程實踐分別進行評價。
6)工具管理域。反映軟件工程工具對研發(fā)流程實施的支撐程度。從6個工程實踐進行評價,設置6個評價項。
7)改進管理域。定期評估過程的符合性和有效性,分析過程中存在問題的原因,識別改進點,制定一個有效、可持續(xù)的改進計劃;通過對改進過程的掌握,以便出現偏離時采取適當的糾正措施調整偏差,保證改進目標的達成;達成改進目標,改進結果可見、可使用,為組織貢獻過程相關信息或過程資產。設置改進機制、改進計劃制定、改進跟蹤、改進評價4個管理子域,從14個工程實踐進行評價。
8)量化管理域。使用度量和分析方法來實現質量和過程目標。從9個工程實踐進行評價,設置9個評價項。
9)質量數據域。通過評估軟件開發(fā)與測試過程中影響代碼質量的度量指標的健康度,從而綜合評價軟件研發(fā)流程執(zhí)行情況和軟件代碼質量水平。從研發(fā)效能指標庫中動態(tài)抽取9個質量相關結果性度量指標進行評價。
2.2 ?評價模式設計
結合本企業(yè)管理決策與規(guī)劃個性化改進路線的實際需求,分布式軟件開發(fā)能力評估采用定性與定量相結合的評價模式。
2.2.1 ?能力等級評價
評估模型設置能力等級。各管理域的能力等級是一組漸進的等級,從低到高設置3個級別,每個級別都建立在前一個級別的基礎之上、由一組描述軟件工程實踐活動的評價項構成。每個評價項分別歸屬不同能力等級。分別是:
1級(基礎級)。是分布式研發(fā)團隊的基本要求和資格條件。表明在整體管理上具備了分布式研發(fā)模式所要求的基礎的能力,項目管理基本規(guī)范、完整,并對項目成本、進度和質量實施監(jiān)控和控制。
2級(良好級)。是分布式研發(fā)團隊的合格能力要求。表明研發(fā)制度要求落實合規(guī)程度及軟件研發(fā)過程改進提升情況、軟件代碼質量水平和軟件工程工具管理合規(guī)程度達到了良好水平;研發(fā)過程標準化、文檔化和一致化,而且軟件產品的整個生產過程可見、可控。
3級(優(yōu)秀級)。是分布式研發(fā)團隊的高階要求。表明研發(fā)制度要求落行合規(guī)程度及軟件研發(fā)過程改進提升情況、軟件代碼質量水平和軟件工程工具管理合規(guī)程度達到了優(yōu)秀水平,使用統計與其他量化技術來優(yōu)化改進行動,以實現質量與過程目標。
2.2.2 ?能力積分評價
評估模型設置能力積分,總積分700分。9個管理域、20個管理子域的共133個評價項,均按照能力等級設置分值:1級3分、2級5分、3級10分。如表1所示。
2.3 ?評估規(guī)則
2.3.1 ?能力等級評估規(guī)則
評估規(guī)則如表2、表3、表4、表5所示。
2.3.2 ?能力積分評估規(guī)則
評估模型設置能力積分,總積分700分。所有評價項均按照其對應的能力等級設置分值:1級滿分3分、2級滿分5分、3級滿分10分。每個評價項按照能力等級和引導改進的原則設置1個或多個采分點,每個采分點都對應一個或一組軟件工程實踐活動描述,每個軟件工程實踐活動均被抽象為一個量化指標。
由于每個評價項都能對應研發(fā)體系指標庫的一個或一組量化指標,那么根據該指標值所處的研發(fā)基線分位值區(qū)間就可以確定其具體積分分值。每個能力等級分值為該等級所對應的評價項得分之和。如表6所示。
2.4 ?組織級度量庫
組織級度量庫共定義了168個度量指標。涉及項目開發(fā)全過程,包括需求管理、設計、開發(fā)、測試和投產階段。指標類型分為基礎類指標、過程類指標和結果類指標?;A類指標反應項目組現狀,不直接用于評價項目組能力水平;過程類指標一般用于項目或組織執(zhí)行過程的度量,需要在項目執(zhí)行過程中持續(xù)關注,及時發(fā)現、分析過程中出現的偏差;結果類指標通常以“產出”為導向,用于評價項目的最終結果。本體系中基礎類指標19個、過程類指標44個、結果類指標20個和85個度量元。如表7所示。
3 ?分布式開發(fā)能力評估模型的應用
3.1 ?軟件工程能力評估及質量管理平臺
基于分布式開發(fā)能力評估模型,中國航信構建了分布式研發(fā)模式的軟件工程能力評估及質量管理平臺。該平臺由軟件研發(fā)流程庫、優(yōu)秀工程實踐案例庫、軟件工程工具集成系統構建而成,實現軟件研發(fā)過程電子化、自動化、數據化,研發(fā)流程制度資產化、工具化,解決各區(qū)域流程不統一、質量標準不一致的問題,提升分布式研發(fā)體系過程能力。
3.1.1 ?軟件工程工具集成系統
軟件工程工具集成系統對研發(fā)過程管理提供支持,依據中國航信的研發(fā)管理流程,并結合分布式開發(fā)能力評估模型,對軟件工程涉及的各領域,提供解決方案。通過數據標準化技術,對研發(fā)過程中產生數據的多個工具進行全面的數據對接,解決了數據孤島問題,實現數據廣度、精度和規(guī)范度的增強,數據在團隊、個人、區(qū)域等重要質量評估和管理工作場景中廣泛應用,加強了質量評估全面性,各區(qū)域研發(fā)中心的全部軟件項目團隊跟蹤關鍵質量數據,及時發(fā)現及改進各軟件項目存在的質量隱患問題,大量指標的精度從統計級提升到決策級,為管理層直觀地監(jiān)控項目質量和了解項目人員產出提供更準確的支持,實現過程數據規(guī)范化,也有利于數據以更易用、更靈活、自助式的方式向外部開放。整體框架視圖如圖2所示,具體界面如圖3和圖4所示。
3.1.2 ?軟件研發(fā)流程庫和優(yōu)秀工程實踐案例庫
中國航信軟件研發(fā)流程庫參考了IPD(Integrated Product Development)流程[10],側重于定義軟件研發(fā)管理紅線,并依據分布式開發(fā)能力評估模型,不斷優(yōu)化流程制度體系,在達成質量目標和標準上則給予多個推薦的實踐活動,在執(zhí)行上預留了一定的靈活度。如表8所示。
3.2 ?推廣應用成果
本研究在2019年開始在中國航信研發(fā)體系進行試點應用,驗證了技術和方法的可行性,從2021年開始在中國航信研發(fā)體系和各分子公司全面實施,3年的實踐證明其不僅能有效提升大型軟件的交付質量和效率,且其設計原則和內容是指導IT企業(yè)建立和實施研發(fā)質量管理體系的通用解決方案,更能有效縮短CMMI五級認證時間,節(jié)約大量時間和人力成本,具體表現在:
1)從2019年5月開始試用,到2020年4月逐步推廣到航信總部研發(fā)中心56個大型軟件開發(fā)團隊,使中國航信下屬中國民航信息網絡股份有限公司2020年5月以“0不符合項”的優(yōu)異成績通過了業(yè)界公認的最高等級CMMI V2.0五級評估,從評估準備到通過評估比業(yè)界同行速度快50%,節(jié)省大量時間和人力成本。
2)累積對445個軟件的開發(fā)過程異常數據進行分析,完成52份根原因與解決方案報告,實現全部軟件主要資產版本化管理,軟件整體版本資產合規(guī)率達到91.28%。
3)全面開展軟件自動化測試,所有軟件平均自動化執(zhí)行率達到92.92%,實施實例化需求自動化測試前移工作,使36.8%的缺陷檢出提前到開發(fā)階段,降低了缺陷的發(fā)現和修復成本。中國航信核心系統軟件交付產能和交付質量2021年較2019年分別提升14.79%和28.85%。
4 ?結 ?論
本文所論述的評估模型是一個適合大型軟件分布式研發(fā)模式的開發(fā)能力評估模型,是中國航信為建設高質量、高安全性要求的民航信息系統,解決研發(fā)體系資源瓶頸和資源能力問題而開展的一項IT治理工程,注重對大型軟件研發(fā)過程各個環(huán)節(jié)、具體實施過程和改進反饋的評估,具有全程覆蓋性、過程可控性、實施反饋性特點,可以認為是一個提升分布式研發(fā)模式下大型軟件開發(fā)質量的通用解決方案。
參考文獻:
[1] 張松.精益軟件度量—實踐者的觀察與思考 [M].北京:人民郵電出版社,2013.
[2] 許秀梅.企業(yè)研發(fā)能力影響因素分析 [J].財會通訊,2015(11):40-42.
[3] CMMI Institute.CMMI V2.0 [EB/OL].[2023-02-18].https://cmmiinstitute.com.
[4] 劉文紅,馬賢穎,董瑞,等.基于CMMI的軟件工程實施:高級指南 軟件開發(fā)與測試叢書 [M].北京:清華大學出版社,2015.
[5] 曹杰.應用開發(fā)平臺質量管理規(guī)范體系的研究與實踐 [J].金融電子化,2014(4):69-71.
[6] 王強,田濤,劉昕昀.軟件測試能力評定模型研究 [J].計算機技術與發(fā)展,2018,28(8):75-79.
[7] 王斌.敏捷開發(fā)模式在軟件工程項目中的應用 [J].電子技術,2022,51(3):288-289.
[8] 張旭,劉浩馳.基于CMMI的量化管理在項目中的應用與研究 [J].電腦與電信,2016(4):62-65.
[9] 莊曉,張義珍,歐鵬,等.基于CMMI框架下持續(xù)改進的軟件過程體系 [J].計算機應用與軟件,2013,30(1):186-189.
[10] 李文瀚.基于IPD流程的新產品開發(fā)過程分析 [J].華東科技:綜合,2021(6):453.
作者簡介:周鋼(1973—),男,漢族,江西鷹潭人,正高級工程師,博士,研究方向:企業(yè)科技管理、企業(yè)創(chuàng)新、研發(fā)管理、民航旅客服務信息系統。