如何對軟件開發項目進度管理?

如何對軟件開發項目進度管理?

隨著計算機技術的發展,軟件開發技術也日益成熟,軟件開發項目及從業人員也日益增多 。由于沒有一個標準劃分,管理上有很多問題不容易解決 。文章對影響軟件開發進度的主要因素進行分析 , 闡明了進度管理的重要性,并對具體的項目開發進度管理方法進行了探討 。

軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動 。實際上,軟件項目管理的意義不僅僅如此 , 進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力 , 企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展 。因此 , 怎樣對軟件項目進行有效的管理是急需研究的課題 , 國內外專家學者也展開了相關的研究 。
 現代軟件工程為核心 , 系統分析了項目管理領域中軟件項目存在的問題,提出在理想和現實之間選擇平衡點的建議和方法 。林銳[2]編寫的《IT企業項目管理:問題、方法和工具》一書為IT企業提供了專業性很強、行之有效的項目管理方法和相應的工具,解決了大多數IT企業的軟硬件開發項目管理混亂、質量低下、進度延誤、費用超支等問題 。哈羅德?科茲納[4]在《項目管理:計劃、進度和控制的系統方法》一書中討論了時間管理、沖突管理等問題,分析了影響項目成功的因素 。石慧[4]運用動態規劃的思想和網絡計劃的方法,利用馬爾可夫鏈模型進行軟件項目進度預測,對軟件開發項目中的計劃和控制應用進行研究,構建了一個并行的IT項目進度馬爾可夫鏈預測模型 。

由于缺乏相關的法規政策,軟件項目開發的進度很大程度上取決于程序員自身的專業技能和職業道德水平 。由于沒有一個標準劃分,管理上有很多問題不容易解決 。本文對影響軟件開發進度的主要因素進行分析,闡明了進度管理的重要性,并對具體的項目開發進度管理方法進行了探討 。

1 影響軟件開發項目進度的主要因素

軟件項目在開發過程中,有很多影響其進度的因素,內因、外因、主觀、客觀因素均有,情況比較復雜 。為順利管理軟件開發項目進度,首先要對其中主要影響進度的因素有所了解 。

1.1 80-20原則,未按原計劃執行進度

80-20原則用在經濟學中是指百分之八十的價值是來自20%的因子,其余的20%的價值則來自80%的因子 。在計算機軟件開發領域,我們可以這么理解:80%的項目工作可以在20%的時間內完成,而剩余的20%的項目工作需要80%的時間 。

一般來講,這剩余的兩成工作屬于比較難的技術關鍵部分,通常出現在后期 。由于軟件開發過程的不確定性 , 在任何技術關鍵點上都可能遇到難題,這與開發人員本身的分析、設計、編程風格有關,難以預測 。在實際過程中,完全無法預測在什么時候會遇到(甚至可能在最后一步)能導致全盤重建的問題,因此原計劃進度一般會調整 。

1.2 預算、質量要求等的變更及適應性調整不及時

除了對項目本身的工作量估算不合理之外,設計人員的理解也可能造成問題 。如開發人員理解的情況與實際情況有偏差,在沒有充分溝通并確認時開展項目,過程中又會變更,在驗收階段可能才發現“審題錯誤” , 造成資源浪費,同時與之相關橫向、縱向項目的進度也會受影響,易產生“軟件危機” 。此外,其他問題如設備、人力不符合要求或調整,都會影響實際進度 。

1.3 前期可行性分析不充分

由于項目參與人員的經驗或素質原因,在項目開始前的準備不足,對項目狀態信息收集的不足,沒能好好把握項目的內容 , 容易造成對項目的了解不符合實際情況,加上高估自身工作能力,這就會對進度造成影響 。如果沒有充分的理解和準備,項目整體就會受到很大的影響,對項目本身的低估其實是對自身的一種高估,這樣會使得預期的進度在實際進展過程中不僅很難實現,而且容易對工作人員的士氣形成打擊 。

1.4 其他因素

假設、約束、風險等條件考慮“不周”造成項目進度計劃中未考慮一些不可預見的事件發生 。例如軟件開發項目還會因為項目資源特別是人力資源缺失(如人員生病、離職、開發人員臨時有其他救急任務)等原因 , 對項目進度控制造成影響致命影響 。即項目及時完成是基于環境不變、任務不變、資源不變動等假設 。軟件開發主要是靠程序員來進行,軟件體現出程序員的不同風格,因此程序員本身的主觀性也會造成影響 。在進度安排的時候應當適當配置應急預案,預留空余 。

