韓 濤
(中國海洋大學,山東 青島 266003)
試析軟件項目的進度控制
韓 濤
(中國海洋大學,山東 青島 266003)
以PMI項目管理體系相關理論為依據,對軟件項目管理中的進度管理中存在的問題進行研究。其中人的因素、技術困素等都對軟件項目進度有影響,這就需要對項目進行合理安排,協調好團隊和人的問題,并注意項目質量的跟蹤管理及處理好資源預算變更對進度的影響等。
進度管理;軟件項目;影響因素;管理依據
項目管理是以項目為對象的系統管理方法,通過一個臨時性的專門的柔性組織,對項目進行高效率的計劃、組織、指導和控制,以實現項目全過程的動態管理和項目目標的綜合協調與優化。
軟件項目的進度管理是指對軟件項目的各建設階段的工作內容、工作順序、持續時間和銜接關系編制計劃,將計劃付諸實施,在實施過程中經常檢查實際進度是否按計劃要求進行,對出現的偏差,要分析原因,采取補救措施,排除故障,或調整、修改原計劃,直到項目竣工、交付使用。所以進度管理的最終目的是確保工程項目投運時間目標的實現。軟件項目進度管理的總目標就是建設工期。
(1)軟件項目相對其它工程項目來說是一個抽象的邏輯實體,而其它工程項目具有物理實體特性。
(2)軟件項目到現在為止基本是手工開發,軟件產品基本是“定制”,軟件設計人員的技術能力基本決定了產品的特征和質量。
(3)軟件項目及進度管理既受到技術因素的影響,也受到業主單位政治、文化和決策的影響。
(1)通過對項目進度控制,保證用戶工程順利進行。進度失控導致的直接后果是業主不得不推遲系統投入正常運行的計劃時間,直接增加業主的負擔,包括時間、人力、物力和財力的繼續投入。
(2)減少系統開發質量方面的問題。質量控制和進度控制是一對孿生兄弟,是相互起連鎖反應的,進度失控可能導致質量失控;同樣,質量的失控也會導致進度失控。軟件的質量是管理信息系統的生命,如果它的質量得不到保證,用戶那一關是無法通過的。
(3)影響業主和承包商的關系。在人們的法律意識越來越強的當今社會,法律越來越多地成為一種共同的語言。管理信息系統開發的雙方是合同關系,即法律關系,不是親戚關系。如果雙方關系比較融洽,對一些問題比較容易達成諒解,則進度失控的問題對雙方之間的關系不會造成多大的影響;否則,索賠、調解、仲裁這類的事情必然會使雙方的關系惡化,從而造成問題的議而不決,長期僵持不下,拖延工期。
進度管理一般遵循以下原理:
(1)整體原理:項目是由若干相互區別又相互聯系的單元,按一定結構組成的有一定功能的系統。軟件項目的實施就是對這個復雜系統進行有效的集成過程,整個系統集成的過程中每個環節都必須組成為一個既有明確分工,又相互協調配合,緊密銜接、有條不紊進行的有機整體,才能達到既定的質量、進度和投資目標。
(2)團隊原理:團隊原理實際是整體原理在組織管理方面的延伸。要求在合理專業分工的同時有周密的協作配合與強有力的整體協調。只有這樣才能防止各自為政、相互掣肘等弊病。
(3)層次權限原理:計劃的實施是按層次運作的,計劃的控制因此也必須劃分層次,由不同層次的組織來負責。各個組織層次按其管理職能形成權限分級,不同的層次要規定相適應的責、權、利,實行逐級承包責任制。
(4)閉合原理和回饋原理:閉合原理是指任何管理過程必須使各管理環節構成一個循環往復的閉合環路。對進度控制來說,應當按計劃編制、貫徹執行、檢查監督和偏差處理的科學程序進行。前一階段執行情況和偏差處理結果又成為后一階段計劃編制和調整的基礎,開始新一輪進度控制,這就形成了進度控制的封閉環路?;仞佋硎强刂普摰囊粋€重要組成部分。應用于進度控制中,就是把計劃的控制信息下達(輸送)給執行者,執行中若遇到干擾因素影響或內部動作失衡而產生偏差,將偏差信息送回原控制負責部門,在它的影響下作出強化或修正原計劃的決策,再發出進一步的控制信息,從而使進度沿著預定計劃目標進行,最終達到預期進度目標。
從軟件項目承建單位角度看,進度管理一般包括以下幾方面:
(1)根據合同工期目標,編制實施準備工作計劃、實施方案項目、實施總進度計劃和單位工程實施進度計劃,以確定工作內容、工作順序、起止時間和銜接關系,為實施進度控制提供依據。
(2)編制月(旬)作業計劃和實施任務書,做好進度記錄以掌握實施實際情況,加強工作以促成進度的動態平衡,從而使進度計劃的實施取得成效。
(3)采用實際進度與計劃進度對比的方法以定期檢查為主,應急檢查為輔,對進度實施跟蹤控制。實行進度控制報告制度,在每次檢查之后,寫出進度控制報告,提供給業主單位、監理單位和企業領導作為進度控制參考。
(4)監督并協助分包單位實施其承包范圍內的進度控制。
(5)對項目及階段進度控制目標的完成情況、進度控制中的經驗和問題作出總結分析,積累進度控制信息,使進度控制水平不斷提高。
軟件項目進度控制是依據項目進度計劃對項目的實際進展情況進行控制,使項目能夠按時完成。在軟件項目開發過程中,必須不時對進度進行監督,以保證進度計劃的順利實施;同時掌握好計劃的具體實施狀況,將實施狀況與進度計劃進行對比分析,如不相符時采取合適的對策,使項目按預定的進度目標進行,避免工期的拖延。這個過程如圖1。

