時間:2023-03-30 11:39:33
導言:作為寫作愛好者,不可錯過為您精心挑選的10篇軟件項目論文,它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內容能為您提供靈感和參考。
軟件項目經理或管理人員對項目管理的知識體系沒有全面的了解和把握,在實際工作中不能很好地指導項目管理實踐,依靠個人原有的知識技能對項目進行隨意、盲目的工作管理。在軟件企業中,項目經理往往是在技術上能獨當一面的指揮官,但是他們在項目管理方面知識比較缺乏,對項目管理認識程度不足,導致出現管理混亂現象。一些軟件項目管理人員對項目沒有一個整體的把握,對總個項目沒有系統的認識,不能很全面的做出總體計劃、階段計劃。由于項目中有許多不確定的因素存在,項目經理沒有系統分析各個不確定因素的內在聯系,考慮不周全,做計劃是走過場的形式,做出的計劃不能適應情況的變化,造成計劃與控制管理完全是脫節,銜接不上從而無法進行有效的控制和管理。計劃跟不上變化是軟件項目管理中常見現象。
1.2管理思想和理念沒有得到落實,風險管理不成熟
管理思想和管理理念對軟件項目管理起著引導作用,對軟件項目管理理論上的不足將可能導致軟件項目管理的失敗。我國軟件項目管理發展較晚,管理人員在管理中多依靠自身的實踐經驗去開展工作,而對管理理論較為缺乏。部分項目經理不能總體上去管理整個項目,不能充分認識到自己是一個管理者,造成項目管理中工作任務分工不明確、資源浪費現象。從我國當前軟件企業中,項目經理大多技術方面的知識扎實,但是項目管理知識、管理技能以及必備的素質都比較缺乏。特別是對軟件項目管理中的風險管理認識較為膚淺,有待進一步的學習和提高。由于項目管理人員在項目管理實踐中缺乏高效的管理思想,缺乏有效的方式和技巧,項目工作人員之間的團體協作能力較弱,資源整合優勢難以有效發揮。
1.3缺乏有效溝通
在軟件項目管理中,溝通是維持項目進行的重要條件。若在一些重要信息方面缺乏有效的溝通,將可能導致項目管理出現較多障礙。從當前我國軟件企業項目管理的實踐來看,普遍存在溝通機制不完善,渠道不夠通暢,各相關人員之間在項目管理中制定計劃、意見反饋、情況通報、技術成果等等方面溝通不足,容易造成重復勞動,效率低下等情況發生,有的甚至造成的完全可以節省的損失。在軟件項目管理中項目經理需要花費大量的時間來溝通和協調,而且要善于溝通,提高溝通意識和效率。
2軟件項目管理發展對策
2.1提高項目管理人員計劃意識,優化人力資源配置
軟件項目管理人員在工作中要以身作則,真正發揮帶頭作用。在工作中要及時制定符合工作需要的工作計劃并認真落實。計劃要具有一定的前瞻性,在客觀條件發生變換的時候要不斷完善細化。軟件更新速度較快,企業要在軟件行業發展中搶占先機,要求管理人員要重視計劃的制定,不斷完善和優化工作流程。在軟件項目管理中,要不斷優化人力資源配置,使得每位員工能夠對自身職責有明確的認識,工作責任意識明確,職員之間能夠做到優勢互補。管理人員要具備強烈的責任心和團隊意識,不斷發現和培養優秀人才。
2.2樹立風險管理理念,強化項目管理培訓力度
我們要加強軟件項目管理人員對項目管理知識學習,各方面都能充分認識到項目管理的重要性和必要性,讓項目經理重視對項目管理的知識的學習和一些常用工具和方法使用。不斷樹立項目管理人員風險管理理念,充分意識到風險管理的重要性,經過充分分析、預測、評估可能的風險,積極探索應對風險的策略。對計劃書中風險管理要具有針對性和具體性,真正發揮風險管理在防范風險中的作用。不斷通過項目管理培訓來強化管理人員實踐能力和知識技能。只有具備管理知識和管理經驗的人員才能擔任管理人員和技術人員,大幅提高項目管理水平。
2.3加強溝通,從整體上對軟件項目管理進行把握
軟件項目管理有效開展離不開有效的溝通,這要求要不斷提高溝通意識,在企業中制定切實可行的溝通機制,使得各項企業政策能夠上下通達。在項目管理溝通方式上要不拘一格,實現溝通方式的多樣化,如書面溝通、口頭溝通,提高溝通的有效性。對于因溝通不暢導致的損失要明確責任歸屬,確保企業重要內容信息的有效傳達。軟件項目管理人員要從整體上對軟件項目管理進行把握,綜合考慮各因素,作出全面的總體計劃、階段計劃。同時對于具體問題也要預留空間,確保管理計劃能夠緊跟軟件管理需要。
需求管理對軟件項目能否最終實現產生至關重要的影響。任何的軟件項目都必須進行合理的、細致的、一致的需求管理,只有這樣才能制定正確合理的軟件開發計劃,軟件項目才能順利地開發完成。
2、溝通與協作
軟件項目管理中的溝通與協作是指信息的交流,是使信息發揮積極作用和達到目標的手段;協作是指和諧地在一起工作的活動。溝通技術可分分四類:(1)正式書面溝通,包括項目文檔和備忘錄、項目里程碑和交貨時間表、需求變更和錯誤跟蹤規程、數據字典、系統分析模型(用例圖等);(2)正式口頭溝通,包括狀態審查會、需求評審會、設計評審會、代碼評審會、用戶測試,項目定期例會等;(3)非正式口頭溝通,包括小組碰頭會、同行討論、與直屬業務領導討論等;(4)電子溝通,包括電子郵件、內部BBS等。協作技術包括資源合理配置、開發步驟有序化、工作目標一致化、提高關心程度、信息共享等。
3、風險管理
軟件項目風險管理是指對在軟件開發過程中所遇到的預算和進度等方面的問題進行分析,尋求風險應對方法,做好風險管理計劃。
針對軟件項目中的風險管理問題,不少專家、組織提出了自己的風險管理模型。常見的主要風險管理模型如下。
1.SEI的連續風險管理模型(CRM)。SEICRM模型的風險管理原則是不斷地評估可能造成惡劣后果的因素;決定最迫切需要處理的風險;實現控制風險的策略;評測并確保風險策略實施的有效性。CRM模型要求在項目生命期的所有階段都關注風險識別和管理,它將風險管理劃分為五個步驟:風險識別、分析、計劃、跟蹤、控制。
2.BarryBoehm模型。Boehm模型的思想核心是:10大風險因素列表。針對每個風險因素,都給出了一系列的風險管理策略。在實際操作時,Boehm以10大風險列表為依據,總結當前項目具體的風險因素,評估后進行計劃和實施,在下一次定期召開的會議上再對這10大風險因素的解決情況進行總結,產生新的10大風險因素表,依此類推。Boehm模型的基本形式可描述為:RE=P(UO)3L(UO),其中RE表示風險或者風險所造成的影響;P(UO)表示令人不滿意的結果所發生的概率;L(UO)表示糟糕的結果會產生的破壞性的程度。
3.軟件工程風險模型(SERIM).SERIM模型要求從技術和商業兩個角度對軟件風險管理進行剖析,考慮的問題涉及開銷、進度、技術性能等。它還提供了一些指標和模型來估量和預測風險,由于這些數據來源于大量的實際經驗,因此具有很強的說服力。
五、軟件項目管理技術
1.CMM。CMM是美國卡納基梅隆大學軟件工程研究所(CMU/SEI)提出的軟件研發項目管理的一系列方法,它基于組織對關鍵過程域的支持,定義了軟件過程成熟度的五個級別。級別1(初始級)描述了不成熟,或者說是未定義過程的組織。級別2(可重復級),級別3(已定義級),級別4(已管理級)和級別5(優化級)分別描述了軟件過程成熟度級別遞增的組織。和這些級別相關的KPA是:級別2:需求管理,軟件項目計劃,軟件項目跟蹤和監控,軟件子合同管理,軟件質量保證,軟件配置管理。級別3:組織級過程焦點,組織級過程定義,培訓大綱,集成軟件管理,軟件產品工程,組間協調,同行評審。級別4:定量過程管理,軟件質量管理。級別5:缺陷預防,技術更新管理,過程更改管理。
2.CMMI。CMMI被看作是把各種CMM集成為一個系列的模型中。CMMI的基礎源模型包括:軟件CMM2.0版(草稿C),EIA-731系統工程,以及IPDCMM(IPD)0.98a版。CMMI也描述了5個不同的成熟度級別:級別1(初始級)代表了以不可預測結果為特征的過程成熟度。過程包括了一些特別的方法、符號、工作和反應管理,成功主要取決于團隊的技能。級別2(已管理級)代表了以可重復項目執行為特征的過程成熟度。組織使用基本紀律進行需求管理、項目計劃、項目監督和控制、供應商協議管理、產品和過程質量保證、配置管理、以及度量和分析。
3.PSP。PSP(PersonalSoftwareProcess,個體軟件過程)是由CMU/SEI開發出來的,它的推出在軟件工程界引起了極大的轟動,可以說是由定向軟件工程走向定量軟件工程的一個標志。PSP為基于個體和小型群組軟件過程的優化提供了具體而有效的途徑,例如如何制訂計劃,如何控制質量,如何與其他人相互協作等等。在軟件設計階段,PSP的著眼點在于軟件缺陷的預防,其具體辦法是強化設計約束準則,而不是設計方法的選擇。因此,PSP保障軟件產品質量的一個重要途徑是提高設計質量。
4、小結
本文分析研究了軟件項目管理中的需求管理、員工之間的溝通與協作、軟件項目風險管理。最后結合實踐,提出并分析了軟件項目管理技術。我們相信隨著軟件工程的發展和進一步成熟,軟件項目管理技術的發展會取得更大的進步。在實際項目中,我們要堅持改善軟件工程的管理,并在實踐中總結適合自身的經驗,這樣才有利于管理技術的進步和軟件項目的順利完成,創造出更高的品質、更大的效益。
參考文獻:
[1]PhpMetzger,JohnBoddie.軟件項目管理-過程控制與人員管理[M].北京:電子工業出版社,2002.
[2]RajeevTShandilya.王克仁譯.軟件項目管理[M].北京:科學技術出版社,2002.
[3]楊根興,金榮得,宗宇偉.軟件需求的不確定性與解決途徑.計算機應用與軟件.
2、工程項目管理軟件
2.1概念的界定
工程項目管理軟件(以下簡稱為項目管理軟件)是指以項目的施工環節為核心,以時間進度控制為出發點,利用計劃技術,對施工過程中的進度、費用、資源等進行綜合管理的一類應用軟件。它包括五個主要功能模塊:進度計劃管理功能、資源管理功能、費用管理功能、報告生成與輸出功能、輔助功能(主要指與其他軟件的接口、二次開發、數據保密等)。這種概念源于對國外類似產品的概括,如P3(PrimaveraProjectPlanner)、MicrosoftProject、HarvardTotalProjectManagement、HarvardProjectManager.從廣義上看,項目管理軟件包括了與項目管理工作相關的各種應用軟件,可以涉及進度、費用、資源、質量、風險、組織等各個方面,是項目管理相關軟件的總稱。
2.2發展概述
國內項目管理軟件的研究開發始于20世紀70年代,至今經歷了兩次重大轉變(見圖1)。
第一次,90年代初,標志是研發主體由用戶本身轉變為專業化的軟件。在70、80年代多是各用戶單位自行研制的單項功能的初級產品,即自己提出需求、自己研究、自己開發、自己使用,是一種完全的小生產方式,在近二十年中發展緩慢。90年代初,市場帶動出幾十家專門從事建筑管理軟件開發的高民營企業,軟件開始走上化、專業化、商業化的快速發展道路。
90年代是國內建筑管理軟件迅猛發展的十年,工程造價、工程量、鋼筋配料、平面圖制作、標書制作軟件等新產品大量涌現,價格逐漸降低、功能不斷完善,界面友好、操作方便,通用性、實用性增強。
第二次,90年代末,標志是產品由單機版轉向系統集成。如將項目施工方案的設計、概預算、工程量計算、進度計劃、資源計劃、費用管理、事務性管理等綜合起來形成一個有機的整體。運行環境由單機用戶拓展到網絡多用戶,一定程度上實現了企業內部的數據共享。
進入2000年來,項目管理軟件的研發出現了滯緩現象。究其原因是多方面的,既有市場因素又有技術因素,既有外部環境的又有自身條件的制約,如加入WTO的影響、用戶需求的變化,網絡技術、數據庫技術、通訊技術的進步等。項目管理軟件發展的方向在哪里?必然趨勢如何?怎樣應對?這些擺在眾多業內人士面前。
3、國內項目管理軟件的現狀
3.1外部環境分析
3.1.1機遇
(1)積極的政策環境。2000年7月國務院了《鼓勵軟件產業和集成電路產業發展的若干政策》在投資融資、稅收、產業技術、出口、收入分配、人才吸引與培養、知識產權保護等方面,給予優惠政策。建設部正在領導制定《建設企業管理信息系統軟件通用標準》和《建設信息平臺數據通用標準等通用標準,以規范建設領域信息市場行為。各省市地方的建委、定額站以及高新技術開發區,積極貫徹黨和國家方針政策,制定一系列的優惠辦法,培育扶植當地軟件企業的發展。
(2)巨大的市場需求。項目管理軟件作為一種行業專用軟件,其發展與建筑行業自身的興衰息息相關。據統計,我國現有各類施工企業10多萬家,項目經理部幾十萬個,除此之外工程監理、審計、建行、甲方等單位也都是管理軟件的用戶,遠期軟件需要量應在100萬套,但現在軟件總的銷量不足2萬套。加入WTO以后,受各方面因素的影響,經濟將呈現快速增長的態勢,國內總體建設投資規模擴大,這將會為建筑業創造一個良好的發展機遇,也必將拉動行業軟件市場需求的增長。
(3)信息技術在建筑業的廣泛應用。20世紀90年代以后,我國建筑業應用信息技術取得了突飛猛進的發展,為項目管理軟件的普及推廣提供了必要的條件。主要表現在:1.網站建設從無到有,形成了政府網站、行業網站、企業網站三個層次。2.廣泛應用計算軟件和工具軟件。3.在施工中推廣應用以信息技術為特征的自動化控制技術,取得了較好的效果。
3.1.2挑戰
(1)項目管理的基礎工作薄弱。軟件的應用要有一定的條件,目前我國項目管理中影響軟件應用和開發的主要問題有:1.管理工作尚未標準化。例如各種報告、信息、數據及各種費用項目的劃分,各種文本等的標準化程度不高。2.工作過程中的隨意性,非程序化工作和干擾,使先進的計劃、控制方法和程序難以使用,難以顯示出它們的效果。3.整體管理水平低,各層次的管理人員尚不能掌握的管理手段和方法。管理的基礎工作薄弱不僅限制了對軟件應用的需求,而且進一步拉大了國內項目管理與國際水平的差距。
(2)國外競爭者的挑戰。目前,打進中國建筑市場的國外軟件有MS-Project、P3等。這些軟件功能強大、專業性強、知名度高、營銷方式靈活。如P3軟件在國際上具有極高的知名度,逐漸成為工程項目管理行業的標準軟件。世行也在大型項目上推薦使用P3軟件。加入WTO后,外國軟件企業將享受國民待遇,出口補貼政策、政府采購將受到限制,我國的產品市場不僅要開放,服務市場也相應開放,軟件市場從而將完全開放,國內軟件市場競爭日趨激烈。而且,加入WTO后,外資建設項目增多、建筑市場逐步放開,國外工程設計、承包、咨詢單位的大量涌入會加大MS-Project、P3等的市場份額。
國產軟件一般在功能設置和運行機制上更符合國內用戶的需求和習慣,如有雙代號網絡圖、前鋒線功能等。但在用戶界面、報告生成與輸出、數據交換、二次開發等方面還存在著較大的差距,而且這些軟件目前還不可能用于國際工程項目。
3.2內部條件分析
3.2.1優勢
(1)技術成熟。國內項目管理軟件經過近30年的發展,已經研制出適用于公司和項目兩個層次的產品,而且部分軟件的技術水平達到新的高度,令外國同行刮目相看,為發展適合國情的信息產品奠定了技術基礎。如北京夢龍公司的智能管理系統Pert、大連同洲公司的項目計劃管理系統TZ-Project.
(2)市場占有率高。初步估算,國產軟件的市場占有率在三分之二以上。此外,用戶購買軟件后,需要經過培訓,才能掌握運用。一旦熟練使用后,就傾向于繼續購買后續產品,而不愿轉購其他公司的同類產品。這一消費特征有利于率先占有市場的軟件。多種原因造成國內軟件企業已搶先一步占領市場,建立起銷售渠道和用戶對它們的信任。
(3)服務本土化。軟件的價值歸根結底表現在對傳統行業的服務上,軟件行業競爭的核心是服務的競爭。國內的軟件企業經過十多年的市場開拓,已在全國的數十萬用戶中建立起較為完善的服務體系,深入到公路、港口、建筑、市政、鐵路、水利、電力等各個領域,能夠快速響戶要求,提供全面的咨詢培訓維護服務,這是外國公司在短期內無法做到的。
(4)人才優勢。國內軟件開發人員的薪酬平均低于國際水平,是美國的1/30~1/20,可大大降低軟件研發成本。此外,國內建筑市場運作不規范,用戶需求差異大,而國內研發人員熟悉行情,與用戶容易溝通,開發的產品更符合“國情”。
3.2.2劣勢
(1)品牌與質量。國產項目管理軟件數量不少,但沒有一個能夠像P3那樣知名的品牌。幾十家軟件研發單位“各占一個山頭”,國內市場呈現小而散、四分五裂的格局。在研發過程中普遍缺乏嚴格的測試環節,軟件的改動和版本的升級頻繁,造成成本的增加和維護上的難度,帶給用戶許多不必要的麻煩。而且,由于缺乏行之有效的軟件開發管理體制,一個關鍵性設計人員的變動往往會嚴重軟件產品的整個生產過程。在功能模塊上,國產軟件偏重進度計劃管理,在資源管理、費用管理方面遠遠落后與國外軟件。此外,國產軟件都無法實現環境下異質數據庫的互連、沒有對用戶開放二次開發的接口。
(2)規模小、開發資金不足。國內軟件企業的資金來源主要以企業自主投資、風險投資和政府投資三種為主。大部分企業缺乏正常的融資手段,只是依靠經營利潤的積累。企業規模小、缺乏“重量級”企業,、設計、開發和市場開拓能力有限。據統計,50人以下的企業占40%左右,50~100人的企業占50%左右,100~200人的企業僅2家,200人以上的為零。
(3)缺乏統籌規劃。由于沒有明確的行業標準和方向引導,軟件開發只能根據客戶要求,由軟件技術人員,憑自己的理解和能力進行設計、編程,造成軟件開發選題雷同,而且多屬低水平重復開發。企業在技術、研究、開發等方面存在很大的盲目性,力量分散,造成大量資源浪費,也延誤了發展的時機。
(4)人才流失。由于缺少合理的收入分配激勵機制,大量軟件開發人員流向高收入的電信、、商業領域,國內從事工程管理軟件開發的人員不足千名,其中懂工程、懂機、懂管理的復合性高級人才更是少之又少。
4、國外項目管理軟件的發展及啟示
4.1發展概述
國外項目管理中的計算機應用可以追溯到50年代中后期網絡計劃技術的出現,到了60年代中后期網絡程序已經十分成熟。整個70年研究的重點是完善和擴展網絡模型分析軟件的應用功能,如成本和資源的平衡優化;同時提出并研究了項目管理信息系統。進入80年代以后,PC機的普及和項目管理工作的化、標準化,使一般中小型企業、中小型項目也可用計算機進行管理,網絡技術才真正普及。90年代后,項目管理軟件發展迅速,不斷有功能強大、使用方便的軟件推出,在項目管理中發揮了重要作用,計算機的應用已經成為項目管理必不可少的一個組成部分。
項目管理軟件的功能層次不斷提高,對應著三個顯著階段:
第一層次,也稱基本功能,如進度控制、質量管理、資源管理、費用控制、采購管理等,是對基層工作流程的模擬,在一定程度上實現數據共享,減輕了基層項目管理人員的工作強度。在80年代已基本完成這方面的功能開發并在基層項目管理中廣泛應用。
第二功能層次有兩個特點:一是分析和預測功能,包括工期變動分析、不可預見事件分析(如惡劣氣候、匯率變動、市場物價變動、分包商情況變動等)。在分析基礎上產生預測功能,主要包括進度預測、投資預測、資金需求預測等,并有相應的數學模型。二是計算機網絡的使用和通訊功能,主要是局域網上的多用戶操作和多項目管理,以及借助Internet、Intranet,郵件、電子信箱等先進的通訊工具和手段,減少項目管理班子的工作所受的地域限制。P3及MS-Project都是這一層次的產品。
第三層次是基于因特網的項目管理,使整個項目管理業務與因特網結合,具有跨平臺兼容、交互性和實時性,項目成員可以協同工作,實現在線文檔管理、在線討論、視頻會議等。到目前為止尚無完善的產品出現,但有兩個軟件Mesa/Vista,WebProject已初具雛形。
4.2發展啟示
目前國內項目管理軟件的發展還處在第一階段。某些軟件具備或正向第二功能層次發展,沒有基于因特網的第三階段軟件。國外同類軟件的發展歷程可以得到啟示:數據通訊、多項目管理、多用戶環境、多系統兼容和與Web技術集成、增強用戶自定義功能,這代表著項目管理軟件的新發展。客戶機(Client)/服務器(Server)模式向瀏覽器(Browser)/服務器(Server)模式轉變將是必然趨勢。
5、對策
5.1我國項目管理軟件SWOT分析
基于上述分析,可歸納出我國項目管理軟件SWOT矩陣。
5.2政府和行業協會
(1)規范項目管理,實現與國際接軌。推進《施工項目管理規程》、《工程網絡計劃技術規程》、《建設工程質量管理條例》、《建筑工程施工合同(示范文本)》等的制訂和落實,嚴格按規程、規范和標準進行項目管理。在項目管理中推廣使用WBS(項目結構分解)等,保證數據采集的完整與統一。加強信息技術標準研究,積極參與國際標準的制訂,利用標準來占領市場。
(2)統籌規劃,抓大放小,分類指導。制定建筑業信息化發展規劃和技術政策,確定產業升級目標,合理選擇主導產業、戰略產業。對各省市地方的造價、鋼筋、工程量等單機軟件鼓勵自由競爭,讓市場來決定優勝劣汰,同時強化行業管理,維持公平、有序的競爭環境。對項目管理軟件的研發加強扶植力度,增強國產軟件自主發展的能力,重點扶植、推廣一批具有自主知識產權的產品。
(3)發揮行業組織的作用。行業協會加強與政府和企業的聯系,為企業在技術、管理、市場信息、人才培訓等方面提供指導和幫助。
5.3軟件企業
(1)利用政策,把握機遇。認真研究、充分利用國家為產業發展提供的政策環境,要充分利用加入世貿組織的過渡期,力爭在三、五年內完善項目管理軟件并實現產業化。
(2)調整產品結構,培育自主品牌。推進產品創新和產品重組。擁有自主知識產權的,要強化知識產權管理,積極實施信息技術專利戰略,按國際項目管理要求進一步完善產品,爭取在國際市場占有一席之地。正在研發之中的,要多研究國內外同類軟件,合理選擇細分市場,采取產品差異化戰略或市場跟隨戰略。
(3)規范企業管理。積極參與ISO9000,CMM,ISO14000等國際質量保證體系認證和國際安全認證,加強軟件企業的規范化管理。建立有效的激勵和約束機制,充分調動員工積極性,吸引并留住各類優秀人才。
(4)服務創新。推動軟件售后服務的化,建立專業的咨詢服務機構。不具備持續開發能力的公司應向增值服務的專業服務公司轉變。從目前發展趨勢看,軟件的升級、維護、咨詢活動的利潤比銷售的更可觀。
6、結論
我國工程項目管理軟件研發的整體水平較低,實際應用情況不容樂觀。要改變這一局面,政府和企業都要付諸努力。政府和行業協會要規范項目管理,實現與國際接軌;統籌規劃,抓大放小,分類指導。軟件企業調整產品結構,培育自主品牌,規范企業管理及建立服務創新的體制。
參考
[1]MatthewJ.Liberatore.ProjectManagementInConstruction:SoftwareUseAndResearchDirections[J].JournalOfConstructionEngineeringAndManagement,2001,(March/April)。
[2]成虎。工程項目管理[M].中國建筑出版社,2001.
[3]陳昌柏。WTO-ITA與中國IT產業發展[M].北京郵電大學出版社,2001.
目前,風險管理被認為是IT軟件項目中減少失敗的一種重要手段。當不能很確定地預測將來事情的時候,可以采用結構化風險管理來發現計劃中的缺陷,并且采取行動來減少潛在問題發生的可能性和影響。風險管理意味著危機還沒有發生之前就對它進行處理。這就提高了項目成功的機會和減少了不可避免風險所產生的后果。
2什么是風險
所謂“風險”,歸納起來主要有兩種意見,主觀說認為,風險是損失的不確定性;客觀學認為,風險是給定情況下一定時期可能發生的各種結果間的差異。它的兩個基本特征是不確定性和損失。IT行業中的軟件項目開發是一項可能損失的活動,不管開發過程如何進行都有可能超出預算或時間延遲。項目開發的方式很少能保證開發工作一定成功,都要冒一定的風險,也就需要進行項目風險分析。在進行項目風險分析時,重要的是要量化不確定的程度和每個風險相當的損失程度,為實現這一點就必須要考慮以下問題:
要考慮未來,什么樣的風險會導致軟件項目失敗?
要考慮變化,在用戶需求、開發技術、目標、機制及其它與項目有關的因素的改變將會對按時交付和系統成功產生什么影響?
必須解決選擇問題,應采用什么方法和工具,應配備多少人力,在質量上強調到什么程度才滿足要求?
要考慮風險類型,是屬于項目風險、技術風險、商業風險、管理風險還是預算風險等?
這些潛在的問題可能會對軟件項目的計劃、成本、技術、產品的質量及團隊的士氣都有負面的影響。風險管理就是在這些潛在的問題對項目造成破壞之前識別、處理和排除。
3風險管理
項目風險管理實際上就是貫穿在項目開發過程中的一系列管理步驟,其中包括風險識別、風險估計、風險管理策略、風險解決和風險監控。它能讓風險管理者主動“攻擊”風險,進行有效的風險管理。
在項目管理中,建立風險管理策略和在項目的生命周期中不斷控制風險是非常重要的,風險管理包括四個相關階段:
風險識別識別風險的方法常用的有風險識別問詢法(座談法、專家法)、財務報表法、流程圖法、現場觀察法、相關部門配合法和環境分析法等。
風險評估對已識別的風險要進行估計和評價,風險估計的主要任務是確定風險發生的概率與后果,風險評價則是確定該風險的經濟意義及處理的費/效分析,常用的方法有:概率分布、外推法、多目標分析法等。
風險處理一般而言,風險處理有三種方法,①風險控制法,即主動采取措施避免風險,消滅風險,中和風險或采用緊急方案降低風險。②風險自留,當風險量不大時可以余留風險。③風險轉移。
風險監控包括對風險發生的監督和對風險管理的監督,前者是對已識別的風險源進行監視和控制,后者是在項目實施過程中監督人們認真執行風險管理的組織和技術措施。
在IT軟件項目管理中,應該任命一名風險管理者,該管理者的主要職責是在制訂與評估規劃時,從風險管理的角度對項目規劃或計劃進行審核并發表意見,不斷尋找可能出現的任何意外情況,試著指出各個風險的管理策略及常用的管理方法,以隨時處理出現的風險,風險管理者最好是由項目主管以外的人擔任。
險識別
風險識別就是企圖采用系統化的方法,識別某特定項目已知的和可預測的風險。常用方法是建立“風險條目檢查表”,利用一組提問來幫助項目風險管理者了解在項目和技術方面有些風險。在“風險條目檢查表”中,列出了所有可能的與每一個風險因素有關的提問,使得風險管理者集中來識別常見的、已知的和可預測的風險,如產品規模風險、依賴性風險、需求風險、管理風險及技術風險等。“風險條目檢查表”可以以不同的方式組織,通過判定分析或假設分析,給出這些提問確定的回答,就可以幫助管理或計劃人員估算風險的影響。軟件項目一般有如下五類風險:
4.1產品規模風險
有經驗的項目經理都知道:項目的風險是直接與產品的規模成正比的。與軟件規模相關的常見風險因素有:
估算產品的規模的方法(LOC或代碼行,FP或功能點,程序或文件的數目)。
產品規模估算的信任度
產品規模與以前產品規模平均值的偏差
產品的用戶數
復用的軟件有多少
產品的需求改變多少
4.2需求風險
很多項目在確定需求時都面臨著一些不確定性和混亂。當在項目早期容忍了這些不確定性,并且在項目進展過程當中得不到解決,這些問題就會對項目的成功造成很大威脅。如果不控制與需求相關的風險因素,那么就很有可能產生錯誤的產品或者拙劣地建造正確的產品。每一種情況都會導致使人不愉快。
與客戶相關的風險因素有:
對產品缺少清晰的認識
對產品需求缺少認同
在做需求中客戶參與不夠
沒有優先需求
由于不確定的需要導致新的市場
不斷變化需求
缺少有效的需求變化管理過程
對需求的變化缺少相關分析
4.3相關性風險
許多風險都是因為項目的外部環境或因素的相關性產生的。經常我們不能很好地控制外部的相關性,因此緩解策略應該包括可能性計劃,以便從第二資源或協同工作資源中取得必要的組成部分,并且覺察潛在的問題。與外部環境相關的因素有:
客戶供應條目或信息
內部或外部轉包商的關系
交互成員或交互團體依賴性
經驗豐富人員的可得性
項目的復用性
4.4管理風險
盡管管理問題制約了很多項目的成功,但是不要因為風險管理計劃中沒有包括所有管理活動而感到驚奇。在大部分項目里,項目經理經常是寫項目風險管理計劃的人,并且大部分人都不希望在公共場合暴露自己的弱點。然而,像這些問題可能會使項目的成功變得更加困難。如果不正視這些棘手的問題,它們就很有可能在項目進行的某個階段影響項目。當我們定義了項目追蹤過程并且明晰項目角色和責任,就能處理這些風險因素:
計劃和任務定義不夠充分
實際項目狀態
項目所有者和決策者分不清
不切實際的承諾
員工之間的沖突
4.5技術風險
軟件技術的飛速發展和經歷豐富員工的缺乏,意味著項目團隊可能會因為技巧的原因影響項目的成功。在早期,識別風險從而采取合適的預防措施是解決風險領域問題的關鍵,比如:培訓、雇傭顧問以及為項目團隊招聘合適的人才等。主要有下面這些風險因素:
缺乏培訓
對方法、工具和技術理解的不夠
應用領域的經驗不夠
新的技術和開發方法
不能正確工作的方法
5風險估計
風險估計,又稱風險預測,常采用兩種方法估價每種風險。一種是估計風險發生的可能性或概率,另一種是估計如果風險發生時所產生的后果。一般來講,風險管理者要與項目計劃人員、技術人員及其他管理人員一起執行四種風險活動:
(1)建立一個標準(尺度),以反映風險發生的可能性。
(2)描述風險的后果。
(3)估計風險對項目和產品的影響。
(4)確定風險的精確度,以免產生誤解。
另外,要對每個風險的表現、范圍、時間做出盡量準確的判斷。對不同類型的風險采取不同的分析辦法。
1.確定型風險估計
(a)盈虧平衡分析
盈虧平衡分析(Break-EvenAnalysis)通常又稱為量本利分析或損益平衡分析。它是根據軟件項目在正常生產年份的產品產量或銷售量、成本費用、產品銷售單價和銷售稅金等數據,計算和分析產量、成本和盈利這三者之間的關系,從中找出它們的規律,并確定項目成本和收益相等時的盈虧平衡點的一種分析方法。在盈虧平衡點上,軟件項目既無盈利,也無虧損。通過盈虧平衡分析可以看出軟件項目對市場需求變化的適應能力。
(b)敏感性分析
敏感性分析(SensitivityAnalysis)的目的,是考察與軟件項目有關的一個或多個主要因素發生變化時對該項目投資價值指標的影響程度。通過敏感性分析,使我們可以了解和掌握在軟件項目經濟分析中由于某些參數估算的錯誤或是使用的數據不太可靠而可能造成的對投資價值指標的影響程度,有助于我們確定在項目投資決策過程中需要重點調查研究和分析測算的因素。
(c)概率分析
它是運用概率論及數理統計方法,來預測和研究各種不確定因素對軟件項目投資價值指標影響的一種定量分析。通過概率分析可以對項目的風險情況做出比較準確的判斷。主要包括解析法和模擬法(蒙特卡羅MonteCarlo技術)兩種。
2.不確定型風險估計
主要有小中取大原則、大中取小原則、遺憾原則、最大數學期望原則、最大可能原則。
3.隨機型風險估計
主要有最大可能原則、最大數學期望原則、最大效用數學期望原則、貝葉斯后驗概率法等。
5.1建立風險清單
風險清單是關鍵的風險預測管理工具,清單上列出了在任何時候碰到的風險名稱、類別、概率及該風險所產生的影響。其中整體影響值可對四個風險因素(性能、支持、成本及進度)的影響類別求平均值(有時也采用加權平均值)。
一旦完成了風險表的內容,就可以根據概率及影響來進行綜合考慮,風險影響和出現概率從風險管理的角度來看,它們各自起著不同的作用(見圖1)。一個具有高影響但低概率的風險因素不應當占用太多的風險管理時間,而具有中到高概率、高影響的風險和具有高概率及低影響的風險,就應該進行風險分析。
5.2風險評估
在風險分析過程中,我們對風險進行評估時可以建立一個如下的四元數組:
[ri,li,xi,yi]
其中,ri是風險,li為風險出現的概率,xi則表示風險損失大小,yi則表示期望風險。
一種對風險評估的常用技術是定義風險的參照水準,對絕大多數軟件項目來講,風險因素——成本、性能、支持和進度就是典型的風險參照系。也就是說對成本超支、性能下降、支持困難、進度延遲都有一個導致項目終止的水平值。如果風險的組合所產生的問題超出了一個或多個參照水平值時,就終止該項目的工作,在項目分析中,風險水平參考值是由一系列的點構成的,每一個單獨的點常稱為參照點或臨界點。如果某風險落在臨界點上,可以利用性能分析、成本分析、質量分析等來判斷該項目是否繼續工作。圖2表示了這種情況。
但在實際工作中,參照點很少能構成一條光滑的曲線,大多數情況下,它是一個區域,而且是個易變的區域。因而在做風險評估時,盡量按以下步驟執行:
(1)定義項目的水平參照值
(2)找出每組[ri,li,xi,yi]與每個水平參照值間的關系
(3)估計一組臨界點以定義項目的終止區域
(4)估計風險組合將如何影響風險水平參照值
5.3估計損失的大小
表1是風險分析表的一個例子,可以建立一個用風險、損失概率、損失大小和期望風險這樣的風險評估表。
在表1所示的風險估價的例子中,一個理論項目已經識別了從1到20周期間的潛在的幾個風險,風險發生的概率范圍在5%到50%之間。在現實的項目中,可能會識別出比此表要多得多的風險。
損失的大小常常比概率更容易受到控制。在以上的例子中,可以很精確地估計出完全支持自動從主機更新數據的時間是20個月。根據管理層將在何時討論項目建議書,可以知道項目不是在2月1日就是3月1日會被批準。如果假定會在2月1日批準,項目被批準的風險大小會比期望的長一些,也就是1個月時間。
如果損失的大小不容易直接估計出來,可以將損失分解為更小的部分,再對其進行評估,然后將各部分評估結果累加,形成一個合計評估值。例如,如果使用3種新編程工具,可以單獨評估每種工具未達到預期效果的損失,然后再把損失加到一起,這要比總體評估容易多了。
5.4評估損失的概率
評估損失的概率要比評估損失大小更具有主觀性。這里有許多實踐方法可以提高主觀評估的準確度。有以下方法:
由最熟悉系統的人評估每個風險的發生概率,然后保留一份風險評估審核文件。
使用Delphi法或少數服從多數的方法。使用Delphi法,必須要求每個人對每個風險進行獨立地評估,然后討論(口頭或紙上)每個評估的合理性,特別是最高和最低的那個。一輪輪討論,直到達成共識。?使用“形容詞標準”。首先讓每個人用表示可能性的形容詞短語選擇風險的級別,如非常可能、很可能、可能、或許、不太可能、不可能、和根本不可能。然后把可能性的評估轉換為數量化的評估(Boehm1989)。
5.5整個項目超限和緩沖
實際上,表1中表示的期望風險的計算數值來源于一個被稱為“期望值”的統計術語。設計欠佳引起的風險如果真正發生將花費15周的時間。既然它不是100%地會發生,當然不能預計損失15周時間。但它也不是沒有可能發生,所以也不應指望不會發生損失。統計學認為,預計損失的數量是概率乘以損失大小,即15%乘以15周。因此,在這個例子中,預計的是損失2.25周。由于只是談論計劃風險,可以累加所有的風險暴露量來得到項目的全部可預料超標值。這個項目可預料的超標值是12.8到13.2周,這就是如果不做任何風險管理的話有可能超過計劃的周數。
超出預期值的大小為整個項目風險控制級別的確定提供了依據。如果例子中的項目是個25周的項目,超出預期值的12.8到13.2周就很明顯需要進行風險管理了。
6風險管理策略
風險管理策略就是輔助項目組建立處理項目風險的策略。項目開發是一個高風險的活動,如果項目采取積極的風險管理策略,就可以避免或降低許多風險,反之,就有可能使項目處于癱瘓狀態。一般來講,一個較好的風險管理策略應滿足以下要求:
(1)在項目開發中規劃風險管理,盡量避免風險
(2)指定風險管理者,監控風險因素
(3)建立風險清單及風險管理計劃
(4)建立風險反饋渠道
7風險駕馭和監控
風險的駕馭與監控主要靠管理者的經驗來實施,它是利用項目管理方法及其它某些技術,如原型法、軟件心理學、可靠性等來設法避免或轉移風險。風險的駕馭和監控活動可用圖3來表示。
7.1建立風險駕馭與監控計劃
從圖3中可以看出,風險的駕馭與監控活動要寫入RMMP(RiskMonitoringandManagementPlan風險駕馭與監控計劃)。RMMP記述了風險分析的全部工作,并且作為整個項目計劃的一部分為項目管理人員所使用。
風險管理策略可以包含在軟件項目計劃中,也可以組織成一個獨立的風險緩解、監控和管理計劃(RMMP計劃)。RMMP計劃將所有風險分析工作文檔化,并由項目管理者作為整個項目計劃中的一部分來使用。一旦建立了RMMP計劃,且項目開始啟動,則風險緩解及駕馭及監控步驟也開始了。正如前面討論的,風險緩解是一種問題避免活動。風險駕馭及監控則是一種項目跟蹤活動,它有三個主要目標:?判斷一個預測的風險是否事實、是否發生。
進行風險再估計,確保針對某個風險而制定的風險消除活動正在使用。
收集可用于將來進行風險分析的信息。
風險駕馭及監控的策略如下:
與在職人員協商,確定人員流動原因。
在項目開始前,把緩解這些流動原因的工作列入風險駕馭計劃。
項目開始時,要作好人員流動的思想準備,并采取一些措施確保人員一旦離開時,項目仍能繼續。
制定文檔標準,并建立一種機制,保證文檔及時產生。
對所有工作進行細微詳審,使更多人能夠按計劃進度完成自己的工作。
對每個關鍵性技術人員培養后備人員。
在考慮風險成本之后,決定是否采用上述策略。
7.2軟件項目風險追蹤工具
一、引言
項目管理(PM,projectmanagement)是指利用現有的知識、方法和技術手段,有效地計劃、調度、控制和跟蹤項目的開始、執行、直止終止的過程,是項目順利實現的有效手段。軟件項目管理則是在項目管理的基礎上,結合軟件產品的實際,利用工程的概念和方法來開發與維護軟件,對成本、風險、時間、質量、過程、配置等進行分析、管理、控制,最終目的是為了讓軟件項目的整個生命周期都在管理者的控制范圍內,以預定成本按期、按質完成軟件的開發并交付用戶使用。目前,軟件產品已廣泛應用于各個領域,但是很多軟件項目的成功率并不高.雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范.但并沒有從根本上提高軟件項目管理問題,這就導致軟件產品質量不穩定甚至是項目的失敗,同時也損害了用戶的利益。本文結合我國軟件項目管理的特點并經實踐應用.以提高軟件質量、降低成本、加強軟件項目的可控性為目標,通過對CMM的研究和改進,給出了一個基于CMM加強軟件項目管理的實踐模式,在這個模式中對目前CMM中的KPA做適當的裁減,定義了6個關鍵過程域和3個工作組。
二、軟件項目管理中目前存在的問題
影響軟件項目成功率的因素主要是軟件質量問題,而在整個軟件項目的實施過程中需求不明確、跟蹤和監督不力、缺乏客觀的軟件評審和軟件配置以及風險管理意識不足等都阻礙著軟件質量的提高。
2.1需求不明確
需求管理是軟件項目管理中非常關鍵的一個步驟.需求分析的完整與否可以降低軟件質量、延長項目周期、加大成本。由于用戶對計算機系統認識的不足,對于系統的需求往往比較模糊,遺漏甚至是錯誤的問題經常出現(包括管理流程、業務流程、數據或報表的分析處理等),但這些問題往往沒有暴露給開發人員,而是隨著項目的進展才逐漸明確。對于開發人員來說,需求的變更意味著軟件產品的部分內容必須重新開發,而對于整個軟件項目管理而言,勢必要重新分配資源、調整計劃、估算成本等等,導致軟件產品質量下降。
2.2跟蹤和監督不力
跟蹤和監督主要針對過程而言,也是項目管理中最容易被忽視的環節。軟件項目過程由多個任務構成,大部分任務都有前置任務和后置任務,這就要求項目管理者要嚴格跟蹤和監督每一個任務。任務的完成主要從時間進度和質量兩方面來衡量,還要充分考慮因客戶方引起的一些客觀因素(更改需求分析等)。項目管理者雖然制定了具體的項目進度內容,但如果缺乏有效的跟蹤和監督機制,對于每一個階段所要完成的任務疏于評價,就會影響下階段軟件產品的質量,有時甚至是軟件產品的重新開發,最終影響整個軟件項目。
2.3缺乏客觀的軟件評審
客觀的軟件評審是軟件產品質量的直接保障,軟件評審一直貫穿于整個軟件項目的過程中,對軟件產品的評審應有客戶使用人員和軟件業中的同行來進行。客戶使用人員對軟件產品做階段性的評審可以及時發現軟件產品功能方面的不足,同行評審可以從軟件業的規范及標準去發現問題.軟件評審可以降低軟件開發的成本提高軟件產品的質量。大多情況下項目管理者沒有做任何階段性的評審,通常只是在軟件產品開發基本完成之后來組織評審,果發現了很多問題,但要修改已經非常困難.要花費很長的時間甚至從頭再來。
2.4軟件配置混亂
軟件配置是指軟件產品在各個階段各種版本的文檔、程序及數據的集合,貫穿于整個軟件項目的始終。隨著軟件產品開發的進行,由于各種客觀原因,其中的預算、設計方案、進度等內容都有可能需要大大小小的更改(這些改動可能是合理的),整個改變的過程對軟件項目的參與人員來說必須是可視的,以便提高軟件的可靠性和質量,而這一切都應該有正確的軟件配置來控制如果失去正確的軟件配置管理,那么針對軟件產品發生的任何更改或者是維護都會給軟件項目帶來混亂甚至是失敗。
2.5風險管理意識不足
風險管理是軟件項目中防止失敗的一種重要手段,軟件項目不同的階段存在著不同的風險,并且風險會隨著項目的進展而變化,目前國內的軟件企業大都不注意軟件項目的風險管理。除了社會環境風險、商業風險等這些客觀風險之外.可控的軟件項目風險主要指技術風險。技術風險主要是指與軟件項目本身相關的的技術因素變化帶來的風險,如果在一定的條件下達不到技術條件能夠實現的目標,不但延緩項目的進度而且會增加項目的成本.繼而使整個項目受到影響。
三、通過過程管理加強軟件項目管理的實踐模式
利用cMMfCapabilityMaturityModeforSoftware)的核心思想把軟件項目管理看作一個軟件過程,并根據這一原則對整個軟件項目的開發和管理進行過程監控,監督發現過程中影響項目的關鍵問題并予以解決。軟件過程是指軟件開發人員開發和維護軟件及相關產品的一套行為、方法、實踐及變換過程,包括軟件開發過程和軟件管理過程。CMM把軟件開發機構按照不同開發水平劃分為5個級別。每個等級被分解為幾個KPA(關鍵過程域),KPA是指在某個成熟度等級應重點關注的區域,也是達到此成熟度等級必須解決的關鍵點。①初始級,無過程意義。軟件過程是無序的、隨機的、缺乏總計劃,無預見性,大多數活動是應付危機,經常超期超支,成功取決于個人。②可重復級,具備基本的項目管理。KPA分別是:需求管理、軟件項目計劃、軟件跟蹤與監督、軟件子合同管理、軟件質量保證、軟件配置管理;③已定義級,已定義軟件過程。已將軟件管理和軟件工程兩方面的過程文檔化、標準化,并綜合成該組織的標準軟件過程。KPA分別是:組織過程焦點、組織過程定義、培訓大綱、集成軟件管理、軟件產品工程、組間協調、同行評審;④可管理級,過程可度量。已收集了軟件過程和產品質量的詳細度量方法,軟件過程和產品均可被定量地理解和控制。KPA分別是:定量過程管理、軟件質量管理;⑤優化級,過程控制。通過過程的量化反饋以及新技術、新方法促使過程不斷改進。KPA分別是:缺陷預防、技術更新預防、過程更改管理。
CMM只是一個過程改進的框架.并沒有給出具體實施的辦法。在該模式中對目前CMM中的KPA做適當裁減.定義了6個關鍵過程域:軟件項目計劃(SPP)、需求管理(RM)、軟件項目跟蹤和監督(SPTO)、軟件質量保證(SQA)、軟件配置(SCM)、同行評審(PR),設置了三個工作組:軟件項目過程組(SPPG)、軟件工程組(SEG)、軟件質量保證組(SQAG)。通過工作組對關鍵過程域的操作來加強軟件項目的管理。
3.1定義KPA
3.1.1軟件項目計劃(SPP)
軟件項目計劃是為要實施的軟件項目編制軟件過程活動的安排,包括進度控制、成本控制、質量控制、風險控制等,也是實施CMM2的核心此階段在安排過程活動的同時開展項目設計的前期工作,設計和界定在整個項目中各階段所需的開發、質量、跟蹤、評審、風險、成本等工作。項目計劃是指導項目過程的具體措施,要在有軟件項目實施經驗的人員領導下投人大量的時間和人力資源來完成。制定項目計劃應注意7個問題。①在科學論證的基礎上制定過程,充分調動人員積極性合理地確定項目組的參加人員;②對軟件項目各程中的任務進行分解,明確項目的里程碑和檢查點;③正確估計軟件項目中的軟件資源、硬件資源、人力資源及其它費用;④正確估計各方面因素帶來的風險并制定應對措施;⑤制定項目實施過程中的跟蹤和監督措施;⑥確定軟件的評審和測試方法;⑦詳細的文檔資料。
3.1.2需求管理(RM)
需求分析主要包括面向用戶的用戶需求和面向開發人員的系統需求.是整個軟件工程的第一步.也是非常關鍵的一個環節。需求分析主要針對用戶的業務流程、系統功能、性能、數據分析進行嚴格的定義.是設計一個軟件應用系統的起點與基本依據,通過它來評判軟件產品是否能夠解決用戶問題,也是項目成功與否的標準。就目前國內現狀來講,一般簽定軟件項目合同的用戶是主管信息技術的負責人,它所關心的可能是整個系統的目標需求,用戶方中層管理人員關心的是業務流程需求.終端操作人員則注重軟件本身的易操作性和功能特性,因此.面向用戶的需求一定要和用戶多方人員多溝通、交流.最終通過雙方有關部門人員的論證以文檔資料的形式確定下來。任何一個需求分析因客觀原因可能存在著需求更改的現象,對于這種情況一定要注意需求更改的可控性.要建立需求的基準版本和更改版本控制文檔資料.使受需求變化影響的產品與需求變更一致。但要注意在更改需求的同時要衡量需求的穩定性,如果一個需求的變更比較頻繁,意味著本項目并沒有真正了解用戶想要解決的實際問題。可以說需求分析的完整性和變更可控性直接影響到軟件過程的改進,它可以降低軟件質量、加大軟件開發的成本、甚至是導致項目的失敗。軟件工程組(SEG)中要明確定義一個需求管理員。
3.1.3軟件項目跟蹤和監督(SPTO)
軟件項目的跟蹤和監督始終貫穿于整個軟件項目的過程中,是項目得以控制的前提和條件、是軟件質量的根本保障,其目的是增加軟件過程中進度、成本、工作量、質量、風險等內容的可視性,也是實施CMM2的核心。除去市場、法律等不可控制因素外,根據項目計劃對項目進展的有關情況及影響項目實施的相關因素進行及時、客觀、準確的信息采集,將采集到的需求、成本、進度、風險等內容形成文檔并建立一個項目跟蹤信息平臺。項目負責人定期召集軟件過程人員、開發人員、質量保證人員、用戶方有關人員召開開放式的例會,例會的主要內容是檢查項目進展、數據的分析、認識的偏差、資源的搭配、相關的風險等問題并討論確切的解決辦法,通過跟蹤和監督使項目始終處于可視化的受控狀態。
3.1.4軟件質量保證(SQA)
軟件質量保證是與軟件產品滿足規定的和隱含的需要能力有關的特征或特性的組合。對用戶來講主要體現在軟件產品的有效性、一致性、完整性、可靠性和可操作性等方面,對于軟件產品本身來講體現在軟件產品的可移植性、易維護性、健壯性、可重用性等方面。具體實踐中.軟件質量保證應在軟件項目計劃、需求分析、跟蹤和監督、軟件配置和軟件評審的相互配合下完成.軟件質量保證要做到以事先預防和跟蹤為主,事后糾偏為輔。
3.1.5軟件配置(SCM)
軟件配置是針對軟件產品的跟蹤和控制活動.貫穿于整個軟件項目的過程中.目的是建立和維護在整個生命周期內軟件產品的完整性和一致性,使整個軟件產品的演進過程處于可控的狀態,繼而提高軟件的可靠性和質量。在實踐應用中主要做到五個子項的配置①配置項的標識。標識做到唯一性。便于跟蹤和管理。②版本管理。對整個軟件過程中的文件和目錄提供有效的跟蹤手段。③變更控制。保持并傳遞修改信息。④配置審計。確定整個項目生產周期中產品在技術和管理上的完整性。⑤系統整合。把系統的不同部分集成后完成一組特定的功能。
3.1.6同行評審(PR)
同行評審是根據預定的規范和標準對軟件產品進行評審。評審的結果是衡量軟件產品質量的依據。在整個軟件過程中對詳細設計和軟件綜合測試作為兩個關鍵評審點來進行評審,評審的過程中注意要結合本軟件項目的具體要求和標準。
3.2組的定義
在具體的實踐應用中設置了三個組,在降低了人員成本的同時提高了軟件過程改進能力和軟件質量。
軟件項目過程組(SPPG)組織具體的項目實施活動,管理并協調整個軟件項目的過程,主要完成SPP和SPTO。
軟件工程組(SEG)負責軟件工程的需求分析、概要設計、詳細設計、編碼、測試、維護工作。
軟件質量保證組(SQAG)主要完成SPTO、SCM、PR、SQA等工作。
四、實踐模式效率評估
4.1開發時間
軟件開發由需求分析、概要設計、詳細設計、編碼、軟件測試、項目維護和軟件集成幾部分內容組成,在需求分析和設計階段采用CMM框架實施過程管理所花費的時間要多于沒有實施過程管理花費的時間。首先對項目做大量分析,論證項目的可行性。然后在和用戶做良好溝通、反復論證的基礎上做需求分析,形成文檔資料。這種模式下花費在需求分析和設計上的時間大約占項目總開發時間的40%,但這兩個階段完成了數據流程、算法描述、詳細的規格說明等內容,為代碼編寫、軟件測試、軟件維護等后續內容的工作節省了時間,軟件項目的開發周期大大縮短。經過評估,采用該實踐模式實施軟件過程管理的軟件項目開發周期比沒有實施軟件過程管理的軟件項目開發周期縮短20%。:
4.2開發質量
ispaidattentiontodaybyday.Thistexthasbeenanalyzedanddescribed
throughtheorigincauseofformation,existingproblemandcorresponding
solutionofapplicationtotheprojectmanagementinsoftwaredevelopment
mainly.
關鍵詞:項目管理,軟件開發
Keywords:Projectmanagement,Softwaredevelopment
如果用兩個字概括當前社會的特點,那就是“變化”,而這種變化在信息產業中體現得尤為突出,技術創新速度越來越快,用戶需求與市場不斷變化,人員流動也大大加快。在這種環境下,企業需要應對的變化以及由此帶來的挑戰大大增加,也給管理帶來了很多問題和挑戰。軟件行業是一個極具挑戰性和創造性的新行業,管理上沒有成熟的經驗可供借鑒。而項目管理應該說對于軟件企業,尤其是那些以應用開發為主的軟件企業,是行之有效的管理方法。因此,項目管理在軟件開發中的應用日益受到重視。
項目管理的兩個問題
1、什么是項目管理?
項目管理是在一定的約束條件下,以高效率地實現項目業主的目標為目
的,以項目經理個人負責制為基礎和以項目為獨立實體進行經濟核算,并按照項目內在的邏輯規律進行有效的計劃、組織、協調、控制的系統管理活動。
2、為什么要有項目管理?
沒有項目管理,項目也有可能成功。但沒有管理的項目,很難保證項目
的利潤空間,對公司來說,虧損的風險就大。所以我們要有項目管理,以保證公司在總體上是盈利的,注意不是每一個項目都要盈利。
另外,有了項目管理,就有了管理改進的基礎,無論剛開始的項目管理多么糟糕,只要有管理,就有了改進的可能性,至于能不能得到改進,以及改進的快慢,則取決于兩個因素:一個是人,特別是各級管理者;另一個是利益。關鍵是“利益”,準確的說是“利益的分配”,在權責利明確的前提下,人才能充分的發揮作用。還需要指出的是“利益”是多元的,這里的多元不僅指利益的具體形式,而且指利益的受眾是多元的,包括客戶方相關人員個人的利益。
3、項目管理的發展與現狀。
今天,項目管理作為一種現代化管理方式在國際上已獲得了廣泛的應用,從最初的國防、航天、建設工程領域,迅速發展到電子、通信、計算機、軟件開發、金融等行業以及政府機關的項目管理工作。隨著計算機、網絡系統的迅速發展,項目管理技術的不斷進步,項目管理軟件產品層出不窮,其功能、特點、應用對象也各不相同。當前,越來越多的企業和組織在內部推廣項目管理的理論方法及管理模式,如果都采用項目管理軟件進行管理,效果就更加明顯,可以節省大量的資源和財富。國外90%以上的項目管理都采用軟件進行,但我國在這方面的應用還不到10%。新世紀項目管理在中國的迅速興起,給軟件企業的發展帶來了前所未有的發展機遇。
項目管理在軟件開發中的應用的成因
隨著信息技術的飛速發展,軟件產品的規模也越來越龐大,個人單打獨斗的作坊式開發方式已經越來越不適應發展的需要。各軟件企業都在積極將軟件項目管理引入開發活動中,對開發實行有效的管理。從概念上講,軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展(即減小開發風險)。同時,隨著軟件開發規模及開發隊伍的逐漸增大,軟件開發不再是向過去那樣一二個開發人員即可解決的事情。迫切需要一種開發規范來規范每個開發人員、測試人員與支持人員的工作,每個項目組成員按約定的規則準時完成自己的工作。同時采用規范化管理,專業分工也可以降低對開發人員的要求,從而降低產品研發成本。
軟件開發是一項復雜的系統工程,牽涉到各方面的因素,實際工作中,經常會出現各種各樣的問題,甚至面臨失敗。如何總結、分析失敗的原因,得出有益的教訓,對一個公司來說,是在今后的項目中取得成功的關鍵。
早在20世紀60年代中期,人們就發現軟件的生產出現了“問題”,主要表現在生產過程不規范,缺乏管理。后來,人們在軟件工程方法學中引入了工程的概念、原理、技術和方法,這種思想在一定程度上解決了軟件生產過程中遇到的問題。但是直至80年代還是沒有提出一套管理軟件開發的通用原則,軟件管理不善的問題依舊在大范圍內存在。
目前的軟件開發正逐步趨向于復雜化、多元化,大多數開發團隊中都會出現同時開發多個版本、開發/維護工作并存、多地點同時開發等情況,給軟件開發管理帶來了前所未有的困難。如果管理不善,必將造成版本混亂,各個開發人員的工作相互交叉、干擾,整個開發團隊的工作在一種無秩序的不良狀況下運行,嚴重影響軟件產品開發的進度和質量。
因此,隨著軟件開發的深入、各種技術的不斷創新以及軟件產業的形成,人們越來越意識到軟件過程管理的重要性,管理學的思想逐漸融入軟件開發過程中,應用開發的項目管理日益受到重視。而項目管理技術的發展與計算機技術的發展是密不可分的,隨著計算機性能的迅速提高,大量的項目管理軟件涌現出來。它們可以用于各種商業活動,提供便于操作的圖形界面,幫助用戶制定任務、管理資源、進行成本預算、跟蹤項目進度等。
軟件項目管理常見問題及解決方案
對于軟件開發項目中,經常出現兩種極端情況,一種是創造了新的生產率和質量的紀錄;一種則完全是一場災難,不是被取消就是拖延很長時間。前者如在很短的時間內,為了趕進度,在幾乎不可能的時間內開發出一套軟件產品,創造了軟件開發的記錄,滿足了上級所要求的上機日期,由于開發時間太短,過于倉促,上機時,問題百出,試運行時間長達幾個月或一年半載的,而且程序一改再改,維護工作量大。
后者,如某套系統未弄清楚需求,或因設計問題,開發失敗。通過提煉這些成功和失敗的例子,軟件項目成功或失敗的根本原因可能會更清晰一些。
目前我國大部分軟件公司,無論是產品型公司還是項目型公司,都沒有形成適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用戶的利益。
分析目前項目管理需要改進的問題可以從幾種相關角色的角度去考慮:項目經理、項目組成員、公司管理人員、市場人員、客戶等。
問題一:缺乏項目管理系統培訓(相關對象:項目經理、管理人員)
項目經理在項目管理方面的培訓較少或不夠系統。項目經理或管理人員不了解項目管理的知識體系和一些常用工具和方法,所以在實際工作中沒有項目管理知識的指導,完全依靠個人現有的知識技能,管理工作的隨意性、盲目性比較大。在軟件企業中,以前幾乎沒有專門招收項目管理專業的人員來擔任項目經理(甚至很少是管理專業的),被任命的項目經理主要是因為他們能夠在技術上獨當一面,而管理方面特別是項目管理方面的知識比較缺乏。
解決方案:項目經理接受系統的項目管理知識培訓是非常必要的,有了專業領域的知識與實踐,再加上項目管理知識與實踐和一般管理的知識和經驗的有機結合,必能大大提高項目經理的項目管理水平。應實行項目經理知識技能資格考核制度,讓項目經理自覺補充學習項目管理的知識和一些常用工具和方法。
問題二:項目計劃意識問題(相關對象:項目經理)
項目經理對總體計劃、階段計劃的作用認識不足。項目經理認為計劃不如變化快,項目中也有很多不確定的因素,做計劃是走過場,因此制定總體計劃時比較隨意,不少事情沒有仔細考慮;階段計劃因工作忙等理由經常拖延,造成計劃與控制管理脫節,無法進行有效的進度控制管理。沒有計劃或者是隨意的不負責任的計劃的項目是一種無法控制的項目。
解決方案:在高技術行業,日新月異是主要特點,因此計劃的制定需要在一定條件的限制和假設之下采用漸近明細的方式進行不斷完善。提高項目經理的計劃意識,采用項目計劃制定相關各種知識、技術、工具,加強對開發計劃、階段計劃的有效性進行事前事后的評估。
問題三、管理意識問題(相關對象:項目經理)
部分項目經理沒有意識到自己項目經理的角色,從總體上去把握管理整個項目,而是埋頭于具體的技術工作,造成項目組成員之間忙的忙、閑的閑,計劃不周、任務不均、資源浪費。在軟件企業中,項目經理大多是技術骨干,技術方面的知識比較深厚,但無論是項目管理知識,還是項目管理必備的技能、項目管理必備的素質都有待補充和提高,項目管理經驗也有待豐富。有些項目經理對于一些不服管理的技術人員,沒有較好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解結構設計的合理性,項目任務無法有效、合理地分配給相關成員,以達到“負載均衡”。
解決方案:加強項目管理方面的培訓,并通過對考核指標的合理設定和宣傳引導項目經理更好地做好項目管理工作。技術骨干在擔任項目經理之前,最好能經過系統的項目管理知識,特別是其中的人力資源管理、溝通管理的學習,并且在實際工作中不斷提高自己的管理素質,豐富項目管理經驗,提高項目管理意識。
問題四:溝通意識問題(相關人員:項目經理、項目組成員)
在項目中一些重要信息沒有進行充分和有效的溝通。在制定計劃、意見反饋、情況通報、技術問題或成果等方面與相關人員的溝通不足,造成各做各事、重復勞動,甚至造成不必要的損失;有些人沒有每天定時收郵件的習慣,以至于無法及時接收最新的信息。
解決方案:制定有效的溝通制度和溝通機制,對由于缺乏溝通而造成的事件進行通報作為教訓提醒,以提高溝通意識;溝通方式應根據內容而多樣化,講究有效率的溝通;通過制度規定對由于未及時收取郵件而造成損失的責任歸屬;對于特別重要的內容要采用多種方式進行有效溝通以確保傳達到位,例如除發送郵件外還要電話提醒、回執等,重要的內容還要通過舉行各種會議進行傳達。
問題五:風險管理意識問題(相關人員:項目經理)
項目經理沒有充分分析可能的風險,對付風險的策略考慮比較簡單。項目經理在做項目規劃時常常沒有做專門的風險管理計劃文檔,而是合并在項目計劃書中。有些項目經理沒有充分意識到風險管理的重要性,對計劃書中風險管理的章節簡單應付了事,隨便列出幾個風險,隨便地寫一些簡單的對策,對于后面的風險防范起不到什么指導作用。
解決方案:通過學習項目管理知識掌握風險識別、量化、對策研究、反應控制的工具和方法掌握項目風險管理所必備的知識。通過加強對項目規劃中風險管理計劃的審核提高項目組的風險管理意識。總結本行業項目中常見的風險及其對策作為風險管理計劃中必要的風險內容,并切實評估相應對策的有效性和可行性。
問題六:不重視項目經驗的總結(相關人員:項目經理、管理人員)
項目經理在項目結束時有些是因為自身對寫文檔工作的興趣或意識,或
者是因為緊接著要參加下一個項目,總體對項目總結的重視程度不夠。有些是項目總結報告一再拖延,有些是交上來的報告質量較低,敷衍了事。
解決方案:在制度上鼓勵和加強項目經驗總結工作,使得項目總結及時并且具有指導意義而不是走過場。
問題七:項目干系人相關問題(相關人員:項目經理、項目成員、客戶)
在范圍識別階段,項目組對客戶的整體組織結構、有關人員及其關系、
工作職責等沒有足夠了解以致于無法得到完整需求或最終經權威用戶代表確認的需求。由于項目經理的工作問題,客戶參與程度部不高,客戶方相關責任人不明確或對范圍和要求責任心不強,提出的要求具有隨意性,項目前期對需求的確認不夠積極;或者是多個用戶代表各說各話、昨是今非但同時又要求項目盡早交付;項目后期需求變化隨意,造成項目范圍的蔓延,進度的拖延,成本的擴大。
解決方案:項目的目的就是實現項目干系人的需求和愿望。項目干系人管理應當從項目的啟動開始,項目經理及其項目成員就要分清項目干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
問題八:項目團隊內分工協作問題(相關人員:項目經理、項目成員)
項目團隊內部有時由于各階段不同角色或同階段不同角色之間的責任
分工不夠清晰而造成工作互相推諉、責任互相推卸的現象,有時各階段不同角色或同階段不同角色之間的責任分工比較清晰但是各項目成員只顧完成自己那部分任務、不愿意與他人協作。這些現象或多或少地造成了項目團隊內部資源的損耗,從而影響了項目的進展。
解決方案:項目經理應當對項目成員的責任進行合理的分配并清楚地說明,同時應強調不同分工、不同環節的成員應當相互協作,共同完善。
以上對軟件開發項目管理中出現的問題的分析還不夠深入,也無法列舉所有遇到或將遇到的問題,解決方案也要根據實際情況進行調整,希望引起對這些問題更多的思考和改進。
結束語:項目管理雖然沒有非常高深的理論,但要真正實施起來,也絕非易事。對于軟件開發企業而言,這不是一個小的改變,而是一種變革,企業需要為此付出艱苦的努力,宣傳并樹立公司范圍內的項目管理文化十分重要。從而在實踐中鍛煉提高,解決各種各樣的問題,使項目管理工作越做越好。
參考文獻:
吳照云《管理學原理》經濟管理出版社
StanleyE.Portny(寧俊等譯)《如何做好項目管理》新經濟工商實務叢書
2)組織:如何引導和組織學生建立項目小組以更好地實現教學目標?由于項目組的建立必須在開課之初,這時學生還未接觸軟件工程的體系內容,因此需要教師妥善引導建立。建議的步驟是:①提前根據授課班級人數確定好合適的小組規模,將小組數量限制在可控范圍內。②在第一節課上,布置學生按照規定的小組規模自行分組,每人選好自己在小組中的角色,如項目經理、程序員、需求分析人員等,這涉及個人在小組活動中可能要完成的任務。③分好小組及各自角色后,“項目經理”以電子郵件(各小組的聯絡信箱)的形式將小組成員及對應角色的名單提交給教師,同時需要提交的還有各虛擬項目小組確定的虛擬開發項目。針對少數學生在項目小組的組合及活動上可能存在偷懶行為,我們建議在布置分組時,提前分組規則。例如,項目小組原則上是班級學生自由組合;布置的實踐作業及小組活動階段答辯要算成績,成績的計算方式是以小組為單位,小組成員成績均等;平時成績在考試中的占比較大。當意識到項目組成員構成以及成員合作的重要性后,學生會更慎重地選擇分組,而且當組內成員偷懶時,為了不影響小組成績,其他成員也會督促。另外,經驗表明,很多小組的成員會在角色上各盡所能,善于言辭的去答辯,善于設計歸納的做PPT,還有的進行資料收集工作。當然,也不排除有的小組有能者多勞現象,但這是學生自己的選擇。
3)內容:在有限時間內項目小組圍繞自己的虛擬項目該做些什么?要明確在現有條件下需要學生重點體驗項目開發實踐活動中的哪些內容。我們認為除代碼開發外,讓學生感受經典軟件工程項目開發的主要階段和其中的一些重要角色,是該課程的重點。因此,項目小組以工程文檔編制為主要內容,根據各自指定的虛擬開發項目,定期提交階段項目文檔并針對文檔答辯。這在一定程度上加深了學生對最容易忽視的開發文檔的認識和理解。當然,教師也要定期發放給學生一些軟件工程的標準文檔作為參照。
2教學設計
2.1課堂部分目前學院軟件工程課程設置48個理論授課學時,每學期16個教學周,每次課包含兩小節,即2學時。課程安排為單雙周課時方式,即逢單周為一次課,正常進行軟件工程基礎理論授課;逢雙周為兩次課,小部分時間進行軟件工程基礎理論授課,大部分時間進行虛擬項目小組匯報答辯活動。課程選用國外教材[6],教材內容貼近于實踐,甚至可以在實踐中當作工作指南來使用,非常適于配合筆者提出的教學模式。
2.2實踐部分學生按照教師定期布置的實踐內容,在課下圍繞所在小組的虛擬開發項目自主完成。教師可以通過匯報答辯環節進行評估檢查,同時在期末試題中也可以體現相關內容。在教學實踐中,為了規范及督促項目小組的活動,對小組組成及任務給出如下規則:①全班分成若干個項目組,每個項目組5~6個人;②每人都要參與項目組,否則無平時成績;③各項目組自主制訂合適的模擬開發項目(充分發揮想象力);④項目組的活動圍繞軟件工程文檔進行;⑤項目組安排各階段任務;⑥項目組內要分工明確;⑦階段報告及答辯活動需要做PPT配合。
2.3任務布置依據正規、全面的經典軟件工程開發模型,要求每個項目小組完成項目開發階段文檔,包括編寫項目計劃書、可行性分析報告、需求分析報告、項目進度計劃、體系結構及總體設計、SQA計劃、詳細設計、測試計劃及測試報告、SQA評審等各種項目文檔。在每次階段匯報活動中,各小組要將所有文檔提交給教師。
3考核方式
3.1分值配比及要求按照學校的規定,科目總成績由平時成績與期末考試成績兩部分組成。由于軟件工程課程實踐部分占有較大權重,故設定平時成績占30%,均以小組為單位,包括出勤、答辯表現及項目文檔(代碼);期末成績占總成績的70%,以個人為單位,偏重于課程的理論內容。具體要求是:①每人只允許累計缺勤2次,否則沒有成績;②個人缺勤將影響小組成績;③答辯表現部分按小組整體給分,答辯人由小組自主確定;④作業以小組形式給出,故按小組給分;⑤最終成績與所在項目組的表現有較大關聯。
3.2計分細則(1)出勤。每人每缺勤一次所屬小組扣3分,遲到扣1分,從平時成績里扣除。(2)文檔。2分×7次+1分×1次=15分(組內按角色自行安排撰寫人)。(3)答辯。2分×7次+1分×1次=15分(組內按角色自行安排答辯人)。(4)與考試關聯10分(根據答題情況浮動)。最后一項與答辯情況關聯,即隱性的平時成績,形式是主觀論述題,與每個角色的答辯內容有關,評分標準是答辯與答題情況的綜合。在實際制訂的試題中,除了上述主觀題,還有一道題與學生在所屬小組里承擔的角色有關,涉及角色職能描述,需要學生談看法和感受,并闡述某項目模擬角色的工作等。
在軟件工程項目投標風險識別過程中,頭腦風暴法主要是通過發揮集體智慧來對軟件工程項目中存在的風險進行分析與談談。在此過程中要求風險識別工作的參與者對自身觀點做出明確的闡述,其目的是為了通過讓參與者在自由提出多種方案的基礎上更加科學且全面的認識到軟件工程項目投標工作中的風險。在此過程中并不提倡對其他成員提出的問題和方案進行批評,并且要求能夠將所有成員所提出的問題與方案進行記錄。
(二)德爾菲法
在軟件工程項目投標風險識別過程中,德爾菲法是Q•赫爾穆與N•達爾克在20世紀40年提出,這種風險識別方法的基礎在于對專家能力的利用。當然這種方法已經在社會經濟、工程等多個領域的工作中得到了廣泛的應用,德爾菲法主要是通過組建專家隊伍來對項目投標中的風險做出分析。專家隊伍主要是由項目風險小組來進行選定,通過專家意見和整理專家意見并反饋給專家隊伍來獲得意見。最后將統一的專家意見當做軟件工程項目投標風險管控策略選取的依據。
(三)情景分析法
在軟件工程項目投標過程中,情境分析法主要是以多樣化的發展趨勢為依據,對系統內外問題開展系統的分析,并設計得出多種可能發生的前景,隨后對這些畫面以及情景做出描述。在此過程中,社會因素、經濟因素以及技術因素是必須要重點考慮的內容。一般情況下,情景分析法可以在以下情況下產生十分有效的作用:一是提醒軟件工程項目投資的決策者需要注意一些政策和措施所引發的風險;二是對一些影響未來工程項目投標的關鍵因素做出研究,尤其是技術發展在軟件工程項目投標中所產生的風險。由于情景分析法建立在假設以及可能性的基礎上,所以在軟件工程項目投標中,可以得出多種不同的情境,從而為軟件工程項目投標風險的防控工作提供更多依據。然而由于這種方法具有一定的操作難度和復雜性,所以在我國的軟件工程項目投標風險識別過程中,這種方法并沒有得到廣泛的應用。
(四)核對表法
在軟件工程項目投標過程中,軟件工程項目投標企業可以將曾經出現過的風險以及其他企業曾經出現過的風險進行總結、整理與羅列并形成核對表。通過對核對表的查閱,工作人員可以了解到軟件工程項目投標過程中可能出現的風險,并可以通過總結各類風險應用中的經驗和教訓來確定使用何種風險管控策略來對風險發生幾率以及風險損失進行控制。在核對表的制定中,主要內容包括其他軟件工程項目投標成敗原因、項目管理成員能力以及相應軟件工程項目的合同、進度、質量、成本、范圍以及各類資源等。雖然這種風險識別方法與其他方法相比并不能發現較多的絕對量,但是卻具有著一定的針對性,所以在這種識別方法的使用中,也可以發現一些其他風險識別方法所不能識別的潛在風險。
二、軟件工程項目投標過程中的風險管控
(一)軟件工程項目投標過程中風險的規避
在軟件工程項目投標過程中,風險的規避主要是通過變更計劃來制約風險產生條件的生成,從而保護軟件工程項目投標主體能夠避免受到風險所帶來的過度影響。與其他風險管控策略不同的是,風險的規避主要是對風險產生的損失作出控制,而不是對風險進行消除。因此,風險的規避主要體現出了兩點特征:一是通過使用事前控制策略對風險所造成的損失產生的幾率進行降低;二是通過事前控制與事后補救的結合來實現損失程度的降低。風險規避作為軟件工程項目投標過程中能夠最有效降低風險所產生的損失的方法,是軟件工程項目投標階段開展風險管控工作的重要手段,具體而言,風險規避的方法包括程序法、教育法以及終止法。其中程序阿發主要是通過提高軟件工程項目投標過程中個性工作的規范化、制度化以及標準化程度來避免風險造成過大損失;教育法主要是通過對參與軟件工程項目投標工作的工作人員開展教育來讓工作人員認識到軟件工程項目投標過程中存在的潛在風險因素,從而在提高工作人員風險防控意識以及防控能力的基礎上降低風險所造成的損失;終止法則主要針對較大的風險或者過大的損失,這主要是因為終止法是通過終止軟件工程項目投標行為來規避風險造成過大的損失。由于這種風險防控策略在避免風險以及風險損失的同時也放棄了讓企業獲得效益的機會,所以即便這種方法能夠最有效的對軟件工程項目投標中的風險做出防控,也并不是軟件工程企業在投標風險管控中經常考慮的方法之一。
(二)軟件工程項目投標過程中風險的降低
在軟件工程項目投標過程中,風險降低可以理解為對風險的緩解而并非完全的消除與避免。這種風險管控策略體現在降低投標過程中風險產生的概率以及降低風險所造成的損失兩個方面。實現風險降低的手段主要是對風險做出有效的監控與環節,在構建風險預警機制的基礎上確保風險的及早發現與及早解決,從而降低風險產生幾率。在使用風險降低策略對軟件工程項目投標風險進行管控的過程中,首先要承認軟件工程項目投標過程中風險的不可完全避免性,并以積極的態度來最大化的避免風險對投標主體造成過大損失。
(三)軟件工程項目投標過程中風險的轉移
在軟件工程項目投標過程中,風險的轉移主要是將管控風險的責任和權利以及風險可能造成的損失轉移個其他主體承擔。很明顯,在風險轉移策略中,并不能對風險進行完全消除,而是與其他主體來對風險進行承擔。在軟件工程項目投標過程中,由于要做到完全的規避風險需要付出較高的成本和較大的管理難度,所以將風險轉移給其他主體承擔則更為方便。在軟件工程設計內容復雜以及分工逐漸細化的背景下,參與投標的軟件工程企業也并不一定能夠獨立完成業主所要求完成的任務,所以投標主體可以利用分包形式來對投標過程中的風險進行轉移,這種策略的意義主要體現在兩個方面:一是不會讓投標主體面臨過大的風險;二是能夠在工程質量以及工程進度等多個方面做出更為良好的管控。
該課程相關教材理論知識抽象、知識體系龐雜,加大了學生的學習難度。另一方面,過度偏重理論知識的傳授,讓學生覺得課程所學知識離實踐很遠,不能很好地保證教學質量和效果。
2)教材案例不完整。
傳統教材難以容納完整的案例,所選皆為虛擬案例,缺乏實際可操作性,使案例分析沒有起到應有的作用。
3)教師缺少項目管理實戰經驗。
該課程要求主講教師既具備較強的理論知識,又有豐富的實戰經驗,而高校教師往往理論基礎較好、工程項目經驗積累不足,授課常常照本宣科,很難對學生進行理論聯系實際的有效指導。
4)學生沒有項目開發經驗。
在校大學生很少有機會參與實際項目的開發,多數沒有參與過完整的課堂模擬項目開發,不易理解課程中的工程概念。
5)實踐教學學時不足。
軟件項目管理是一門實踐性非常強的課程,由此決定了該課程不能完全通過書本和課堂掌握知識。實踐教學一般安排18個學時,在如此短的時間內,需要完成項目管理工具,還要求學生選擇一個新項目,既要從事項目分析設計工作,又要從事項目管理工作,還要學習項目管理工具的使用,難度非常大。
2理論加案例的課堂教學設計
在軟件項目管理課程的教學中,教師應結合當前社會需要,利用多媒體授課的優勢,以案例充實教學,增加知識面和信息量,使理論具有鮮明的應用特色,激發學生學習的興趣和積極性;同時,以理論武裝案例,彰顯案例的科學性,令學生在應用中能夠舉一反三,活學活用。
2.1以項目管理知識體系組織課堂講授的理論內容
軟件項目管理的知識體系、內容框架及管理流程有多種版本,如美國項目管理學會推出的項目管理知識體系(projectmanagementbodyofknowledge,簡稱PMBOK)、英國商務部推出的受控環境下的項目管理(projectsincontrolledenvironments2,簡稱PRINCE2)、IBM提出的全球項目管理方法(worldwideprojectmanagementmethod,簡稱WWPMM)。該課程采用國內外最流行的PMBOK(第5版)組織授課內容,把軟件項目管理的內容分為10個知識領域、5個過程組和47個過程。10個知識領域分別為集成管理、范圍管理、時間管理、成本管理、質量管理、人力資源管理、溝通管理、風險管理、采購管理、干系人管理;5個過程組包括啟動、計劃、實施、監控和收尾;授課時以4個核心知識領域(范圍管理、時間管理、成本管理、質量管理)作為重點內容。以PMBOK指導授課內容既保證了授課內容的權威性,又能夠與時俱進地適應項目管理內容的新變化。
2.2組織開篇案例
每章開始,教師都會安排一個與該章內容相關的開篇案例,激發學生學習的興趣。這些案例經過精心選取,盡量貼近實際。案例部分來源于教材,部分來自項目管理認證中的案例分析,每個案例都包括案例描述和問題兩部分。在講解項目管理的概念和技術時,學生可結合案例問題進行分析,學以致用,提高運用所學知識解決實際問題的能力。
2.3結合CMMI認證展示實際項目資料
當以實際項目資料展示項目管理的實踐成果時,課程對學生的影響將是實際的、深刻的。在軟件全生命周期的工程化管理和持續過程改進領域,軟件能力成熟度集成模型CMMI(capabilitymaturitymodelintegration)是無可爭議的主流模型,在專業研究認可度和軟件業界接受度方面都處于絕對的領導地位。作為軟件工程特色專業建設,計算機學院軟件工程系教師與學院軟件開發團隊成員一起準備進行CMMI3級認證,認證過程中積累的項目資料為本課程的項目展示提供了優質教學資源。
2.4認證考試試題操練
計算機技術與軟件專業技術資格(水平)考試(簡稱軟考)由于不設報考條件,很受學生歡迎。它可用于以后職稱的評審或者作為工作的敲門磚和晉級的階梯,部分學生會考慮在學校報考軟考認證。與本課相關的認證有信息系統項目管理師、系統集成項目管理工程師、信息系統管理工程師。步入工作崗位,學生能報考的與實際項目管理經驗相關的認證還有美國項目協會PMP(projectmanagementprofessional)、國際項目管理協會的IPMP(internationalprojectmanagementprofessional)及中國的CPMP(Chinaprojectmanagementprofessional)認證等。教師在每個知識點講授完畢時,輔以這些考試中的相關試題,可以加深學生對知識的理解。
3承接工程項目訓練成果的實踐教學設計
以現代工程教育理念CDIO(conceive-design-implement-operate)為指導,河南大學計算機與信息工程學院為各專業在第六、七學期開設工程項目訓練課程,一個導師負責帶幾個學生,完成從選題、分析、設計到實現的整個項目過程。學生通過分工合作在大四找工作之前有了完整的項目實踐訓練。針對本課程實踐學時少及學生缺乏項目開發經驗這一突出問題,筆者嘗試用承接工程項目訓練課程來,組織實踐教學。
3.1保留工程項目訓練課程中的實踐成果
軟件項目管理開設在第七學期,學生在學習本門課程之前,已經在工程項目訓練課程中完成了項目的選題、分析及設計工作,可以把實踐重點放在以前所選項目的管理工作中去,這樣既節省了時間,又讓學生有了自己的實際項目,對項目工程訓練課程的學習也是一種有效促進。
3.2課外作業圍繞所選項目設置
由于在課堂上有大量的案例分析和習題操練,學生不需要再花過多的時間去鞏固理論知識,因此教師布置的課外作業可以圍繞項目設置。比如,在項目集成章節,教師讓學生準備項目章程(或模擬的項目合同)和團隊契約;在范圍管理章節創建項目的工作分解結構;在時間管理章節利用Project提交項目進度計劃;在成本管理章節對項目利用Excel進行成本估計與預算等;最終,學生能夠提交所選項目的必要管理文件。
目標本課程開設的目標是使學生通過大型項目的開發,熟悉項目開發流程,理解項目管理的基本理念,靈活運用需求分析及系統設計方法,提高技術的使用熟練度,充分鍛煉團隊開發的協作能力,理解測試過程及Bug跟蹤的流程,從而積累真實的項目開發經驗,拉近與企業用人需求的距離。項目培養的能力體系如表1所示。根據TOPCARES-CDIO能值指標體系,本項目重點培養八項3級能力指標。
1.2項目內容和進度安排
隨著軟件行業的不斷發展,主流應用軟件的類型也在不斷變化著,從最初的桌面應用到基于Web的應用,再到目前的電腦、手機客戶端與Web端多客戶端平臺應用。本課程要求學生開發的項目來自于合作企業中最新的項目,以達到和市場接軌的目的。在課程進度安排如表2所示,包括準備階段和增量開發階段。課程共200學時,50次課,進度安排包括準備階段和三個增量階段,表2給出了一個增量的進度安排。項目準備階段完成整個項目的構思,各個增量階段,按照分析、設計、實施、運行和評審等步驟進行。
2項目實施(Implementationoftheproject)
項目教學實施過程主要采用情景教學的方式和分組教學的組織形式。項目實施盡可能模擬企業的開發環境,教師擔當類似項目經理的角色,負責監控項目的整個進度和項目質量,將每個學生小組視為一個開發團隊,讓學生模擬企業中相應的工程師角色,在教師的指導下按照規范的軟件開發過程進行項目開發,使得參與一級項目的學生獲得更真實的項目開發體驗,就業后能更快地適應企業工作。
3考核評價(Examinationandevaluation)
教師對各小組成員項目開發過程進行監控和打分,作為本課程的形成性考核,項目結束后安排統一的關于軟件項目管理和軟件開發等的閉卷考試,作為課程的終結性考核。各項考核的內容與本項目的能力培養目標相對應,如表3所示。這樣,當學生完成了本課程的學習,可以從八個能力方面對學生情況進行全面的評價,對其今后的發展會比以往單純的分數有更大的幫助。