2 軟件開發項目進度管理的目的

加強軟件開發項目進度管理是軟件開發行業發展的必要手段,也是必經之路 。項目進度控制和監督的目的是:增強項目進度的透明度,及時發現項目中存在的問題并改正,對項目進展加以督促等,保證項目按時完成 。

合理的管理手段可以加強項目的監督控制,對項目進度完成情況有一個大致的了解和評估,一旦出現問題可以及時溝通交流;遇到有落后進度情況及時督促,對有理解偏差的情況及時發現、及時糾正等 。

軟件開發時實施進度控制是項目管理的關鍵 。一般一個部門同時會接多個項目 , 并行處理過程易造成混亂 。通常,一個項目會由多部門的課題組共同負責,分項目之間橫向并列或縱向承啟,分部越多就越容易受影響 。因此各分項目的準時能確保項目實施進度 , 對項目進度的合理管理可以起到協調作用 。進度控制是項目管理過程中一項最重要的監控內容,負責對項目周期的整體把握與控制 。通過軟件開發項目進度管理方法,對各個分項目的進度進行控制 , 保證每個分項目各自按照項目計劃書中的預期進度安排完成各自的內容,對于其中出現的問題及時予以糾正,從而保證項目整體的順利完成 。

3 軟件開發項目進度管理方法

3.1 對項目本身充分了解



【如何對軟件開發項目進度管理?】 在制定項目計劃書之前,首先應當對充分了解項目本身 。項目進度控制的前提是有效地計劃和充分掌握第一手信息 , 通過實際值與計劃值進行比較,檢查、分析、評價項目進度 。對項目的充分了解是制定一個可行性分析報告的必要條件 。除了了解項目相關技術內容、發展情況外 , 還應包括主要設備(工具軟件)、項目參與者的情況,以合理分工、科學管理 。

3.2 項目計劃書與定期的進度報告

為了按期完成軟件交付任務,目前軟件開發單位陸續采取了很多控制進度的管理手段,其中最為廣泛實用的就是項目計劃書和定期的進度報告的提交 。項目計劃書和進度報告都是參考傳統的工程項目管理方案,同時結合軟件開發本身的特點進行的改進 。作為項目進度控制的基準 , 項目計劃書是項目的階段成果完成情況的一個預期與管理依據 。根據計劃書中的時間安排,在項目的每個階段點,項目負責人需要向相關管理人員(部門)書面提交階段工作匯報與計劃 。在進度報告中,要有完成情況、存在問題、下一步安排等 , 實際上就是項目執行人員的對總結、分析、開發反思 。

3.3 進度協調會

在軟件開發項目中,一個項目通常由不同的項目團隊合作完成 , 企業有專門的合同管理部門負責項目的分、轉包、合同期與進度計劃的協調 。項目經理應該及時掌握這些情況,按計劃進行計劃進度與實際進度的動態比較 , 定期向客戶提供可靠反饋 。這通常是通過進度協調會來完成的,參與項目的每個團隊負責人通過協調會了解相關方的進度、探討問題,根據對方完成情況動態調整自己的進度 。

3.4 階段性審查與應急措施

軟件開發項目進度管理過程需要從項目從準備到開始到進行到完成的各個不同階段都采取不同的方法進行控制管理,全面把握項目進程 。在準備階段需要提供項目信息,同時確定項目研究進度;編制階段計劃和項目總進度計劃;控制該計劃的執行;而需求分析和設計階段控制的任務是編制與用戶的溝通計劃、需求分析工作進度計劃、設計工作進度計劃,控制相關計劃的執行等 。最后,實施階段進要求編制實施總進度計劃并控制其執行;編制實施計劃并控制其執行等 。

在項目設計書中應當有關于應急預案的內容,這是我國現在工程管理、軟件開發管理都比較容易忽略的一個內容,其本質是對項目過程中可能出現的干擾和影響的一個預測,對項目整體的合理把握 。針對可能的問題,提出一定的解決方案,而在實際過程中 , 一旦出現問題,具體應當結合實際情況確定,避免產生相反的效果 。

4 結束語

軟件項目的開發與傳統的工程項目具有很大的區別,軟件本身具有無具體形態、缺乏標準等特點,開發過程不確定性大 , 主觀因素影響對軟件質量影響較大,因此進行項目進度管理探討十分必要 。本文通過總結進度管理上可能存在的問題 , 提出了可以采取的管理手段,希望能對實際工作有參考價值 。

經驗總結擴展閱讀