圖1 項目進度控制流程圖
軟件項目的進度受許多因素影響,包括人的因素、技術因素、設備采購的因素、工具因素、資金的因素等,這些因素主要來自于以下幾個方面:
(1)項目估算是否準確
對軟件項目估算是否準確是對項目進度計劃安排影響最大的一個因素,估算不準確的原因很多,主要的兩個方面是缺少有經驗的專家和缺少歷史數據的收集,對于這兩點,只有通過多個項目的積累才可能得以改善。另外,估算過程中還需要考慮一些特殊因素的影響,如項目新進了幾名新員工可能會降低項目的平均生產率;項目過程中需要采用某種新技術而需要投入額外的預研時間等。
(2)關鍵資源和關鍵路徑的安排是否合理
在進度計劃安排中是否優先保證了項目關鍵路徑上的資源,是否通過人員技能矩陣對項目關鍵資源進行分析和安排。在任務安排過程中盡量減少關鍵資源上非關鍵任務的安排。另外,在進度計劃安排上應該適當安排適當的余量,這樣在項目遇到突發事件,或項目風險轉變為實際問題時才能夠有人員和時間進行處理。
(3)項目中的資源是否充分利用
由于存在關鍵路徑和崗位角色矩陣,所以項目中人力資源往往并不能充分利用起來。在中小型項目中為了充分利用相關資源,項目更應該采用敏捷和迭代的開發方法,需求階段開發人員可以先熟悉需求和進行公有組件的開發,而測試階段需求人員也可以介入測試。所以對一個軟件項目而言,需要保證到項目成員的整體利用程度在70%以上,否則就應該考慮采用新的開發模式和生命周期模型。
軟件項目跟其它工程項目最大的不同就是人和團隊的因素對項目影響很大,軟件項目中的編碼人員也是重復的創造性的非簡單重復的勞動。工程建設中走了一個泥水工,可能馬上就能找到替代人手,而軟件項目中人員流失后即使很快找到了新成員,也需要花費相當長的培訓和學習時間,新成員才可能真正達到項目要求的生產率。這方面影響因素主要如下:
(1)人員技能未達到要求
在項目開始之初,我們假設項目成員都能夠達到組織的要求,但往往并不是每個成員都能夠達到要求。而且項目中每個成員的生產率差異可能很大,也給項目進度安排造成影響。在項目開始之初,應該對項目成員的技能進行一次總體的評估,對于大家都欠缺的技能應該安排統一的培訓,后續還需要對培訓的效果進行跟蹤;對于個別人員技能欠缺的應該單獨預留自我學習時間或通過以師帶徒的方式進行培養,使其技能能夠盡快達到要求。
(2)項目成員責任心不強
態度決定一切,細節決定成敗。對于項目過程中的各項任務,經常出現由于項目成員責任心不強、敷衍了事,導致產出的工件質量較差,引起大量返工的情況。在這種情況下更應該加強項目規范的建設,項目經理應加強同這些成員的單獨溝通,加強項目的團隊建設和集體榮譽感。
(3)項目人員流失
項目人員特別是項目關鍵成員在項目進行過程中的流失對項目影響很大,對于這種情況應該在項目開始之初中就作為專門的風險進行跟蹤,并考慮具體的應對措施。
時間和質量是項目中兩個重要因素,在保證項目進度的情況下我們往往會犧牲了項目的質量。而由于軟件項目中測試環節的引入,項目的最終產出又需要保證我們的最終產品滿足一定的質量規范。所有項目中經常出現項目后期測試問題太多,BUG修改和回歸測試等花費了大量的時間而導致項目的延遲。對于項目質量因素的制約主要分析為:
由于項目本身進度緊張,往往在項目進行過程中忽略了對項目各階段產出物的質量的評審。導致到項目后期測試時候問題全部暴露出來,而這時候如果是需求引起的缺陷則往往會耗費到前期評審的5~20倍的工作量來進行彌補。所以在軟件項目中應該注重項目各階段的評審工作,提早發現問題并解決問題,避免項目后期大量返工。
對于大中型系統總統設計和架構設計更顯重要。架構設計不僅僅要考慮滿足業務的功能性需求,而進行子系統、接口、組件等的設計和劃分;同時架構設計更需要考慮滿足系統的可擴展性、性能、安全性、可維護性等非功能性需求。架構人員應該通過架構設計屏蔽整個系統的復雜性,而向模塊設計和開發人員提供一套簡單、高效的開發規程和模式,這樣才能夠真正提高后續設計開發的效率和質量。
資源、預算變更對進度的影響。軟件項目最主要的還是人力資源,人力資源是項目能否順利執行的保證。還有一個很重要的資源,就是信息資源,如果不能按時得到,就會影響需求分析、設計或編碼的工作。其它資源,如開發設備或軟件沒有到貨,也會對進度造成影響。
預算也是一種資源,它的變更會影響某些資源的變更,從而對進度造成影響。
甘特圖,也稱為條形圖或橫道圖,最早于1917年由美國科學家甘特提出。它是以二維圖形的方式將項目活動與時間的關系表示出來,具體來說項目活動在縱軸列出,項目活動時間在橫軸上列出。甘特圖直觀地表達了項目各項活動及其需要的時間,它是進度計劃方法中最簡單的一種。
工作分解結構(WBS)是面向可交付成果的對項目元素的分組,它組織并定義了整個項目范圍,未列入工作分解結構的工作將排除在項目范圍之外。它是項目團隊在項目期間要完成或生產出的最終細目的等級樹,所有這些項目的完成或產出構成了整個項目的工作范圍。
項目由不同的基本任務構成,每個基本任務都有不同的開始時間和結束時間。對一個項目來說,項目網絡圖中最長的或耗時最多的活動路線完成之后,項目才能結束,這條路線叫做關鍵路線,關鍵路線法是通過分析活動路線進度安排的最少來預測項目工期的網絡分析技術,通過正推法計算活動路線的最早時間,通過逆推法計算活動的最短時間,在此基礎上確定關鍵路線,并對關鍵路線進行調整和優化,使項目進度計劃最優。
計劃評審技術是把項目活動時間看成服從某種概率的分布的獨立隨機變量,PERT有三個基本的時間要素:樂觀工期(To)、悲觀工期(TP)和最可能的工期(Tm),采用三點估計法來估算活動的持續時間,公式為Te=(To+4Tm+TP)/6,計算結果Te即為活動的基準時間。
以上幾種進度計劃方法根據其特點,花費的時間和費用也不同。關鍵日期表效率高,費用低。WBS和甘特圖相對來說時間和費用有所提高。CPM方法要求對每個活動加以分析,活動數目較多,需借助計算機等工具求出總工期和關鍵路徑,花費的費用、時間更多,適用于項目活動的持續時間有歷史數據的項目。PERT方法是項目進度計劃方法中最復雜的一種,花費時間和費用也最多,適用于項目的持續時間有較多不確定因素影響的活動。采用哪一種進度計劃方法,應根據項目的規模大小、復雜程度、活動要求確定。
由于軟件項目在執行時存在較多影響因素,在執行過程中有可能與計劃出現時間偏差(延長),因此,我們可以采取多種措施縮短以后計劃的執行時間:
(1)投入更多的資源來縮短活動持續時間;
(2)不增加資源數量,但延長日作業時間;
(3)縮小活動范圍或降低活動要求;
(4)改進工作方法或采用新技術提高生產率。
糾正措施方法多種多樣,但無論哪種方法,在糾正措施確定后,都需要將糾正措施納入進度計劃,對其進行修正并重新計算進度。
[1] 王長峰,李建平,紀建悅.現代項目管理概論[M].北京:機械工業出版社,2008.
[2] 于濱,張寶鳳,劉宏志.信息工程監理進度控制[M].北京:清華大學出版社,2006.
[3] 劉文,朱飛雪.軟件工程基礎教程[M].北京:北京大學出版社,2005.
責任編輯:張彩云
F270.7
A
1671-8275(2010)06-0030-03
2010-10-20
韓濤(1974-),男,山東淄博人,中國海洋大學項目管理專業在職研究生,山東省淄博市淄川區國稅局科員。研究方向:稅收。