軟件項目計劃是一個軟件項目進入系統(tǒng)實施的啟動階段,主要進行的工作包括:確定詳細的項目實施范圍、定義遞交的工作成果、評估實施過程中主要的風險、制定項目實施的時間計劃、成本和預算計劃、人力資源計劃等。
軟件項目管理過程從項目計劃活動開始,而第一項計劃活動就是估算:需要多長時間、需要多少工作量、以及需要多少人員。此外,我們還必須估算所需要的資源(硬件及軟件)和可能涉及到的風險。
為了估算軟件項目的工作量和完成期限,首先需要預測軟件規(guī)模。度量軟件規(guī)模的常用方法有直接的方法——LOC(代碼行),間接的方法——FP(功能點)。這兩種方法各有優(yōu)缺點,應(yīng)該根據(jù)軟件項目的特點選擇適用的軟件規(guī)模度量方法。
根據(jù)項目的規(guī)??梢怨浪愠鐾瓿身椖克璧墓ぷ髁浚覀兛梢允褂靡环N或多種技術(shù)進行估算,這些技術(shù)主要分為兩大類:分解和經(jīng)驗建模。分解技術(shù)需要劃分出主要的軟件功能,接著估算實現(xiàn)每一個功能所需的程序規(guī)?;蛉嗽聰?shù)。經(jīng)驗技術(shù)的使用是根據(jù)經(jīng)驗導出的公式來預測工作量和時間。可以使用自動工具來實現(xiàn)某一特定的經(jīng)驗模型。
精確的項目估算一般至少會用到上述技術(shù)中的兩種。通過比較和協(xié)調(diào)使用不同技術(shù)導出的估算值,我們可能得到更精確的估算。軟件項目估算永遠不會是一門精確的科學,但將良好的歷史數(shù)據(jù)與系統(tǒng)化的技術(shù)結(jié)合起來能夠提高估算的精確度。
當對軟件項目給予較高期望時,一般都會進行風險分析。在標識、分析和管理風險上花費的時間和人力可以從多個方面得到回報:更加平穩(wěn)的項目進展過程;更高的跟蹤和控制項目的能力;由于在問題發(fā)生之前已經(jīng)做了周密計劃而產(chǎn)生的信心。
對于一個項目管理者,他的目標是定義所有的項目任務(wù),識別出關(guān)鍵任務(wù),跟蹤關(guān)鍵任務(wù)的進展情況,以保證能夠及時發(fā)現(xiàn)拖延進度的情況。為此,項目管理者必須制定一個足夠詳細的進度表,以便監(jiān)督項目進度并控制整個項目。
常用的制定進度計劃的工具主要有Gantt圖和工程網(wǎng)絡(luò)兩種。Gantt圖具有悠久歷史、直觀簡明、容易學習、容易繪制等優(yōu)點,但是,它不能明顯地表示各項任務(wù)彼此間的依賴關(guān)系,也不能明顯地表示關(guān)鍵路徑和關(guān)鍵任務(wù),進度計劃中的關(guān)鍵部分不明確。因此,在管理大型軟件項目時,僅用Gantt圖是不夠的,不僅難于做出既節(jié)省資源又保證進度的計劃,而且還容易發(fā)生差錯。
工程網(wǎng)絡(luò)不僅能描繪任務(wù)分解情況及每項作業(yè)的開始時間和結(jié)束時間,而且還能清楚地表示各個作業(yè)彼此間的依賴關(guān)系。從工程網(wǎng)絡(luò)圖中容易識別出關(guān)鍵路徑和關(guān)鍵任務(wù)。因此,工程網(wǎng)絡(luò)圖是制定進度計劃的強有力的工具。通常,聯(lián)合使用Gantt圖和工程網(wǎng)絡(luò)這兩種工具來制定和管理進度計劃,使它們互相補充、取長補短。
進度安排是軟件項目計劃的首要任務(wù),而項目計劃則是軟件項目管理的首要組成部分。與估算方法和風險分析相結(jié)合,進度安排將為項目管理者建立起一張計劃圖。