- 相關(guān)推薦
軟件項目管理制度建設(shè)
背景知識編輯
軟件項目管理的提出是在20世紀(jì)70年代中期的美國,當(dāng)時美國國防部專門研究了軟件開發(fā)不能按時提交,預(yù)算超支和質(zhì)量達(dá)不到用戶要求的原因,結(jié)果發(fā)現(xiàn)70%的項目是因為管理不善引起的,而非技術(shù)原因。于是軟件開發(fā)者開始逐漸重視起軟件開發(fā)中的各項管理。到了20世紀(jì)90年代中期,軟件研發(fā)項目管理不善的問題仍然存在。據(jù)美國軟件工程實施現(xiàn)狀的調(diào)查,軟件研發(fā)的情況仍然很難預(yù)測,大約只有10%的項目能夠在預(yù)定的費(fèi)用和進(jìn)度下交付。
1995年,據(jù)統(tǒng)計,美國共取消了810億美元的商業(yè)軟件項目,其中31%的項目未做完就被取消,53%的軟件項目進(jìn)度通常要延長50%的時間,只有9%的軟件項目能夠及時交付并且費(fèi)用也控制在預(yù)算之內(nèi)。
軟件項目管理和其他的項目管理相比有相當(dāng)?shù)奶厥庑。首先,軟件是純知識產(chǎn)品,其開發(fā)進(jìn)度和質(zhì)量很難估計和度量,生產(chǎn)效率也難以預(yù)測和保證。其次,軟件系統(tǒng)的復(fù)雜性也導(dǎo)致了開發(fā)過程中各種風(fēng)險的難以預(yù)見和控制。Windows這樣的操作系統(tǒng)有1500萬行以上的代碼,同時有數(shù)千個程序員在進(jìn)行開發(fā),項目經(jīng)理都有上百個。這樣龐大的系統(tǒng)如果沒有很好的管理,其軟件質(zhì)量是難以想象的。
軟件項目管理的內(nèi)容主要包括如下幾個方面:人員的組織與管理,軟件度量,軟件項目計劃,風(fēng)險管理,軟件質(zhì)量保證,軟件過程能力評估,軟件配置管理等。
這幾個方面都是貫穿、交織于整個軟件開發(fā)過程中的,其中人員的組織與管理把注意力集中在項目組人員的構(gòu)成、優(yōu)化;軟件度量把關(guān)注用量化的方法評測軟件開發(fā)中的費(fèi)用、生產(chǎn)率、進(jìn)度和產(chǎn)品質(zhì)量等要素是否符合期望值,包括過程度量和產(chǎn)品度量兩個方面;軟件項目計劃主要包括工作量、成本、開發(fā)時間的估計,并根據(jù)估計值制定和調(diào)整項目組的工作;風(fēng)險管理預(yù)測未來可能出現(xiàn)的各種危害到軟件產(chǎn)品質(zhì)量的潛在因素并由此采取措施進(jìn)行預(yù)防;質(zhì)量保證是保證產(chǎn)品和服務(wù)充分滿足消費(fèi)者要求的質(zhì)量而進(jìn)行的有計劃,有組織的活動;軟件過程能力評估是對軟件開發(fā)能力的高低進(jìn)行衡量;軟件配置管理針對開發(fā)過程中人員、工具的配置、使用提出管理策略。因為大家對人力資源管理和軟件過程能力比較有興趣,下面就詳細(xì)的對這兩方面展開討論。
開發(fā)計劃編輯
軟件項目計劃是一個軟件項目進(jìn)入系統(tǒng)實施的啟動階段,主要進(jìn)行的工作包括:確定詳細(xì)的項目實施范圍、定義遞交的工作成果、評估實施過程中主要的風(fēng)險、制定項目實施的時間計劃、成本和預(yù)算計劃、人力資源計劃等。
軟件項目管理過程從項目計劃活動開始,而第一項計劃活動就是估算:需要多長時間、需要多少工作量、以及需要多少人員。此外,我們還必須估算所需要的資源(硬件及軟件)和可能涉及到的風(fēng)險。
為了估算軟件項目的工作量和完成期限,首先需要預(yù)測軟件規(guī)模。度量軟件規(guī)模的常用方法有直接的方法——LOC(代碼行),間接的方法——FP(功能點)。這兩種方法各有優(yōu)缺點,應(yīng)該根據(jù)軟件項目的特點選擇適用的軟件規(guī)模度量方法。
根據(jù)項目的規(guī)?梢怨浪愠鐾瓿身椖克璧墓ぷ髁,我們可以使用一種或多種技術(shù)進(jìn)行估算,這些技術(shù)主要分為兩大類:分解和經(jīng)驗建模。分解技術(shù)需要劃分出主要的軟件功能,接著估算實現(xiàn)每一個功能所需的程序規(guī);蛉嗽聰(shù)。經(jīng)驗技術(shù)的使用是根據(jù)經(jīng)驗導(dǎo)出的公式來預(yù)測工作量和時間。可以使用自動工具來實現(xiàn)某一特定的經(jīng)驗?zāi)P汀?/p>
精確的項目估算一般至少會用到上述技術(shù)中的兩種。通過比較和協(xié)調(diào)使用不同技術(shù)導(dǎo)出的估算值,我們可能得到更精確的估算。軟件項目估算永遠(yuǎn)不會是一門精確的科學(xué),但將良好的歷史數(shù)據(jù)與系統(tǒng)化的技術(shù)結(jié)合起來能夠提高估算的精確度。
當(dāng)對軟件項目給予較高期望時,一般都會進(jìn)行風(fēng)險分析。在標(biāo)識、分析和管理風(fēng)險上花費(fèi)的時間和人力可以從多個方面得到回報:更加平穩(wěn)的項目進(jìn)展過程;更高的跟蹤和控制項目的能力;由于在問題發(fā)生之前已經(jīng)做了周密計劃而產(chǎn)生的信心。
對于一個項目管理者,他的目標(biāo)是定義所有的項目任務(wù),識別出關(guān)鍵任務(wù),跟蹤關(guān)鍵任務(wù)的進(jìn)展情況,以保證能夠及時發(fā)現(xiàn)拖延進(jìn)度的情況。為此,項目管理者必須制定一個足夠詳細(xì)的進(jìn)度表,以便監(jiān)督項目進(jìn)度并控制整個項目。
常用的制定進(jìn)度計劃的工具主要有Gantt圖和工程網(wǎng)絡(luò)兩種。Gantt圖具有悠久歷史、直觀簡明、容易學(xué)習(xí)、容易繪制等優(yōu)點,但是,它不能明顯地表示各項任務(wù)彼此間的依賴關(guān)系,也不能明顯地表示關(guān)鍵路徑和關(guān)鍵任務(wù),進(jìn)度計劃中的關(guān)鍵部分不明確。因此,在管理大型軟件項目時,僅用Gantt圖是不夠的,不僅難于做出既節(jié)省資源又保證進(jìn)度的計劃,而且還容易發(fā)生差錯。
工程網(wǎng)絡(luò)不僅能描繪任務(wù)分解情況及每項作業(yè)的開始時間和結(jié)束時間,而且還能清楚地表示各個作業(yè)彼此間的依賴關(guān)系。從工程網(wǎng)絡(luò)圖中容易識別出關(guān)鍵路徑和關(guān)鍵任務(wù)。因此,工程網(wǎng)絡(luò)圖是制定進(jìn)度計劃的強(qiáng)有力的工具。通常,聯(lián)合使用Gantt圖和工程網(wǎng)絡(luò)這兩種工具來制定和管理進(jìn)度計劃,使它們互相補(bǔ)充、取長補(bǔ)短。
進(jìn)度安排是軟件項目計劃的首要任務(wù),而項目計劃則是軟件項目管理的首要組成部分。與估算方法和風(fēng)險分析相結(jié)合,進(jìn)度安排將為項目管理者建立起一張計劃圖。
項目控制編輯
對于軟件開發(fā)項目而言,控制是十分重要的管理活動。下面介紹軟件工程控制活動中的質(zhì)量保證和配置管理。其實上面所提到的風(fēng)險分析也可以算是軟件工程控制活動的一類。而進(jìn)度跟蹤則起到連接軟件項目計劃和控制的作用。
軟件質(zhì)量保證(SQA,Software Quality Assurance)是在軟件過程中的每一步都進(jìn)行的“保護(hù)性活動”。SQA主要有基于非執(zhí)行的測試(也稱為評審)、基于執(zhí)行的測試(即通常所說的測試)和程序正確性證明。
軟件評審是最為重要的SQA活動之一。它的作用是,在發(fā)現(xiàn)及改正錯誤的成本相對較小時就及時發(fā)現(xiàn)并排除錯誤。審查和走查是進(jìn)行正式技術(shù)評審的兩類具體方法。審查過程不僅步數(shù)比走審多,而且每個步驟都是正規(guī)的。由于在開發(fā)大型軟件過程中所犯的錯誤絕大數(shù)是規(guī)格說明錯誤或設(shè)計錯誤,而正式的技術(shù)評審發(fā)現(xiàn)這兩類錯誤的有效性高達(dá)75%,因此是非常有效的軟件質(zhì)量保證方法。
軟件配置管理(SCM,Software configuration management)是應(yīng)用于整個軟件過程中的保護(hù)性活動,它是在軟件整個生命周期內(nèi)管理變化的一組活動。
軟件配置由一組相互關(guān)聯(lián)的對象組成,這些對象也稱為軟件配置項,它們是作為某些軟件工程活動的結(jié)果而產(chǎn)生的。除了文檔、程序和數(shù)據(jù)這些軟件配置項之外,用于開發(fā)軟件的開發(fā)環(huán)境也可置于配置控制之下。
一旦一個配置對象已被開發(fā)出來并且通過了評審,它就變成了基線。對基線對象的修改導(dǎo)致建立該對象的版本。版本控制是用于管理這些對象而使用的一組規(guī)程和工具。
變更控制是一種規(guī)程活動,它能夠在對配置對象進(jìn)行修改時保證質(zhì)量和一致性。配置審計是一項軟件質(zhì)量保證活動,它有助于確保在進(jìn)行修改時仍然保持質(zhì)量。狀態(tài)報告向需要知道關(guān)于變化的信息的人,提供有關(guān)每項變化的信息。
組織模式編輯
軟件項目可以是一個單獨的開發(fā)項目,也可以與產(chǎn)品項目組成一個完整的軟件產(chǎn)品項目。如果是訂單開發(fā),則成立軟件項目組即可;如果是產(chǎn)品開發(fā),需成立軟件項目組和產(chǎn)品項目(負(fù)責(zé)市場調(diào)研和銷售),組成軟件產(chǎn)品項目組。公司實行項目管理時,首先要成立項目管理委員會,項目管理委員會下設(shè)項目管理小組、項目評審小組和軟件產(chǎn)品項目組。
3.1、項目管理委員會項目管理委員會是公司項目管理的最高決策機(jī)構(gòu),一般由公司總經(jīng)理、副總經(jīng)理組成。主要職責(zé)如下:
(1)依照項目管理相關(guān)制度管理項目;
(2)監(jiān)督項目管理相關(guān)制度的執(zhí)行;
(3)對項目立項、項目撤消進(jìn)行決策;
(4)任命項目管理小組組長、項目評審委員會主任、項目組組長.
3.2、項目管理小組項目管理小組對項目管理委員會負(fù)責(zé),一般由公司管理人員組成。主要職責(zé)如下:
(1)草擬項目管理的各項制度;
(2)組織項目階段評審;
(3)保存項目過程中的相關(guān)文件和數(shù)據(jù);
(4)為優(yōu)化項目管理提出建議。
3.3、項目評審小組項目評審小組對項目管理委員會負(fù)責(zé),可下設(shè)開發(fā)評審小組和產(chǎn)品評審小組,一般由公司技術(shù)專家和市場專家組成。主要職責(zé)如下:
(1)對項目可行性報告進(jìn)行評審;
(2)對市場計劃和階段報告進(jìn)行評審;
(3)對開發(fā)計劃和階段報告進(jìn)行評審;
(4)項目結(jié)束時,對項目總結(jié)報告進(jìn)行評審。
3.4、軟件產(chǎn)品項目組軟件產(chǎn)品項目組對項目管理委員會負(fù)責(zé),可下設(shè)軟件項目組和產(chǎn)品項目組。軟件項目組和產(chǎn)品項目組分別設(shè)開發(fā)經(jīng)理和產(chǎn)品經(jīng)理。成員一般由公司技術(shù)人員和市場人員構(gòu)成。主要職責(zé)是:根據(jù)項目管理委員會的安排具體負(fù)責(zé)項目的軟件開發(fā)和市場調(diào)研及銷售工作。
項目管理編輯
從軟件工程的角度講,軟件開發(fā)主要分為六個階段:需求分析階段、概要設(shè)計階段、詳細(xì)設(shè)計階段、編碼階段、測試階段、安裝及維護(hù)階段。不論是作坊式開發(fā),還是團(tuán)隊協(xié)作開發(fā),這六個階段都是不可缺少的。根據(jù)公司實際情況,公司在進(jìn)行軟件項目管理時,重點將軟件配置管理、項目跟蹤和控制管理、軟件風(fēng)險管理及項目策劃活動管理四方面內(nèi)容導(dǎo)入軟件開發(fā)的整個階段。在20世紀(jì)80年代初,著名軟件工程專家B.W.Boehm總結(jié)出了軟件開發(fā)時需遵循的七條基本原則,同樣,在進(jìn)行軟件項目管理時,也應(yīng)該遵循這七條原則。它們是:
(1)用分階段的生命周期計劃嚴(yán)格管理;
(2)堅持進(jìn)行階段評審;
(3)實行嚴(yán)格的產(chǎn)品控制;
(4)采用現(xiàn)代程序設(shè)計技術(shù);
(5)結(jié)果應(yīng)能夠清楚地審查;
(6)開發(fā)小組地人員應(yīng)該少而精;
(7)承認(rèn)不斷改進(jìn)軟件工程實踐的必要性。
上一篇:社區(qū)家長學(xué)校管理制度 下一篇:沒有了【軟件項目管理制度建設(shè)】相關(guān)文章:
建設(shè)項目管理制度03-13
施工項目建設(shè)的管理制度03-07
工程項目建設(shè)管理制度03-07
建設(shè)項目的管理制度03-07
水利建設(shè)項目管理制度01-10
學(xué)校項目建設(shè)管理制度(精選14篇)06-16
建設(shè)工程項目的管理制度03-07