摘要:在探討項目績效與過程改進關系基礎上,分析了傳統的模型驅動的軟件過程改進模型的不足,論述了項目績效驅動的過程改進的理論框架。為實現該框架,建立了面向項目績效的過程改進決策支持系統邏輯模型,并提出了持續績效評價及過程改進的軟件項目開發策略。
關鍵詞:軟件項目績效; 軟件過程改進; 決策支持系統
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2008)06-1720-04
0引言
多年來,軟件危機一直困擾著全球信息化的進程,國內外許多專家學者試圖從不同的角度研究解決問題的理論和方法。從管理的角度來看,軟件開發項目常常處于一種缺乏完整計劃、缺乏對整個開發過程的理解和把握,缺少一個定義良好的管理框架[1]。軟件開發最根本的問題是管理而非技術上的,管理是影響軟件項目的全過程主要因素,而技術只影響項目的局部[2]。由于軟件項目的成功不只取決于技術,人們在狹義技術下的諸多努力未取得相應成效后,不得不轉而求助于管理技術[3]。20世紀80年代,W.Edwards Deming和J.M.Juran博士提出通過改進人們的工作方法來提高產品的質量。1987年卡內基·梅隆大學軟件工程研究所(CMU/SEI)的Watts S.Humphrey等人進行了改進軟件組織中的過程意識和過程能力的研究,認為軟件過程是一個受人和技術約束的過程,項目績效水平的高低取決于軟件組織的過程能力。過程改進包括過程定義、過程度量、過程改進等三個環節。由于軟件開發工作的不可視性,又是一個受技術發展、人員流動、市場變化等因素影響的高度動態過程,從而增加了過程定義的復雜性。傳統的過程度量方法只是給出了建立度量的基本方法和步驟以及一些基本的原則,缺少建立度量的形式化支持和度量過程的算法支持,無法實現度量過程重復性和自我優化改進[4];現有的過程改進模型考慮的目標因素過于單一(如質量、時間、成本等),缺乏對軟件項目績效的整體目標的研究,同時忽略了項目本身的特征(如復雜程度、技術難度等)、項目組織的不同狀況和過程改進的持續性和漸進性方面的內容。因此,過程改進很難達到預期的效果。
本文首先界定了軟件項目績效的內涵,分析了軟件項目績效與過程改進的關系,建立了績效驅動的軟件項目過程改進模型;其次,根據軟件項目組織的狀態、項目的本身特征以及相應的算法討論了項目績效預測以及基于已完成項目相似案例的過程改進模型的機理,建立了基于績效評估的過程改進決策支持系統的邏輯模型,提出了持續改進的過程改進策略,旨在為改善軟件項目績效提供有益的嘗試。
1軟件項目績效內涵
績效本意是說明一項活動或行為的好壞,績效水平的度量要有一個比較對象,且績效與產出或結果的多少有關[2],Kast[5]認為績效應當包括效果、效率及組織成員的滿意度;從組織角度來看,績效還應包括組織創新和減少沖突[6]。軟件項目績效概念源于企業績效,但因項目中的不同關系人(stakeholder)其定義也不同。Wallace等人[7]認為軟件項目績效包括產品績效和過程績效;產品績效是指項目開發的最終軟件產品是否成功,用七個指標項測度產品績效:軟件的可靠性、易維護性、系統功能和用戶需求的吻合程度、用戶的滿意度、響應時間、易用性、整體質量水平;過程績效是指開發過程本身是否成功,用時間、預算兩個指標測度過程績效。Wallace認為只要組織在既定的時間、預算內完成了預定質量的軟件,則項目績效水平就很高。Na等人[8]把軟件項目績效按可測性分為主觀績效和客觀績效。主觀績效包括產品績效和過程績效。產品績效是組織完成的軟件項目的質量、性能等的反映,屬于產品自身特征范疇;過程績效是項目開發過程的質量反應,主要包括通過項目開發過程、組織獲得的知識、團隊關系的協調能力和組織對資源的控制能力。客觀績效包括成本、時間。主觀績效是績效評價人的主觀觀點的反應,受特定的評價人員主觀判斷和認知能力的影響,難以標準化;客觀績效易于收集數據和評測。Na定義不僅概括了Wallace定義的全部內容,同時還提出了軟件組織在完成一個項目后,該組織掌握了項目的開發經驗、組織成員獲得知識、組織的開發水平應有所提高,并把這些定義為過程績效。Na的軟件項目績效定義無論從軟件項目評估的主體還是客體來看,都要比Wallace 的更為準確、更為全面地反映了項目開發過程對組織和項目績效的影響。
從項目的干系人角度研究績效,用戶關注軟件的適用性和適應性。軟件項目的開發人員關注的是項目的效率性,即項目能否在預定的時間、成本預算內完成預期質量的軟件產品;而軟件組織管理者更加注重進度控制、團隊溝通和組織知識獲取的能力[9]。
綜上所述,軟件項目績效構成如表1所示,軟件項目績效來源于軟件的開發過程。因此,過程的質量的優劣直接影響項目績效的整體水平。
2面向績效評價的軟件項目過程改進模型
過程是軟件組織利用相應的技術和一定的管理手段,完成項目最終目標的一系列緊密聯系活動的集合。軟件過程改進從組織層面分為三級:組織過程改進、團隊過程改進、個體軟件過程改進;從管理層面又分為管理過程改進、工程過程改進和支持過程改進。組織過程包括管理過程、改進過程和培訓過程;軟件工程過程改進包括定義過程、開發過程、維護過程等;支持過程包括文檔的編制過程、配置的管理過程、質量保證過程、驗證過程、評審過程等。組織過程改進模型主要包括IDEAL、PCDA、ICASE等模型;團隊過程和個體軟件過程改進以SEI的TSP和PSP為主。這些改進模型提供了整套的組織、團隊、個人改進的模式與方法。
管理過程改進主要是開發和維護一個可用的軟件過程資源集,包括開發組織標準軟件過程、提供相應的過程資源等內容,以知識獲取和積累的方式使組織長期受益。支持過程改進包括評審過程、培訓過程、度量過程等,適應管理過程和工程過程的改進并為其提供支持;軟件工程過程改進執行管理過程改進的內容,整合支持過程的資源,修正并執行一個更加完整準確定義的軟件過程。目前,軟件組織的過程改進基本上是屬于模型驅動,即組織首先選取一個質量標準(如CMMI、ISO9000、ISO15504、ISO9126等)和一個改進模型(IDEAL、PCDA、ICASE和DMAIC等),根據模型的步驟實施過程改進。軟件組織只是生搬硬套地改進模型和質量標準,認為只要按照既定的模型改進,組織就一定能夠受益。然而,模型驅動方式的改進只是提供了過程的改進方法,至于過程改進應達到的具體目標、具體改進組織的哪些環節、過程關鍵成功因素、如何改進、何時改進、軟件組織卻顯得很茫然,許的組織投入很大的精力用于過程改進卻收效甚微,沒有達到當初預想的效果。最新資料顯示:即使現在的美國在開發大型軟件項目的失敗率與5年前或15年前,甚至25年前相比都沒有明顯的改善[10]。
軟件過程的改進對項目績效有著明顯的影響[11],過程改進的目的是規范軟件過程,使組織在有限的時間、成本內能夠高效地產出符合用戶要求的軟件產品,并獲得知識技能為目的。因此根據前述項目績效的定義,筆者認為:過程改進最終目的是提高項目的整體績效水平,那么過程改進的依據應以項目績效改善為核心——既績效驅動軟件項目過程改進。過程改進:a)由用戶和軟件組織商定項目的期望績效;b)按照軟件組織當前狀態、項目的自身特征應用數學模型預測項目績效(簡稱預測績效);c)測定項目的期望績效和預測績效的適配程度,項目預測績效能夠達到項目期望績效,則說明當前軟件組織狀況滿足項目的需要,不需要耗費過大的成本進行過程改進,如達不到期望績效,通過過程改進決策支持系統生成項目過程改進的規則策略,根據SPI理論對過程實施改進;d)項目每完成一個階段,都應用決策支持系統對當前階段進行評價,對下一個階段績效進行評估,生成新的改進策略,以免產生改進偏差。本文構造的績效驅動下的過程改進模型如圖1所示。
3構建基于項目績效評估的過程改進決策支持系統
軟件項目過程改進決策是半結構化決策問題。反映項目客觀績效的時間和成本是可以度量、易于計算的,其結構化良好;主觀績效則是通過一系列的主觀指標體系,經專家評測后,應用一定的數學模型進行計算而獲得項目的績效結果,屬于非結構化決策問題;過程改進規則策略的生成也屬于非結構化問題。因此,構建面向績效評價的軟件項目過程改進決策支持系統是可行的。其邏輯模型如圖2所示。
3.1數據庫系統的建立
為保證系統的靈活性,數據庫設計時要結合項目績效評測實際情況對系統中涉及的數據進行正規化分析,設計要符合三范式,在保證數據完整性及一致性的基礎上,充分考慮數據之間的邏輯關系。
1)軟件組織狀態、項目特征及項目績效指標體系的構建
項目的績效同軟件組織狀態和項目特征有著密不可分的關系,軟件組織狀態水平較高,其所開發的軟件績效水平也較高,軟件項目自身的難易程度、復雜程度也是影項目績效響的關鍵因素;另一方面,不同水平的組織開發同一項目其績效也是不同的,而同一水平的組織開發不同的項目,其績效也是不一樣的[12]。當然隨著組織開發的項目數目增多,必然積累豐富的經驗,其績效水平也必然得到提高。由于CMMI是專門用于軟件項目過程改進的模型,本文以其量表作為軟件組織狀態水平的評價指標體系。項目自身特征指標體系可以通過實證的方式識別,因為不同的項目其特征或多或少有些差異。因此,無論對于軟件組織還是項目的未來用戶,都應對項目的特征有比較充分的了解,以便對項目的績效預期更加合理。軟件項目績效評價指標體系可以采用查閱文獻、專家訪談的方式進行確定。
2)基礎數據庫的建立
基礎數據庫包括系統初始數據、軟件組織狀態數據、項目特征數據、項目績效預測數據、項目期望績效數據等內容。
3)已完成軟件項目數據庫的建立
軟件過程改進的本質是利用組織在已完成項目經驗的基礎上,對當前開發項目的過程進行分析改進。過去的研究沒有注重軟件項目開發過程數據的實時收集,過程改進大多憑組織成員的感性認識進行的,偏差較大。筆者認為,在項目研發過程中按項目開發階段實時分析記錄整理當時的軟件組織狀態、項目特征、已完成項目績效等方面的真實數據,尤其是項目過程改進的數據,并以規范的格式建立已完成軟件項目數據庫,為新開發類似軟件項目的過程改進提供依據,從而提高軟件項目績效的整體水平。
4)數據庫管理系統(DBMS)
DBMS實現對數據庫結構進行增、刪、改的維護功能等,以及實現模型對數據的讀取、存儲、修改及刪除的功能。模型庫系統的設計主要包括模型庫的組織結構、模型庫管理系統的功能及模型庫構建語言等方面的設計和實現。對一個具體的模型來說,大體分三部分:輸入數據、輸出數據、模型的算法。模型庫是決策支持系統的核心部件,其質量的好壞直接影響系統的效果。
5)項目績效預測模型的選擇
軟件項目績效精確預測對于組織準確制訂時間、費用計劃以及過程改進來說都是非常重要的[13]。由于預測績效涉及軟件組織、項目自身特征等因素,并且大多是主觀的指標體系,可用于項目績效評估的方法很多,如層次分析法(AHP)、人工神經網絡(ANN)、模糊數學、模糊優選法、數據包絡分析法(DEA)、灰色關聯度評估法、遺傳算法以及多種算法相互融合的綜合算法。由于評價模型各有優缺點,采用不同的模型得到的項目績效的評價結果也不盡相同。決策者根據軟件項目特征選擇模型,也可采用多種模型計算結果相互補充的辦法,糾正各模型在項目預測績效結果上的偏差。
6)已完成相似項目的搜索模型
相似案例搜索模型大體分為兩類:a)最相鄰近法。通過專家評價、概率分析法、層次分析法等方法確定事例的特征權值,引入了專家的主觀意見進行評測,但這種方法的主要問題是過于依靠專家的知識,不同的專家組其效果也不同;b)采用人工智能(AI)方法(如遺傳算法、粒子群算法、蟻群算法等)進行權值的訓練,可以直接利用已完成項目數據對權值進行優化,實現權值的自動獲取。決策支持系統模型庫可以包含上述各種模型,根據項目預測績效和期望績效的對比、組織狀態、項目特征,應用模型或綜合模型在已完成軟件項目數據庫中搜索和當前軟件項目特征相似的案例;充分考慮不同模型的搜索結果,以準確實現對已有經驗的重用,并生成過程改進的規則策略。同時把當前項目過程改進的實際情況、各模型預測的結果的準確程度錄入到已完成項目數據庫,逐漸形成對模型的評價,為系統的完善和進一步推廣應用奠定基礎。
7)模型庫管理系統(MBMS)
MBMS包括模型的建立、調用、管理等功能。模型建立包括模型定義、模型的輸入/輸出、模型字典及算法等內容;模型調用即根據評價者提出的問題調用系統中已有的基本模型。模型管理則完成模型的增、刪、查、改等功能;另外MBMS還應當具有動態建模的功能。
3.2方法庫的建立
方法是實現模型的基本算法,不同的軟件項目績效評測需要采用不同的模型解決,不同的模型需要調用不同的算法。方法庫管理系統應完成方法的增、刪、查、改等功能。
3.3人機對話單元
人機對話單元即輸入/輸出的界面,是人機交互的窗口,識別并解答用戶提出的問題。軟件項目的績效預測、相似案例的搜索以及過程改進規則的生成,要求對話單元除了具備輸出、輸入的交互功能,還應具有糾錯、容錯能力及靈活的會話方式,并支持不同決策者的不同決策風格。
3.4 決策支持系統的工作機理
1)項目期望績效估計
由用戶、軟件組織及相關專家根據項目的規劃估計項目的期望績效,作為過程改進的主要依據。
2)項目績效的預測
根據人機對話單元錄入軟件組織狀態、項目本身的特征等數據,決策者根據自己的學識、偏好選擇求解問題的模型,并匹配算法、變量和數據等,預測項目的績效。
3)項目相似案例的搜索及過程改進規則策略的生成
將軟件組織狀態、項目本身的特征、項目預測績效、期望績效以及管理者的問題錄入到人機對話單元,并向MBMS發出相似案例搜索模型調用請求。MBMS解釋決策者的請求,并匹配相應的模型,返回對話單元; 決策者可根據自己的主觀判斷及模型的要求向方法庫發出算法請求,并可適當地調整相關系數;算法與模型結合后向數據庫提出數據請求,應用相似案例搜索模型在已完成軟件項目數據庫中檢索出與當前項目相似的案例或案例集,從中選擇部分相似度較高的案例進行綜合分析比較。最后選擇項目預測績效滿足項目期望績效的案例來作為過程改進方案,并生成過程改進規則策略,根據前述的過程改進模型應用改進策略進行過程改進。
4)持續的過程改進策略
由于軟件項目開發過程的高度動態性,項目開發的每個階段結束后,組織的狀態和項目特征都會發生變化,前一階段的預測績效水平和改進策略已不能反應當前狀況。因此,重新進行績效評估,分析本階段的不足,重復上述決策支持過程,生成項目下一個環節新的過程改進策略,從而實現持續過程改進,直到軟件項
目開發完成為止。
4結束語
在分析軟件項目績效與過程改進關系基礎上,提出一種新的面向績效評價的過程改進框架和決策支持系統的模型,并給出了具體的構建與實施步驟。與過去的被動式模型驅動的過程改進方法相比,項目績效驅動的過程改進方法注重績效在組織過程改進中的核心作用,易于得到項目干系人的認可和參與;基于已完成項目的多模型績效評價及過程改進策略,使模型的評價結果相互校正、補充,更加全面、客觀地反映項目績效的整體水平,使生成的過程改進策略更符合軟件項目開發的實際情況,避免了單一模型以偏概全的缺點。項目各階段持續的績效評價及過程改進策略解決了軟件組織和項目屬性動態變化問題,最終達到改善項目績效、提高項目成功率的目的。
參考文獻:
[1]IBBS C W,KWAK Y H. Assessing project management maturity[J].Project Management Journal,2000,31(1): 32-43.
[2]PAULK M S,CURTIS B, CHRISSIS M B, et al.Capability maturity model, version 1.1[J]. IEEE Software,1993,10(4):18-27.
[3]方德英,李敏強. 信息系統項目監理機制的經濟學分析[J]. 管理工程學報, 2003,17(2): 98-102.
[4]王青,李明樹, 劉霞. 一種支持軟件過程控制和改進的主動度量模型[J]. 軟件學報, 2005,16(3): 407-419.
[5]KAST F E.Organization and management[M]. New York: McGraw-Hil Book Company,1985.
[6]SAUNDERS C,GEBELT M,HU Qing. Achieving success in information systems outsourcing[J].California Management Review,1997,39(5): 63-79.
[7]WALLACE L, KEIL M, PAI A. Understanding software project risk: a cluster analysis[J].Information Management, 2004,42(5):115-125.
[8]NA K S, SIMPSON J T,LI Xiao-tong,et al..Software development risk and project performance measurement: evidence in Korea[J].Journal of Systems and Software,2006,23(6):1-10.
[9]JIANG J J,KIEIN G,HWANG H G, et al..An exploration of the relationship between software development process maturity and project performance[J].Information Management, 2004,41(8): 279-288.
[10]蔣國瑞. IT項目管理[M]. 北京: 電子工業出版社,2006.
[11]MARK M. Longitudiao analysis of project management maturity[J].Project Management Journal,2006,28(3):62-73.
[12]PENNYPACKER J S,GRANT K P.Project managenment maturity:an assessment of project management capabilities among selected industries[J]. IEEE Trans on EngineeringManagement,
2006,53(1):59-68.
[13]MITCHELL L V.Knowledge integration and information technology project performance[J]. MIS Quarterly,2006,36(4):919-939.
[14]CARROLL S J,SCHNEIER C E.Performance appraisal and review systems[M]. Scoot: Foresman and Company,1982.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文