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