解決軟件危機的過程中,越來越多的軟件開發(fā)公司意識到在軟件項目開發(fā)過程中有效的管理所起到的重要作用。而在軟件項目管理過程中,軟件項目的計劃管理則是決定項目能否順利實施的關(guān)鍵內(nèi)容。
本文將在下面具體闡述軟件項目的計劃管理。
1 軟件項目計劃概述
軟件項目計劃是指為軟件工程的運作和軟件項目活動的管理提供一個合理的基礎(chǔ)和可行的工作計劃的過程。其目的是為執(zhí)行軟件工程和管理軟件項目制定合理的計劃。
具體來講,就是:
(1)使軟件項目的開發(fā)建立在可靠的基礎(chǔ)之上,并將計劃文檔化,由開發(fā)人員遵循,并據(jù)此跟蹤檢查計劃的執(zhí)行。
(2)確定軟件項目開發(fā)的活動的承諾,使軟件開發(fā)工作有序而協(xié)調(diào)的開展,以便根據(jù)軟件計劃的資源、約束和能力逐步向客戶履行承諾。
(3)明確與軟件項目相關(guān)的組織和個人的承諾,將責(zé)任落實到組和個人,從組織管理上保證項目開發(fā)的成功。
2 制定計劃應(yīng)遵循的原則
2 . 1 重視對項目信息的了解
制定軟件項目計劃,不僅僅需要經(jīng)驗,更需要全面了解項目的相關(guān)信息。必須掌握的信息包括:關(guān)于所在組織的信息,包括組織結(jié)構(gòu)圖,各部門的職能,各關(guān)鍵部門的經(jīng)理和部分成員(并盡可能認(rèn)識這些人);
關(guān)于市場的信息,包括本行業(yè)新產(chǎn)品和新技術(shù)的發(fā)布,競爭對手的情況,競爭對手的主要客戶群信息;關(guān)于歷史項目的信息,尤其需要注意以往項目實施過程中出現(xiàn)的問題記錄和解決方法;
關(guān)于客戶的信息,與客戶的溝通是相當(dāng)重要的,特別要理解清楚客戶對時間、進度和效果上的要求。只有在了解足夠信息的基礎(chǔ)上制定計劃,才能增強指導(dǎo)性和針對性。
2 . 2 重視項目計劃的層次性
軟件項目計劃的層次通常分為高級計劃、階段計劃和低級計劃。高級計劃是項目的早期計劃,主要進行項目的階段劃分,主要包括人、財、物3個要素。大的階段交替之前,我們要做好下一階段的詳細(xì)計劃,稱之為階段計劃。
階段計劃要確定各項任務(wù)的負(fù)責(zé)人、開始和結(jié)束時間、設(shè)備資源、任務(wù)之間的依賴關(guān)系、小的事件點(即里程碑)。開發(fā)人員的個人計劃是低級計劃,由開發(fā)人員根據(jù)自己的任務(wù)自行制定。
通常,軟件項目計劃至多有4級,較小的軟件項目有2級計劃(高級計劃與低級計劃)也是可行的。
2 . 3 重視歷史數(shù)據(jù)的運用和積累
要充分利用以往類似軟件項目的歷史數(shù)據(jù)。不光成功項目的數(shù)據(jù)具有參照價值,失敗項目的數(shù)據(jù)也具有借鑒作用??梢愿鶕?jù)它們來制定和改進計劃。此外也要注意積累歷史數(shù)據(jù),以便于為我所用,這些是可復(fù)用的資源。最好是通過文檔化的過程形成模板,將以往的成功經(jīng)驗高效繼承。.
2 . 4 重視用過程化的思想指導(dǎo)開發(fā)
我們知道軟件能力成熟度模型CMM,描述了五個級別的軟件過程成熟度:初始級,可重復(fù)級,已定義級,已定量管理級,優(yōu)化級。在可重復(fù)級即CMM2這個等級上,該過程具備了對軟件項目基本的管理控制、方針和規(guī)程,并強調(diào)文檔化的過程,一個項目成功了,就可以認(rèn)為下一個項目也可以成功。
在項目的實施過程中,通常需要根據(jù)項目的進展情況及變更對項目計劃進行修改,在策劃和重新策劃中涉及的內(nèi)容,都包含在CMM2過程中。運用軟件過程化CMM2的思想指導(dǎo)計劃的編制與實施,可以提高軟件項目的可控程度。盡管當(dāng)前大多數(shù)企業(yè)都難以達(dá)到CMM2級及以上的等級能力水平,但至少要具備過程化的思想。
3 計劃的技術(shù)方法
在制定軟件項目的計劃時,以下是常用的技術(shù)。
3.1 PERT
PERT(計劃評審技術(shù),Program Evaluationan Review Technique)是50年代末美國海軍部在研制北極星潛艇系統(tǒng)時為協(xié)調(diào)3000多個承包商和研究機構(gòu)而開發(fā)的,其理論基礎(chǔ)是:假設(shè)軟件