項目進度計劃安排軟件
在軟件項目管理工作中,對軟件項目的進度安排有時比對軟件成本的估算要求更高。成本的增加可以通過提高產品定價或通過大批量銷售得到補償,而項目進度安排不當會引起顧客不滿,影響市場銷售。制定軟件項目進度表有兩種途徑:其一是軟件開發小組根據提供軟件產品的最后期限從后往前安排時間;其二是軟件項目開發組織根據項目和資源情況制定軟件項目開發的初步計劃和交付軟件產品的日期。多數軟件開發組織當然希望按照第二種方式安排自己的工作進度。然而遺憾的是,大多數場合遇到的都是比較被動的第一種方式。
一、進度計劃控制措施
施工進度控制以項目施工工期的總目標為據確定分目標,將目標層層分解、落實,從技術管理等方面采取措施,以保證分目標的實現來確??偰繕?。
1、現場技術控制
組織有豐富類似工程施工的技術骨干編制實施性施組及施工技術方案,施工方案應充分利用現有成熟工法,結合工程實際適時調整施工工藝和技術,不斷提高生產效率;實施標準化管理,在施工中,做好技術交底、現場檢測,確保正常施工,杜絕返工。
2、進度計劃動態管理
采用信息化施工技術、計算機輔助管理技術等方法進行進度控制。利用軟件進行施工進度計劃的編排、調整,以關鍵工序為綱,點面結合,優化施工程序,合理確定并控制好關鍵線路。做好冬雨季施工的安排和管理,提前做好抵御災害性天氣的各種準備,搶晴天,戰雨天,最大限度的減小天氣變化對工期的影響。積極做好節假日期間的工作安排,力保節假日其間施工正常進行。
3、關鍵工序工期保證措施
3.1、基坑支護施工工期保證措施
?、俑鶕訃o樁的數量及進度,必要時增加鉆機配備數量,保證基坑圍護結構按期完成。②開挖前及時做好地下水和地表排水調查工作。③保證挖土機械、運輸設備計劃落實及相應人力資源落實,確保按計劃完成施工任務。④合理安排運輸通達,使場內交通通暢有序。
3.2、基坑降水施工工期保證措施
?、俦WC降水井的施工質量。
二、軟件項目的進度安排必須妥善處理以下幾個問題:
1、任務分配、人力資源分配、時間分配要與工程進度相協調
在小型軟件開發項目中,一個程序員能夠完成從需求分析、設計、編碼,到測試的全部工作。隨著軟件項目規模的擴大,人們無法容忍一個人花十年時間去完成一個需要十幾個人年才能完成的軟件項目。大型軟件的開發方式必然是程序員們的集體勞動。由于軟件開發是一項復雜的智力勞動,在軟件開發過程中加入新的程序員往往會對項目產生不良影響。因為新手要從了解這個系統和以前的工作做起,當前正在從事這項工作的“專家”不得不停下手中的工作,抽出時間對他們進行培訓。于是,在一段時間內,工作進度便拖后了。軟件開發人數的增加將導致信息交流路徑和復雜性的增加,項目進行中盲目增加人員可能造成事倍功半的效果。適用于大型項目的Rayleigh-Norden曲線[4]表明,完成軟件項目的成本與時間的關系不是線性的,使用較少的人員,在可能的情況下,相對延長一些工作時間可以取得較大的經濟效益。然而值得指出的是,程序員小組的正常技術交流能改進軟件質量,提高軟件的可維護性,減少軟件錯誤,降低軟件測試和正確性維護的開銷。任務、人力、時間三者之間存在最佳組合,必須引起項目負責人的足夠重視。
2、任務分解與并行化
軟件工程項目既然需要軟件開發人員集體的勞動,就需要采取一定的組織形式,將軟件開發人員組織起來。軟件人員的組織與分工是與軟件項目的任務分解分不開的。為了縮短工程進度,充分發揮軟件開發人員的潛力,軟件項目的任務分解應盡力挖掘并行成分,以便軟件施工時采用并行處理方式。
3、工作量分布
用前幾節介紹的軟件估算技術可以估算出軟件開發各個階段所需要的工作量,通常用人月或人年表示。軟件在需求分析和設計階段占用的工作量達到總工作量的40%~50%,說明軟件開發前期的活動多么重要。當然這也包括分階段開發原型的開銷。大家熟悉的編碼工作只占全部工作量的10%~20%,而軟件測試和調試的工作量占到總工作量的30%~40%。這對于保證軟件產品質量是十分必要的,實時嵌入式系統軟件的測試和調試工作量所占的比例還要大些。
4、工程進度安排
軟件項目的工作安排與其他工程項目的進度安排十分相似,通常的項目進度安排方法和工具稍加改造就可以用于軟件項目的進度安排。目前,程序評估與審查技術(PERT)和關鍵路徑方法(CPM)是兩種比較常用的項目進度安排方法。兩種方法都生成描述項目進展狀態的任務網絡圖。網絡圖中按一定的次序列出所有的子任務和任務進展的里程碑,它表示各子任務之間的依賴關系。網絡圖也是作業分解結構(WBS)的發展。20世紀70年代,作業分解結構就已廣泛應用于航天、航空、航海、雷達、通信、火控系統等領域的基于計算機項目的分解,并用以命名各項子任務,這些子任務不僅可以用網絡圖的形式表示,還可以用樹型或層次結構圖表示。PERT和CPM方法為軟件規劃人員提供了定量描述工具,包括:
?、訇P鍵路徑。完成關鍵路徑上所有任務時間的總和,就是項目開發所需要的最短時間。②用統計模型估算開發每個子任務需要的工作量和時間。③計算各子任務的最早啟動時間和最遲啟動時間,即確定啟動子任務的時間窗口邊界。
某個子任務的最早啟動時間被定義為該子任務的所有前導任務完成的最早時間。反之,某個子任務的最遲啟動時間被定義為在保證項目按時完成的前提下,最遲啟動該子任務的時間。與最早啟動時間和最遲啟動時間對應的概念是最早結束時間和最遲結束時間。它們分別是最早啟動時間和最遲啟動時間與完成該子任務所需要時間的和。
采用這些工具可以大大減輕軟件項目管理人員在制定軟件項目進度表方面的工作量,并可提高工作質量。在任務進度安排過程中,應先尋求關鍵路徑并在關鍵路徑上安排一定的機動時間和節假日,以便應付意想不到的困難和問題。