靳同欣 盧華燕
(1.河北經(jīng)貿(mào)大學 河北省石家莊市 050064 2.中科恒運股份有限公司 河北省石家莊市 050000)
信息技術的飛速發(fā)展給人們生活帶來了便利,這使人們對軟件越來越依賴,對軟件工程項目的質(zhì)量要求也更加苛刻,正因如此,高效的軟件工程項目質(zhì)量管理成為了各軟件組織研究的重點,也是軟件組織能夠持續(xù)發(fā)展的根本。通過分析軟件工程項目質(zhì)量管理中存在的問題,提出軟件工程項目應如何進行有效的過程控制,以提高整個軟件工程項目質(zhì)量管理水平和軟件工程項目質(zhì)量。
現(xiàn)階段企業(yè)管理朝著精細化、復雜化的方向發(fā)展,軟件工程項目的質(zhì)量管理也逐漸成為了軟件企業(yè)管理的重中之重,而軟件工程項目的質(zhì)量管理水平也常常成為制約企業(yè)發(fā)展的瓶頸。
著名的質(zhì)量管理專家費根堡姆認為,在制造及傳遞某種合乎特定質(zhì)量標準的產(chǎn)品時,必須配合適當?shù)墓芾砑凹夹g作業(yè)程序,這些程序所組成的結構,稱為質(zhì)量體系[2]。
質(zhì)量體系起源于英國,早在1978年英國就發(fā)布了質(zhì)量管理和質(zhì)量管理體系國家標準BS5750,通過該標準的應用顯著改善了英國企業(yè)的產(chǎn)品質(zhì)量。質(zhì)量體系發(fā)展至今,國外已形成了多種成熟的質(zhì)量模型,如:ISO9000、CMM/CMMI、SPICE 等[3]。
我國根據(jù)實際國情制定了相關的軟件質(zhì)量標準供國內(nèi)企業(yè)參考,如GB/T 16260 《軟件工程 產(chǎn)品和質(zhì)量》、GB/T 9385《計算機軟件需求說明編制指南》、GB/8567《計算機軟件文檔編制規(guī)范》等。同時,我國不少企業(yè)也通過了ISO9000 或CMM/CMMI 等體系的認證。2020年中國大陸通過CMMI 認證的企業(yè)數(shù)量共2864 家企業(yè),相比2019年數(shù)量(2430 家)增加了434 家企業(yè),其中2020年通過Level5 的企業(yè)數(shù)量共454 家,比2019年的348 家增加了106 家企業(yè)。這些數(shù)據(jù)一定程度上可以看出,我國軟件企業(yè)在質(zhì)量方面逐漸在向國際水平靠攏,但另一方面這些通過認證的企業(yè)中相當一部分未能完全按照企業(yè)實際情況結合模型進行質(zhì)量管理體系的貫徹實施,這就導致了軟件質(zhì)量管理缺乏系統(tǒng)性。
高質(zhì)量的軟件需求分析是軟件成功的最有力保障,需求分析是一個循序漸進的過程,因而軟件項目經(jīng)常會出現(xiàn)對用戶需求分析不足的情況,主要體現(xiàn)在以下幾個方面:
(1)在展開軟件開發(fā)工作前期沒有進行深入、有效的市場調(diào)研工作,項目團隊對客戶的需求掌握不清楚,使其研發(fā)的軟件產(chǎn)品與用戶需求不符[4]。
(2)部分軟件企業(yè)缺乏經(jīng)驗,或為了降低項目成本,導致軟件產(chǎn)品性能或安全不符合用戶需求而降低了軟件開發(fā)質(zhì)量[4]。
(3)由于與用戶溝通的需求分析人員一般并非項目開發(fā)人員,開發(fā)人員對需求規(guī)格說明書的理解與用戶的實際需求容易產(chǎn)生偏差[5]。
(4)用戶對自己的實際需求也并不明確,這也是前期需求調(diào)研難以做到充分、有效的原因之一。
軟件的變更貫穿了軟件項目的整個生命周期,因此是否能夠有效的控制變更也成為了軟件質(zhì)量控制的關鍵之一。變更控制不規(guī)范主要表現(xiàn)在三方面:
(1)變更提出不規(guī)范。由于軟件需求提出者與軟件實際使用者常常并不相同,加之部分業(yè)務人員對需求調(diào)研不充分,甚至出現(xiàn)“一拍腦袋”定需求的情況,這導致了在研發(fā)階段,對需求變更提出的隨意性[6]。
(2)變更實施不規(guī)范。變更提出后僅項目經(jīng)理或技術負責人和客戶溝通并實施變更,未經(jīng)業(yè)務需求部門、產(chǎn)品經(jīng)理等相關負責人進行有效的評審/評估,這給整個項目帶來了難以預估的風險。
(3)變更跟蹤不到位。變更實施完成后,項目團隊未對變更進行跟蹤,未及時更新與變更有關的成果物,導致提交的產(chǎn)品無法在成果物中溯源。
軟件工程項目生命周期主要分為計劃、需求分析、設計、編碼、測試、運行與維護等六個階段。國內(nèi)不少企業(yè),尤其是中小型軟件企業(yè)對軟件產(chǎn)品的質(zhì)量管理缺乏過程控制,他們僅關注最終成果物[7],如:軟件項目各里程碑評審流于形式,或不進行評審;編碼階段,代碼完成后未進行有效的自測和代碼走查,導致軟件產(chǎn)品的缺陷直到系統(tǒng)測試階段才被發(fā)現(xiàn),這些都大大增加了軟件產(chǎn)品的質(zhì)量成本。
開發(fā)人員對其所寫的代碼具有主觀認同感、缺乏測試經(jīng)驗和方法,常使開發(fā)人員更多的將軟件質(zhì)量保證看成是軟件測試人員的職責,更傾向于由測試人員發(fā)現(xiàn)問題,他們進行解決。
軟件測試流程不嚴謹,一方面因測試工程師水平不同而使測試設計的側重點不同,另一方面測試過程不可控,因軟件測試過程缺陷數(shù)量和缺陷修復的難易程度未知,導致軟件工程師對缺陷修復時間不確定,這導致測試進度與測試計劃容易產(chǎn)生偏差;另外,軟件測試階段的工期因前期需求不明確或設計不合理等造成的返工而不得不壓縮。
無論是國際上的ISO 質(zhì)量管理體系、CMM/CMMI 模型還是我國制定的國家標準,組織應靈活運用,切忌照搬照抄標準、模型。建立一套符合組織發(fā)展的質(zhì)量管理體系、標準,一方面可以通過引入專業(yè)質(zhì)量管理人員,對組織的質(zhì)量管理進行指引;另一方面目前市場上存在眾多的咨詢服務機構,組織可以根據(jù)需要選擇性引入,使其對組織進行質(zhì)量管理方面的專業(yè)指導。
需求調(diào)研人員一方面對用戶的實際業(yè)務要從專業(yè)的角度進行考慮并予以清晰、準確的描述,在專業(yè)站位上要與需求提出者在同一水平;另一方面需求調(diào)研人員需具有很強的溝通能力,無論在何種情形下都能夠和用戶進行有效、充分的溝通,并引導用戶對需求進行明確描述。
在用戶對自己需求不明確或需求分析人員對需求表述存在歧義時,設計和開發(fā)人員應在工作過程中對需求規(guī)格說明書進行嚴格把關,有任何疑問應及時與需求分析人員甚至用戶進行溝通、確認。
結合組織實際,建立從變更申請的提交,到接收、評估、決策直至項目結項的規(guī)范的變更控制流程。在變更提交階段進行相關變更請求的記錄,并根據(jù)變更起源及目的,對變更進行分類;在變更接收環(huán)節(jié),明確變更接收人、處理變更請求的負責人,并確認變更請求;項目組在收到變更請求后,應對變更可能帶來的影響進行評估,包括對內(nèi)部和外部的影響;根據(jù)評估結果做出變更決策,即:是批準變更還是拒絕變更,又或者是推遲變更至下一版本,無論做出何種變更決策,都需要將決策傳達至項目所有相關干系人,并對變更進行記錄[8]。
如果能夠控制好軟件生命周期各階段的質(zhì)量,那么也就控制了整個軟件生命周期的質(zhì)量,一方面要求軟件生命周期每一階段的負責人員都要有“不接受不良品、不制造不良品、不流出不良品”的質(zhì)量意識;另一方面每一階段完成后,組織評審會議對重要成果物進行合理、有效的評審,必要時邀請用戶參加,以盡早發(fā)現(xiàn)和排除歧義和錯誤,防止將問題遺留到后續(xù)階段。比如需求分析完成后,邀請用戶、設計人員、開發(fā)人員、測試人員、經(jīng)驗豐富的需求人員等參加需求評審會議,對需求規(guī)格說明書進行詳盡的評審。
軟件質(zhì)量是在開發(fā)過程中逐漸構建起來的,軟件質(zhì)量管理應貫穿軟件整個生命周期。軟件測試是通過執(zhí)行軟件來發(fā)現(xiàn)缺陷,它是控制軟件質(zhì)量的重要手段和關鍵活動,也是軟件質(zhì)量控制的最后一道關卡。若將所有問題都遺留到測試階段發(fā)現(xiàn)、解決,無疑會大大增加軟件的質(zhì)量成本。
為保證測試工作順利進行,必須成立一個獨立于開發(fā)小組的測試小組,以排除測試期間開發(fā)人員可能遇到的心理上的“利益沖突”。針對測試的設計重點出現(xiàn)偏離的情況,可安排一名測試人員在其完成測試后,由經(jīng)驗豐富的測試人員、項目設計人員對測試設計進行評審,盡量使測試設計能夠全面覆蓋軟件需求和設計;針對測試過程不可控的情況,在項目前期制定開發(fā)計劃時,測試負責人根據(jù)前期資料制定對應的測試計劃,并在測試過程中及時對比計劃與實際進度。當進度出現(xiàn)延期風險時,可采用快速跟進或申請調(diào)整資源的方法及時調(diào)整進度。
軟件工程項目終將落地于實踐,越來越多的軟件組織愿意接受審核,并通過審核獲取相關資質(zhì)證書,只有在統(tǒng)一的體系、標準的管理下才能促使軟件工程的質(zhì)量得到提高[9]。組織首先應明確質(zhì)量方針和質(zhì)量目標,并根據(jù)組織的實際架構,將質(zhì)量目標進行逐層分解,使組織中每個人都明確自己的質(zhì)量責任與質(zhì)量目標。其次結合當前國內(nèi)外相關體系、標準,建立起一套與自身實際相契合的統(tǒng)一的質(zhì)量管理體系,并使體系得到有效運行。
高效的軟件工程項目質(zhì)量管理是軟件組織能夠良性、持續(xù)發(fā)展的根本?;谄鹾辖M織自身發(fā)展的統(tǒng)一質(zhì)量管理體系建立的基礎上,組織對軟件工程項目根據(jù)軟件工程項目生命周期的特點進行分階段質(zhì)量控制[10-11],每一階段開始前,根據(jù)合同和需求擬定該階段質(zhì)量控制計劃,在執(zhí)行過程中嚴格按質(zhì)量計劃執(zhí)行;在每一階段結束之后進行該階段總結,以對該階段所有成果物的質(zhì)量管理情況進行復盤。
加強軟件工程項目的質(zhì)量管理已成為促進軟件企業(yè)發(fā)展的必要工作,高效的質(zhì)量管理能夠有效解決項目過程中存在的管理不規(guī)范、需求不明確等問題,但軟件工程項目質(zhì)量管理追求質(zhì)量的最優(yōu)策劃,而非越大/嚴格越好,質(zhì)量管理的程度需要有上限,同時也要考慮組織的內(nèi)外部環(huán)境因素[12]。為避免出現(xiàn)低質(zhì)量的軟件產(chǎn)品,軟件企業(yè)一方面應嚴格按照相關質(zhì)量體系、標準執(zhí)行,甚至在一定時期可采取強制措施保證軟件工程項目的質(zhì)量;另一方面需要綜合考慮企業(yè)內(nèi)外部環(huán)境的影響,對軟件工程項目質(zhì)量管理進行最優(yōu)策劃、有效控制、落地執(zhí)行,企業(yè)才能夠得到良性、持續(xù)的發(fā)展。