摘要:隨著航天工程開始推行軟件工程化管理,軟件工程研制越來越趨于成熟,軟件工程化管理已經(jīng)成為工程軟件質(zhì)量的重要保障?;跉w因理論,對軟件工程化管理的影響因素進行分析,從內(nèi)因和外因兩個方面,結(jié)合實踐經(jīng)驗,利用6模式3維度法對軟件工程化管理進行總結(jié)和分析。建議利用外因激勵,結(jié)合內(nèi)因驅(qū)動,逐步推進軟件工程化管理,以更有效地提升軟件工程研制能力,實現(xiàn)工程軟件質(zhì)量穩(wěn)定可靠的目標。
關(guān)鍵詞:軟件工程化管理;歸因理論;軟件研制能力;工程軟件質(zhì)量
0 引言
軟件工程是計算機技術(shù)的一項核心技術(shù),隨著科學技術(shù)的持續(xù)推進,軟件工程向高集成、智能化方向持續(xù)發(fā)展。在我國軟件產(chǎn)業(yè)從手工作坊到工業(yè)化生產(chǎn)的歷程中,我國學者取得了優(yōu)異的成績,形成了自己的軟件技術(shù)知識產(chǎn)權(quán)。自20世紀90年代始,我國航天工程開始推行軟件工程化管理。時至今日,航天軟件研制過程日趨成熟,軟件工程化管理起到重要作用。
軟件工程化管理是把軟件研發(fā)放在“輸入—過程—結(jié)果”這個經(jīng)過策劃的工程“流水線”上,以任務要求為依據(jù),制訂研制計劃,以研發(fā)人員為實施主體,以軟件產(chǎn)品為實施對象,按計劃對要開展軟件研制過程的項目進行管理。
實施軟件研制的過程受很多因素影響,歸因理論是一個對決策影響和問題分析有良好預判的方法,且鮮有將行為學理論和工程行為相結(jié)合的思考。本文利用歸因理論找到影響軟件工程研制的因素,并結(jié)合實踐經(jīng)驗,從內(nèi)因和外因兩個方面進行分析,旨在找到更切實有效的管理方法,提升軟件工程研制能力,讓軟件工程化管理在過程改進中發(fā)揮更大的作用。
1 理論模型
歸因理論由社會心理學家海德于1958年提出。歸因是指人們對自己或他人的行為進行分析,推論這些行為的原因的過程。歸因方式影響后續(xù)行為方式和動機強弱。運用歸因理論分析事件的原因有兩種情況:一是內(nèi)因,二是外因。通常,把成功歸因于內(nèi)因,即因自身能力走向成功;把失敗歸因于外因,即因外部困難導致失敗。這兩種不同的歸因會對問題解決產(chǎn)生重大影響。如果通過提升內(nèi)因解決問題,易形成長久的成功;從外因解決問題,能更快地獲得解決問題的動力,但持久性不足。
分析歸因前,要考慮一些前提影響,包括工程動機、工程要求及工程內(nèi)在驅(qū)動因素。內(nèi)因指影響結(jié)果的內(nèi)在原因。影響軟件工程的內(nèi)因包括:團隊研發(fā)能力的高低、努力的程度及團隊對工程任務的態(tài)度等。外因指影響結(jié)果的外部原因。影響軟件工程的外因包括:項目申請的壓力、項目合同的質(zhì)量要求及項目同期開展數(shù)量增長的現(xiàn)狀等。通過歸因分析,期望得到的結(jié)果是一些對工程行為有指導意義的反饋和建議。根據(jù)以上分析,建立影響軟件工程的歸因模型,如圖1所示。
2 歸因分析
2.1 前提因素
前提因素包括:工程動機、工程要求及工程內(nèi)在驅(qū)動等。
(1)工程動機。主要包括:①項目申請需要;②主觀有提高軟件可靠性的意愿;③有持續(xù)改進的需求。例如,軍工軟件申請單位要求軟件質(zhì)量具備GJB 5000A二級及以上資質(zhì)。
(2)工程要求。主要包括:①軟件質(zhì)量資質(zhì)要求;②項目甲方要求;③項目難度產(chǎn)生的自我要求。例如,承接的某航天軟件任務要求覆蓋GJB 5000A標準。隨著軟件研發(fā)任務越來越多,項目管理水平與任務要求越來越不匹配。
(3)工程內(nèi)在驅(qū)動。改變作坊式研發(fā)模式,在科學管理模式下高效研發(fā)(提高繼承性、穩(wěn)定性、可靠性、快速反應能力、團隊協(xié)作能力),提升軟件工程研發(fā)能力。例如,某科研院所從單一的軟件研發(fā)能力提升到承接更多工程任務的研發(fā)能力。
根據(jù)以上前提因素開展歸因分析。
2.2 內(nèi)因
影響軟件工程的內(nèi)因包括:團隊研發(fā)能力的高低、努力的程度及團隊對工程任務的態(tài)度等。
(1)團隊研發(fā)能力的高低。包括研發(fā)能力和管理能力兩個方面。
1)研發(fā)能力。由于設計師設計水平參差不齊,設計風格不統(tǒng)一,編程習慣和編程語言不一致,軟件兼容性和工程進度經(jīng)常受到影響。軟件工程化管理可以統(tǒng)一設計風格,提高兼容性,控制進度,及時洞察需求或設計缺漏,標準化后的代碼模塊可以極大地提升軟件復用能力,提高研發(fā)效率。團隊的研發(fā)能力是產(chǎn)品保證的核心要素,通過工程化手段彌補研發(fā)能力差距,持續(xù)增強工程能力。研發(fā)能力是短期內(nèi)較難改進的內(nèi)在因素,且該因素較難控制,改進過程需要一定時間。能在短期內(nèi)改進的一般是統(tǒng)一開發(fā)平臺和開發(fā)工具,盡量減少各部件之間的兼容性問題。能力提升過程和工程化推進過程是互補的過程。
2)管理能力。軟件工程涉及多部門、多崗位協(xié)作,由軟件設計人員、開發(fā)人員、測試人員、管理人員相互協(xié)調(diào)配合,以體系為依據(jù),成就工程實現(xiàn)。管理能力是協(xié)作能力的綜合體現(xiàn)。GJB 5000A軟件成熟度模型包含7個過程域,除工程過程,通過策劃、配管、質(zhì)保、需求跟蹤、監(jiān)控、測量等過程域?qū)こ坦芾磉M行約束,才能推動項目按計劃有序?qū)崿F(xiàn)。一般管理過程占研制過程約50%的工作量,科學管理可以極大地提升軟件研發(fā)的過程效率。
某科研單位在2010年前僅具備研發(fā)較小規(guī)模應用軟件的能力,后承接某航天任務,經(jīng)歷從作坊式向系統(tǒng)工程研發(fā)模式的改進過程。設計師的開發(fā)工具從各自選擇到統(tǒng)一開發(fā),減少了接口不兼容、不穩(wěn)定問題;開發(fā)平臺從Windows和Linux等統(tǒng)一為Linux平臺,避免數(shù)據(jù)格式讀取錯誤;對所有研發(fā)人員和管理人員開展多輪工程化培訓,并不斷明確崗位職責,細化工程工作分解結(jié)構(gòu)(WBS)和風險分析,并隨著任務開展,依據(jù)開發(fā)計劃有序進行監(jiān)控和測量。一系列的工作改進形成了規(guī)范的工程活動,面對同時段、多工程任務時能條不紊地開展工作。
(2)努力的程度。主要體現(xiàn)在工程的工作量上,包括技術(shù)工作量和管理工作量。通常,設計師更愿意把工作量投入到技術(shù)實現(xiàn)過程,而忽略了管理工作量。但是長期的工程實踐表明,工程初期如果在估算、策劃、風險和需求過程中投入較多的管理工作量,工程中期和后期更容易開展工程實踐,減少意外發(fā)生。尤其是首次開展軟件工程化推動項目,前期準備工作量較大,經(jīng)常會引起設計師的質(zhì)疑、甚至抵觸情緒。管理水平有限、管理經(jīng)驗不足引發(fā)的工作量會在工程后期成為推動工程開展的阻力。
(3)團隊對工程任務的態(tài)度。包括領(lǐng)導作用力和提升工程能力的決心。項目組面臨日益緊迫的外部壓力,包括項目強度和質(zhì)量要求,如果團隊領(lǐng)導下定決心要通過提升工程化能力解決項目組綜合能力,那么從工具、人員到體系,從人力、物力到資源都需要盡力配合。整個過程成效需要一定時間的檢驗,項目組能否堅持,領(lǐng)導及團隊的態(tài)度起著決定性作用。
2.3 外因
影響軟件工程的外因包括:項目申請的壓力、項目合同的質(zhì)量要求及項目同期開展數(shù)量增長的現(xiàn)狀等。
(1)項目申請的壓力。目前,在軍工項目申請和競標過程中,項目甲方把GJB 5000A標準覆蓋軟件工程化管理作為一項重要指標,甚至部分項目要求不滿足GJB 5000A標準的單位不具備申請軍工軟件項目資格。
(2)項目合同的質(zhì)量要求。全面推進軟件工程化管理是重大項目的質(zhì)量管理要求。國家重大項目的質(zhì)量要求中明確規(guī)定,軟件須遵循相關(guān)工程化管理要求, GJB 5000A二級及以上資質(zhì)是推廣較為廣泛的標準之一。
(3)項目同期開展數(shù)量增長的現(xiàn)狀。隨著工程項目數(shù)量增多,項目復雜性增大,作坊式管理模式已經(jīng)無法應對軟件產(chǎn)品的有效管理和控制要求,必須利用科學有效的軟件管理方法、管理工具(軟件成熟度模型)和組織架構(gòu),協(xié)同科研團組共同參與軟件研制,才能應對日益增加的客戶需求。
3 結(jié)果分析及建議
3.1 結(jié)果分析
根據(jù)上述內(nèi)外因分析,結(jié)合6模式3維度法進行歸因分析。其中,6模式為:能力高低、努力程度、態(tài)度、項目增長現(xiàn)狀、項目壓力和質(zhì)量要求。歸因分析表見表1。
綜合上述內(nèi)外因影響分析,得出以下結(jié)果:
(1)期望。通過軟件工程化管理提高軟件過程改進能力。實現(xiàn)工程研制流程、軟件研發(fā)平臺和工具、研發(fā)人員管理標準化,減少內(nèi)耗,提高效率,促使軟件工程質(zhì)量符合質(zhì)量檢查標準,滿足驗收要求。
(2)行為。合理安排組織架構(gòu),制定嚴謹有效的體系文件,由各崗位人員依據(jù)體系要求,按計劃有序開展研制工作。研發(fā)流程符合工程化理念,開展工業(yè)化生產(chǎn)模式。
(3)反饋。如果從內(nèi)因和外因兩個方面解決能力提升問題,軟件工程化水平應得到正向回饋。實際上,開展軟件工程化管理近10年的結(jié)果,驗證了應對高強度研發(fā)任務仍能有條不紊。該過程始于最初的任務激勵要求,持續(xù)于內(nèi)在需求和努力。由此可見,從內(nèi)因和外因兩方面入手,能夠有效解決軟件工程化管理能力提升問題。
需要注意的是,研發(fā)能力和技術(shù)工作量都是穩(wěn)定、內(nèi)在和不可控的,要改進這兩個因素困難較大。一旦有所提升,也是穩(wěn)定的能力。管理能力、管理工作量、領(lǐng)導作用力和決心都是不穩(wěn)定、內(nèi)在和可控的,要改進這4個因素有一定的困難,作為內(nèi)在因素,如果有所提升,也是核心能力的進步。項目增長現(xiàn)狀、項目壓力和質(zhì)量要求都是穩(wěn)定、外在、不可控的,這3個因素只能接受并作為工程驅(qū)動力來努力改進。
3.2 建議
管理能力能通過培訓和學習提高,相對研發(fā)能力更容易改善,且作為內(nèi)在因素,其是可以持續(xù)的能力。研發(fā)能力短期內(nèi)可以通過統(tǒng)一平臺、統(tǒng)一工具、規(guī)范編程來提高軟件的規(guī)范化和標準化。努力程度和態(tài)度可以通過主觀能動性調(diào)動,尤其領(lǐng)導態(tài)度起到?jīng)Q定性作用。這些內(nèi)在因素的改進可以有效提升團隊軟件工程能力,再結(jié)合外部壓力,就能更快地實現(xiàn)工程目的。通過實際操作也不難發(fā)現(xiàn),外部壓力可以更快地調(diào)動軟件工程化進程。但是,如果要持續(xù)推進過程改進,僅通過外部因素很難真正提高工程能力。
例如,某研究所從應對質(zhì)量檢查和質(zhì)量資質(zhì)認證開始啟動工程化工作,但是僅為了應對檢查補充“證據(jù)”的過程,不僅對工程研制能力提升沒有幫助,而且會出現(xiàn)疲于應對的問題。后續(xù)經(jīng)過試點項目整改,且堅持推進近10年,目前該研究所已經(jīng)將所有軍工軟件全覆蓋GJB 5000A標準,軟件研制過程基本工程化、規(guī)范化,節(jié)省較多人力,明顯提高了開發(fā)效率,能快速應對突發(fā)任務要求。
因此,結(jié)合實際,首先,應明確工程要求和質(zhì)量要求,這是推動工程化的外部動力;其次,從內(nèi)在因素出發(fā),改進研發(fā)能力,提升管理能力,加強領(lǐng)導作用力;最后,努力將設計、工具、繼承性、測試與安全等多項內(nèi)容聯(lián)系在一起。尤其面對同時段、多任務情況時,考慮利用科學的工程管理方法提高產(chǎn)品質(zhì)量和研發(fā)效率。不能僅把關(guān)注度放在單一軟件功能的實現(xiàn)上,而忽略了系統(tǒng)實現(xiàn)對軟件產(chǎn)品的影響。保證軟件研制各環(huán)節(jié)合理可控,實現(xiàn)軟件研發(fā)現(xiàn)代化管理和可持續(xù)性發(fā)展。
4 結(jié)語
軟件工程化管理是滿足任務需求、保障軟件產(chǎn)品質(zhì)量的重要手段,也是解決工程過程問題的依據(jù)?;跉w因理論,從影響軟件工程化管理的內(nèi)因和外因兩方面出發(fā),結(jié)合6模式3維度法對軟件工程化管理進行總結(jié)和分析。研究表明:利用外部因素的壓力能盡快促成工作開始,并調(diào)動工作積極性。同時,要從能力、態(tài)度和努力程度等方面關(guān)注內(nèi)部因素,解決持續(xù)穩(wěn)定的能力,其中努力改進工程管理能力是較易實現(xiàn)且更有核心競爭力的內(nèi)在能力。打造切實可行的軟件工程能力,是保證軟件產(chǎn)品質(zhì)量穩(wěn)定可靠的根本??傊朔?nèi)在困難,認清內(nèi)在需要,結(jié)合外部動力,才能讓軟件工程化管理發(fā)揮最大效能,提高軟件工程能力,保障軟件工程產(chǎn)品質(zhì)量。
參考文獻
[1]楊海成,喬永強.航天型號軟件工程[M].北京:中國宇航出版社,2009.
[2]樂國安,管健.社會心理學[M].2版.北京:中國人民大學出版社,2013.
[3]韓洋.軟件工程的歷史及新發(fā)展[J].東方企業(yè)文化,2010(3):102.
[4]劉暢.淺談計算機軟件工程的發(fā)展趨勢與未來展望[J].科研,2016(4):233.
[5]王章寧.淺析軟件工程的現(xiàn)狀及發(fā)展趨勢[J].軟件,2013(10):136-137.
[6]郭勝男.軟件工程發(fā)展狀況及前瞻[J].電腦迷,2017(1):170.
[7]楊玲華.軟件工程化管理中標準化工作的思考.艦船標準化工程師,2004(6):37-39.
[8]李華,王彥碧.加強軟件工程化管理 提高軍用軟件的可靠性[C].中國電子學會可靠性分會第十三屆學術(shù)年會論文選,2006.
[9]中國人民解放軍總裝備部.軍用軟件研制能力成熟度模型:GJB 5000A—2008[S].2008.
收稿日期:2022-09-05
作者簡介:
王潔(1978—),女,高級工程師,研究方向:軟件工程化管理。