一、引言
隨著信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品的規(guī)模也越來越龐大,個人單打獨斗的作坊式開發(fā)方式已經(jīng)越來越不適應(yīng)發(fā)展的需要。各軟件企業(yè)都在積極將軟件項目管理引入開發(fā)活動中,對開發(fā)實行有效的管理。我公司是西安一家中型軟件企業(yè),在公司中已經(jīng)實行了項目管理制度,軟件項目管理是整個項目管理中的一個重要組成部分。
從概念上講,軟件項目管理是為了使軟件項目能夠按照預(yù)定的成本、進度、質(zhì)量順利完成,而對成本、人員、進度、質(zhì)量、風(fēng)險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發(fā)人員的個人開發(fā)能力轉(zhuǎn)化成企業(yè)的開發(fā)能力,企業(yè)的軟件開發(fā)能力越高,表明這個企業(yè)的軟件生產(chǎn)越趨向于成熟,企業(yè)越能夠穩(wěn)定發(fā)展(即減小開發(fā)風(fēng)險)。
軟件開發(fā)不同于其他產(chǎn)品的制造,軟件的整個過程都是設(shè)計過程(沒有制造過程);另外,軟件開發(fā)不需要使用大量的物質(zhì)資源,而主要是人力資源;并且,軟件開發(fā)的產(chǎn)品只是程序代碼和技術(shù)文件,并沒有其他的物質(zhì)結(jié)果?;谏鲜鎏攸c,軟件項目管理與其他項目管理相比,有很大的獨特性。
二、軟件項目管理的組織模式
軟件項目可以是一個單獨的開發(fā)項目,也可以與產(chǎn)品項目組成一個完整的軟件產(chǎn)品項目。如果是訂單開發(fā),則成立軟件項目組即可;如果是產(chǎn)品開發(fā),需成立軟件項目組和產(chǎn)品項目(負責(zé)市場調(diào)研和銷售),組成軟件產(chǎn)品項目組。
公司實行項目管理時,首先要成立項目管理委員會,項目管理委員會下設(shè)項目管理小組、項目評審小組和軟件產(chǎn)品項目組。
1、項目管理委員會
項目管理委員會是公司項目管理的最高決策機構(gòu),一般由公司總經(jīng)理、副總經(jīng)理組成。主要職責(zé)如下:
?。?)依照項目管理相關(guān)制度,管理項目;
?。?)監(jiān)督項目管理相關(guān)制度的執(zhí)行;
?。?)對項目立項、項目撤消進行決策;
?。?)任命項目管理小組組長、項目評審委員會主任、項目組組長.
2、項目管理小組
項目管理小組對項目管理委員會負責(zé),一般由公司管理人員組成。主要職責(zé)如下:
?。?)草擬項目管理的各項制度;
?。?)組織項目階段評審;
?。?)保存項目過程中的相關(guān)文件和數(shù)據(jù);
?。?)為優(yōu)化項目管理提出建議。
3、項目評審小組
項目評審小組對項目管理委員會負責(zé),可下設(shè)開發(fā)評審小組和產(chǎn)品評審小組,一般由公司技術(shù)專家和市場專家組成。主要職責(zé)如下:
?。?)對項目可行性報告進行評審;
?。?)對市場計劃和階段報告進行評審;
?。?)對開發(fā)計劃和階段報告進行評審;
?。?)項目結(jié)束時,對項目總結(jié)報告進行評審。
4、軟件產(chǎn)品項目組
軟件產(chǎn)品項目組對項目管理委員會負責(zé),可下設(shè)軟件項目組和產(chǎn)品項目組。軟件項目組和產(chǎn)品項目組分別設(shè)開發(fā)經(jīng)理和產(chǎn)品經(jīng)理。成員一般由公司技術(shù)人員和市場人員構(gòu)成。主要職責(zé)是:根據(jù)項目管理委員會的安排具體負責(zé)項目的軟件開發(fā)和市場調(diào)研及銷售工作。
三、軟件項目管理的內(nèi)容
從軟件工程的角度講,軟件開發(fā)主要分為六個階段:需求分析階段、概要設(shè)計階段、詳細設(shè)計階段、編碼階段、測試階段、安裝及維護階段。不論是作坊式開發(fā),還是團隊協(xié)作開發(fā),這六個階段都是不可缺少的。
根據(jù)公司實際情況,公司在進行軟件項目管理時,重點將軟件配置管理、軟件質(zhì)量管理、軟件風(fēng)險管理及開發(fā)人員管理四方面內(nèi)容導(dǎo)入軟件開發(fā)的整個階段。
在八十年代初,著名軟件工程專家B.W.Boehm總結(jié)出了軟件開發(fā)時需遵循的七條基本原則,同樣,我們在進行軟件項目管理時,也應(yīng)該遵循這七條原則。它們是:
?。?)用分階段的生命周期計劃嚴格管理;
?。?)堅持進行階段評審;
?。?)實行嚴格的產(chǎn)品控制;
?。?)采用現(xiàn)代程序設(shè)計技術(shù);
?。?)結(jié)果應(yīng)能夠清楚地審查;
?。?)開發(fā)小組地人員應(yīng)該少而精;
?。?)承認不斷改進軟件工程實踐地必要性。
四、編寫《軟件項目計劃書》
項目組成立的第一件事是編寫《軟件項目計劃書》,在計劃書中描述開發(fā)日程安排、資源需求、項目管理等各項情況的大體內(nèi)容。計劃書主要向公司各相關(guān)人員發(fā)放,使他們大體了解該軟件項目的情況。對于計劃書的每個內(nèi)容,都應(yīng)有相應(yīng)具體實施手冊,這些手冊是供項目組相關(guān)成員使用的。
《軟件項目計劃書》一般應(yīng)該包括下述內(nèi)容:
1.引言
1.1計劃的目的
1.2項目的范圍和目標(biāo)
1.2.1范圍描述
1.2.2主要功能
1.2.3性能
1.2.4管理和技術(shù)約束
2.項目估算
2.1使用的歷史數(shù)據(jù)
2.2使用的評估技術(shù)
2.3工作量、成本、時間估算
3.風(fēng)險管理戰(zhàn)略
3.1風(fēng)險識別
3.2有關(guān)風(fēng)險的討論
3.3風(fēng)險管理計劃
3.3.1風(fēng)險計劃
3.3.2風(fēng)險監(jiān)視
3.3.3風(fēng)險管理
4.日程
4.1項目工作分解結(jié)構(gòu)
4.2時限圖(甘特圖)
4.3資源表
5.項目資源
5.1人員
5.2硬件和軟件
5.3特別資源
6.人員組織
6.1組織結(jié)構(gòu)
6.2管理報告
7.跟蹤和控制機制
7.1質(zhì)量保證和控制
7.2變化管理和控制
8.附錄
五、軟件配置管理
是否進行配置管理與軟件的規(guī)模有關(guān),軟件的規(guī)模越大,配置管理就顯得越重要。軟件配置管理簡稱SCM(Software Configuration Management的縮寫),是在團隊開發(fā)中,標(biāo)識、控制和管理軟件變更的一種管理。配置管理的使用取決于項目規(guī)模和復(fù)雜性以及風(fēng)險水平。
1、目前軟件開發(fā)中面臨的問題
。在有限的時間、資金內(nèi),要滿足不斷增長的軟件產(chǎn)品質(zhì)量要求;
。開發(fā)的環(huán)境日益復(fù)雜,代碼共享日益困難,需跨越的平臺增多;
。程序的規(guī)模越來越大;
。軟件的重用性需要提高;
。軟件的維護越來越困難。
2、軟件配置管理應(yīng)提供的功能
在ISO9000.3中,對配置管理系統(tǒng)的功能作了如下描述:
。唯一地標(biāo)識每個軟件項的版本;
。標(biāo)識共同構(gòu)成一完整產(chǎn)品的特定版本的每一軟件項的版本;
。控制由兩個或多個獨立工作的人員同時對一給定軟件項的更新;
??刂朴蓛蓚€或多個獨立工作的人員同時對一給定軟件項的更新;
。按要求在一個或多個位置對復(fù)雜產(chǎn)品的更新進行協(xié)調(diào);
。標(biāo)識并跟蹤所有的措施和更改;這些措施和更改是在從開始直到放行期間,由于更改請求或問題引起的。
3、版本管理
軟件配置管理分為版本管理、問題跟蹤和建立管理三個部分,其中版本管理是基礎(chǔ)。版本管理應(yīng)完成以下主要任務(wù):
。建立項目;
。重構(gòu)任何修訂版的某一項或某一文件;
。利用加鎖技術(shù)防止覆蓋;
。當(dāng)增加一個修訂版時要求輸入變更描述;
。提供比較任意兩個修訂版的使用工具;
。采用增量存儲方式;
。提供對修訂版歷史和鎖定狀態(tài)的報告功能;
。提供歸并功能;
。允許在任何時候重構(gòu)任何版本;
。權(quán)限的設(shè)置;
。晉升模型的建立;
。提供各種報告。
4、配置管理軟件PVCS 6.0
PVCS6.0是一套非常優(yōu)秀的配置管理軟件,它能夠?qū)崿F(xiàn)配置管理中的各項要求,并且能和多種流行開發(fā)平臺集成,為配置管理提供了很大的方便。
六、軟件質(zhì)量管理
隨著軟件開發(fā)的規(guī)模越來越大,軟件的質(zhì)量問題顯得越來越突出。軟件質(zhì)量的控制不單單是一個軟件測試問題,在軟件開發(fā)的所有階段都應(yīng)該引入質(zhì)量管理。我公司除加強了國家標(biāo)準(zhǔn)"信息技術(shù)軟件生存期過程"(GB/T8566--1995)的規(guī)范管理外,還積極為通過ISO 9000.3做準(zhǔn)備。
1、軟件質(zhì)量保證計劃
在進行軟件開發(fā)前,需要有一個《軟件質(zhì)量保證計劃》。目前較常用的是ANSI/IEEE STOL 730--1984,983--1986標(biāo)準(zhǔn),包括以下內(nèi)容:
1.計劃目的
2.參考文獻
3.管理
3.1.組織
3.2.任務(wù)
3.3.責(zé)任
4.文檔
4.1.目的
4.2.要求的軟件工程文檔
4.3.其他文檔
5.標(biāo)準(zhǔn)和約定
5.1.目的
5.2.約定
6.評審和審計
6.1.目的
6.2.評審要求
6.2.1.軟件需求的評審
6.2.2.設(shè)計評審
6.2.3.軟件驗證和確認評審
6.2.4.功能評審
6.2.5.物理評審
6.2.6.內(nèi)部過程評審
6.2.7.管理評審
7.測試
8.問題報告和改正活動
9.工具、技術(shù)和方法
10.媒體控制
11.供應(yīng)者控制
12.記錄、收集、維護和保密
13.培訓(xùn)
14.風(fēng)險管理
2、質(zhì)量管理的基本原則
??刂扑羞^程的質(zhì)量;
。過程控制的出發(fā)點是預(yù)防不合格;
。質(zhì)量管理的中心任務(wù)是建立并實施文件化的質(zhì)量體系;
。持續(xù)的質(zhì)量改進;
。有效的質(zhì)量體系應(yīng)滿足顧客和組織內(nèi)部雙方的需要和利益;
。定期評價質(zhì)量體系;
。搞好質(zhì)量管理關(guān)鍵在于領(lǐng)導(dǎo)。
3、軟件質(zhì)量因素
正確性:系統(tǒng)滿足規(guī)格說明和用戶目標(biāo)的程度,即,在預(yù)定環(huán)境下能正確地完成預(yù)期功能的程度。
健壯性:在硬件發(fā)生故障、輸入的數(shù)據(jù)無效或操作錯誤等意外環(huán)境下,系統(tǒng)能做出適當(dāng)響應(yīng)的程度。
效率:為了完成預(yù)定的功能,系統(tǒng)需要的計算資源的多少。
完整性(安全性):對未經(jīng)授權(quán)的人使用軟件或數(shù)據(jù)的企圖,系統(tǒng)能過控制(禁止)的程度。
可用性:系統(tǒng)在完成預(yù)定應(yīng)該完成的功能時另人滿意的程度。
風(fēng)險:按預(yù)定的成本和進度把系統(tǒng)開發(fā)出來,并且為用戶所滿意的概率。
可理解性:理解和使用該系統(tǒng)的容易程度。
可維修性:診斷和改正在運行現(xiàn)場發(fā)現(xiàn)的錯誤所需要的工作量的大小。
靈活性(適應(yīng)性):修改或改進正在運行的系統(tǒng)需要的工作量的多少。
可測試性:軟件容易測試的程度。
可移植性:把程序從一種硬件配置和(或)軟件系統(tǒng)環(huán)境轉(zhuǎn)移到另一種配置和環(huán)境時,需要的工作量多少。有一種定量度量的方法是:用原來程序設(shè)計和調(diào)試的成本除移植時需用的費用。
可再用性:再其他應(yīng)用中該程序可以被再次使用的程度(或范圍)。
互運行性:把該系統(tǒng)和另一個系統(tǒng)結(jié)合起來需要的工作量的多少。
4、軟件評審
軟件評審并不是在軟件開發(fā)完畢后進行評審,而是在軟件開發(fā)的各個階段都要進行評審。因為在軟件開發(fā)的各個階段都可能產(chǎn)生錯誤,如果這些錯誤不及時發(fā)現(xiàn)并糾正,會不斷地擴大,最后可能導(dǎo)致開 發(fā)的失敗。下面這組數(shù)據(jù)可以清楚的看出前期的錯誤對后期的影響。
軟件評審是相當(dāng)重要的工作,也是目前國內(nèi)開發(fā)最不重視的工作。
(1)評審目標(biāo)
。發(fā)現(xiàn)任何形式表現(xiàn)的軟件功能、邏輯或?qū)崿F(xiàn)方面的錯誤;
。通過評審驗證軟件的需求;
。保證軟件按預(yù)先定義的標(biāo)準(zhǔn)表示;
。已獲得的軟件是以統(tǒng)一的方式開發(fā)的;
。使項目更容易管理。
(2)評審過程
A、召開評審會議:一般應(yīng)有3至5人參加,會前每個參加者做好準(zhǔn)備,評審會每次一般不超過2小時。
B、會議結(jié)束使必須做出以下決策之一:接受該產(chǎn)品,不需做修改;由于錯誤嚴重,拒絕接受;暫時接受該產(chǎn)品。
C、評審報告與記錄;所提出的問題都要進行記錄,在評審會結(jié)束前產(chǎn)生一個評審問題表,另外必須完成評審簡要報告。
(3)評審準(zhǔn)則
。評審產(chǎn)品,而不是評審設(shè)計者(不能使設(shè)計者有任何壓力);
。會場要有良好的氣氛;
。建立議事日程并維持它(會議不能脫離主題);
。限制爭論與反駁(評審會不是為了解決問題,而是為了發(fā)現(xiàn)問題;
。指明問題范圍,而不是解決提到的問題;
。展示記錄(最好有黑板,將問題隨時寫在黑板上);
。限制會議人數(shù)和堅持會前準(zhǔn)備工作;
。對每個被評審的產(chǎn)品要盡力評審清單(幫助評審人員思考);
。對每個正式技術(shù)評審分配資源和時間進度表;
。對全部評審人員進行必要的培訓(xùn);
。及早地對自己地評審做評審(對評審準(zhǔn)則的評審)。
5、ISO9000.3軟件質(zhì)量認證體系
ISO9000.3是ISO9000質(zhì)量體系認證中關(guān)于計算機軟件質(zhì)量管理和質(zhì)量保證標(biāo)準(zhǔn)部分。它從管理職責(zé)、質(zhì)量體系、合同評審、設(shè)計控制、文件和資料控制、采購、顧客提供產(chǎn)品的控制、產(chǎn)品標(biāo)識和可追溯性、過程控制、檢驗和試驗、檢驗/測量和試驗設(shè)備的控制、檢驗和試驗狀態(tài)、不合格品的控制、糾正和預(yù)防措施、搬運/貯存/包裝/防護和交付、質(zhì)量記錄的控制、內(nèi)部質(zhì)量審核、培訓(xùn)、服務(wù)、統(tǒng)計系統(tǒng)等二個方面對軟件質(zhì)量進行了要求。
6、測試
軟件測試是軟件開發(fā)的一個重要環(huán)節(jié),同時也是軟件質(zhì)量保證的一個重要環(huán)節(jié)。所謂測試就是用已知的輸入在已知環(huán)境中動態(tài)地執(zhí)行系統(tǒng)(或系統(tǒng)的部件)。測試一般包括單元測試、模塊測試、集成測試和系統(tǒng)測試。如果測試結(jié)果與預(yù)期結(jié)果不一致,則很可能是發(fā)現(xiàn)了系統(tǒng)中的錯誤,測試過程中將產(chǎn)生下述基本文檔:
(1)測試計劃:確定測試范圍、方法、和需要的資源等。
(2)測試過程:詳細描述和每個測試方案有關(guān)的測試步驟和數(shù)據(jù)(包括測試數(shù)據(jù)及預(yù)期的結(jié)果)。
(3)測試結(jié)果:把每次測試運行的結(jié)果歸入文檔,如果運行出錯,則應(yīng)產(chǎn)生問題報告,并且必須經(jīng)過調(diào)試解決所發(fā)現(xiàn)的問題。測試結(jié)果:把每次測試運行的結(jié)果歸入文檔,如果運行出錯,則應(yīng)產(chǎn)生問題報告,并且必須經(jīng)過調(diào)試解決所發(fā)現(xiàn)的問題。
七、軟件風(fēng)險管理
軟件項目管理存在著風(fēng)險,如果我們提前重視風(fēng)險,并且有所防范,就可以最大限度減少風(fēng)險的發(fā)生。進行風(fēng)險管理是有效的手段。
1、風(fēng)險的分類
根據(jù)風(fēng)險內(nèi)容,我們可以將風(fēng)險分為項目風(fēng)險(成本提高,時間延長等)、技術(shù)風(fēng)險(技術(shù)不成熟等)、商業(yè)風(fēng)險(銷售問題等)、戰(zhàn)略風(fēng)險(公司的經(jīng)營戰(zhàn)略發(fā)生了變化)、管理風(fēng)險(公司管理人員是否成熟等)、預(yù)算風(fēng)險(預(yù)算是否準(zhǔn)確等)等。
另外,我們還可以將風(fēng)險分為已知風(fēng)險(如員工離職等)、可預(yù)報風(fēng)險(從以往經(jīng)驗得出可能有風(fēng)險的)和不可預(yù)知風(fēng)險。
2、風(fēng)險的識別
風(fēng)險識別的有效方法是建立風(fēng)險項目檢查表。主要涉及以下幾方面檢查:
。產(chǎn)品規(guī)模風(fēng)險檢查
。業(yè)務(wù)影響風(fēng)險檢查
。與客戶相關(guān)的風(fēng)險檢查
。過程風(fēng)險檢查
。技術(shù)風(fēng)險檢查
。開發(fā)環(huán)境風(fēng)險檢查
。與人員的模式和經(jīng)驗有關(guān)的風(fēng)險檢查
3、風(fēng)險評估
風(fēng)險評估主要從下面七個方面進行:
。發(fā)生的可能性
。發(fā)生的結(jié)果(影響)
。建立一個尺度表示風(fēng)險可能性(如,極罕見、罕見、普通、可能、極可能)
。描述風(fēng)險帶來的后果
。估計對產(chǎn)品和項目的影響
。確定風(fēng)險評估的正確性
。根據(jù)影響排定有限隊列
另外,要對每個風(fēng)險的表現(xiàn)、范圍、時間做出盡量準(zhǔn)確的判斷。
4、風(fēng)險的評價
對風(fēng)險的評價主要依據(jù)三個因素:風(fēng)險描述、風(fēng)險概率和風(fēng)險影響。從成本、進度及性能三個方面對風(fēng)險進行評價。確定項目的中止點,在中止點出再一次進行風(fēng)險評價。
5、風(fēng)險的駕馭和監(jiān)控
風(fēng)險的駕馭與監(jiān)控主要要靠管理者的經(jīng)驗來實施。如,某開發(fā)人員的離職概率是0.7,離職后會對項目造成一定的影響,則該風(fēng)險駕馭和監(jiān)控的策略如下:
。與在職人員協(xié)商,確定流動原因。
。在項目開始前,把環(huán)節(jié)這些流動原因的工作列入風(fēng)險駕馭計劃。
。項目開始時,作好人是會流動的準(zhǔn)備,采取一些措施確保人員一旦離開時,項目仍能繼續(xù)。
。制定文檔標(biāo)準(zhǔn),并建立一種機制,保證文檔及時產(chǎn)生。
。對所有工作進行細微詳審,使更多人能夠按計劃進度完成自己的工作。
。對每個關(guān)鍵性技術(shù)人員培養(yǎng)后備人員。
在考慮風(fēng)險成本之后,決定是否采用上述策略。
八、人員管理
1、對項目經(jīng)理的要求
。能夠使小組每個成員都能發(fā)揮能力
。有一定的組織能力
。能夠使小組美味成員有成就感
。有提出解決問題方案的能力
。對問題的理解有一定的深度
。要能讓成員知道軟件質(zhì)量的重要性
2、人員的通訊方式
(1)正式非個人方式,如正式會議等;
?。?)正式個人之間交流,如成員之間的正式討論等(一般不形成決議);
?。?)非正式個人之間交流,如個人之間的自由交流等;
?。?)電子通訊,如E-MAIL(電子郵件)、BBS(電子公告板系統(tǒng))等;
?。?)成員網(wǎng)絡(luò),如成員與小組之外或公司之外有經(jīng)驗的相關(guān)人員進行交流;
在實踐中發(fā)現(xiàn),(5)的通訊效率最高,其次是(1)。
3、人力資源管理中的風(fēng)險管理
在進行人力資源管理時,我們往往重視招聘、培訓(xùn)、考評、薪資等各個具體內(nèi)容的操作,而忽視了其中的風(fēng)險管理問題。其實,每個企業(yè)在人事管理中都可能遇到風(fēng)險,如招聘失敗、新政策引起員工不滿、技術(shù)骨干突然離職等等,這些事件會影響公司的正常運轉(zhuǎn),甚至?xí)驹斐芍旅拇驌?。如何防范這些風(fēng)險的發(fā)生,是我們應(yīng)該研究的問題。特別是高新技術(shù)企業(yè),由于對人的依賴更大,所以更需要重視人力資源管理中的風(fēng)險管理。
【?發(fā)表評論?0條?】