您的位置:軟件測試 > 軟件項目管理 > 進度管理 >
關(guān)鍵路徑法解開軟件開發(fā)進度難題
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/10/24 10:03:02 ] 推薦標簽:

  這幾天我都在為所負責的軟件開發(fā)項目心煩著,因為這個項目的時間表遠遠滯后于進度規(guī)劃。據(jù)Gartner的一項調(diào)研結(jié)果,在軟件開發(fā)項目中有55%的受訪者認為他們的開發(fā)進度控制是失敗的,有30%的人則認為軟件開發(fā)項目延期是家常便飯的事情。為什么會有這么多的進度管理問題呢?

  時間管理是軟件開發(fā)管理中的一個關(guān)鍵職能,也稱為進度管理。它對于項目控制至關(guān)重要,也是對項目成本有直接影響的因素之一。因為縮短項目的時間不僅僅是能節(jié)約那些與時間相關(guān)的成本,而且還可以避免由于延期導致的損失,如賠付延期交付違約金等。本文從軟件開發(fā)項目的時間管理角度出發(fā),介紹關(guān)鍵路徑法在時間管理中的應(yīng)用,并提出實現(xiàn)關(guān)鍵路徑法的步驟和建議。

時間管理常見的錯誤是什么?

  軟件開發(fā)項目延期的原因也許有很多,但肯定有一條的是時間沒有管理好,這被公認稱為是項目延期的第一因素。事實上,時間管理究竟是"錯在哪里"呢?這個問題通常比技術(shù)或者業(yè)務(wù)問題更值得花時間來思考。

(1)時間進度表基線制定錯誤

  一般來說,在軟件開發(fā)中追求的是"如期、如質(zhì)、如預(yù)算"的開發(fā)出適合需求的軟件產(chǎn)品。因此,成功的軟件開發(fā)必須事先制定具有一定的預(yù)見性、前瞻性和切實可行的時間進度計劃。項目時間進度基線是指一種基線化的開始日期和結(jié)束日期,它代表著項目細分后的每個任務(wù)的預(yù)期開始日期和預(yù)期完成日期。

  一般來說,進度表基線是使用經(jīng)過評審的歷時估算和資源估算來構(gòu)建的,該進度表也是作為任務(wù)進度跟蹤的基線。項目進度表可以是總體概覽的,比如項目主進度表或者里程碑進度表;也可以是明細的,比如每個里程碑內(nèi)的詳細任務(wù)進度表。因此,當進度表基線制定有失誤的時候,每個任務(wù)的開始時間和完成時間會產(chǎn)生混亂,嚴重的時候還會在時間上不能銜接,進而會帶來資源增加、成本超支等問題。事實上,實踐經(jīng)驗也證明許多軟件開發(fā)項目的延期,是由于在進度表基線的時間規(guī)劃上或多或少的存在著失誤。

(2)錯誤的縮短項目非關(guān)鍵路徑時間

  在軟件開發(fā)過程中,人們通常會認為如果能縮短項目某些任務(wù)的工期可能會縮短項目的總工期。例如,某個工作結(jié)果需要項目團隊花費二個月來完成,但如果能夠在一個月內(nèi)完成任務(wù),可能會大大縮短項目進度了。因此,許多項目經(jīng)理及其團隊可能會使用工期壓縮技術(shù)來提高某些任務(wù)的進度,或通過給這些任務(wù)分配更多的資源來縮短工期。

  例如,通過趕工的方式來實現(xiàn)縮短工期。趕工的主要優(yōu)點是可縮短完成項目的時間,但缺點是通常會提高項目的總成本。而實際上,軟件開發(fā)項目通常是一個迭代的過程,它不但需要規(guī)劃好項目每一個任務(wù)的開始和結(jié)束時間,而且還需要做好任務(wù)上下之間、前后順序和關(guān)聯(lián)之間的銜接。因為如果通過趕工只是縮短了非關(guān)鍵路徑上的任務(wù),并不會縮短項目的開發(fā)時間,而只會是提高了開發(fā)成本。

(3)沒有明確的時間管理,極易產(chǎn)生"拖延綜合癥"

  所有的項目工作都是通過人來實施的,如果不考慮人的因素,時間管理目標通常會失控和很難實現(xiàn)的。也是說,成功的時間管理需要考慮人的一些內(nèi)在因素,包括人的工作習慣或者天性。因為人的習慣和天性也是造成項目工期拖延的原因之一。例如,在我們的日常工作中經(jīng)常會碰到這樣一種現(xiàn)象,比如要提交一份報告,通常需要三天時間。但在多數(shù)情況下,員工可能會在第三天才開始寫這份報告。也是說,他把前面兩天時間安排去做其它工作了,從第三天才開始寫。這樣一來,他的報告不可能如期完成,即使靠加班加點如期完成也嚴重影響了報告質(zhì)量。我們把這種情況稱之為"拖延綜合癥"。

  有統(tǒng)計表明,如果沒有明確的開始時間,會在項目和工作中極易形成"拖延綜合癥"。這也稱為帕金森定律(Parkinson's Law),它是指工作總是拖延到它所能夠允許遲完成的那。因此,如果沒有明確的時間觀念或忽視了"拖延綜合癥",后都是會造成項目延期,或者是勉強按期完成任務(wù)。

什么是時間管理的關(guān)鍵路徑法?

  時間管理是軟件開發(fā)項目管理一個重要的內(nèi)容,因此必須要使用高效的工具來確保時間受到控制,關(guān)鍵路徑法是其中一種常用的工具。正所謂:向關(guān)鍵路徑要時間,向非關(guān)鍵路徑要資源。

(1)什么是關(guān)鍵路徑法?

  關(guān)鍵路徑法(Critical Path Method, CPM)早出現(xiàn)于20世紀50年代,它是一種基于數(shù)學計算的時間規(guī)劃管理方法,是網(wǎng)絡(luò)圖計劃方法的一種。它是時間管理中很實用的一種方法,廣泛地用于項目進度分析和時間管理。一般來說,在項目管理中關(guān)鍵路徑法是上連著WBS(工作分解結(jié)構(gòu)),下連著執(zhí)行進度控制與監(jiān)督。因此,一般是用它來預(yù)測整個項目的工期,和幫助項目主管防止項目進度超期。

  關(guān)鍵路徑法是將項目分解成多個獨立的活動并確定每個活動的工期,然后用邏輯關(guān)系(結(jié)束-開始、結(jié)束-結(jié)束、開始-開始和開始結(jié)束)按照活動的關(guān)系形成順序的網(wǎng)絡(luò)邏輯圖,從而計算出項目的工期和各個活動的時間特點(早晚時間、時差)等。它是通過確定網(wǎng)絡(luò)圖中的每一條路線的起始時間到結(jié)束時間,從而找出工期長的線路。也是說,整個項目工期的決定是由長的線路來決定的。有一些人認為關(guān)鍵路徑包括的都是重要的活動,然而關(guān)鍵路徑關(guān)心的只是項目的時間維,它的名字中包含"關(guān)鍵"并不意味著它包含所有的關(guān)鍵的重要活動。因為對于一個項目而言,在項目中通常有多個任務(wù)同時進行,只有項目網(wǎng)絡(luò)中長的或耗時多的活動完成之后,項目才能結(jié)束,這條長的活動路線才叫關(guān)鍵路徑,組成關(guān)鍵路徑的活動才稱為關(guān)鍵活動。

(2)關(guān)鍵路徑?jīng)Q定著項目工期

  一般來說,關(guān)鍵路徑上的持續(xù)時間是決定著項目的工期,因為關(guān)鍵路徑上所有活動的持續(xù)時間總和是項目的工期。關(guān)鍵路徑上的任何一個活動都是關(guān)鍵活動,其中任何一個活動的延遲都會導致整個項目完工時間的延遲。關(guān)鍵路徑上的耗時是可以完工的短時間量,若縮短關(guān)鍵路徑的總耗時,則會縮短項目的工期;反之,則會延長整個項目的總工期。但是如果縮短非關(guān)鍵路徑上的各個活動所需要的時間,則不會影響項目的完工時間。

  簡單的說,關(guān)鍵路徑上的活動是總時差小的活動,若改變其中某個活動的耗時,則可能使關(guān)鍵路徑發(fā)生變化。所以,關(guān)鍵路徑是相對的,是可以變化的。在采取一定的技術(shù)措施之后,關(guān)鍵路徑有可能變?yōu)榉顷P(guān)鍵路徑,而非關(guān)鍵路徑也有可能變?yōu)殛P(guān)鍵路徑。計算關(guān)鍵路徑可以用正推法計算出每項活動的早開始和早結(jié)束時間,用逆推法計算每項活動的遲開始和遲結(jié)束時間,從而可以確定每一項活動是否具有浮動時間。如果浮動時間不為零,也是說這項工作不是位于關(guān)鍵線路上,它是具有浮動時間的。

  綜合來說,關(guān)鍵路徑法的優(yōu)點是能為項目及其主要活動提供了圖形化的顯示,這些量化的信息為識別潛在的項目延遲風險提供極其重要的依據(jù)。例如,使用關(guān)鍵路徑分析可使進度均衡。因為當項目經(jīng)理知道了關(guān)鍵路徑上的一個任務(wù)會落后于預(yù)期進度時,他可能會給關(guān)鍵路徑上的其它任務(wù)分配更多資源來彌補時間;或通過跟蹤關(guān)鍵路徑,以判斷是否需要采取積極主動的行動來達到預(yù)期目標。

如何應(yīng)用關(guān)鍵路徑法優(yōu)化時間管理?

  關(guān)鍵路徑表示完成項目的短時間。如果關(guān)鍵路徑上的一個或者多個活動比預(yù)期計劃要長,除非采取修正行動否則項目進度將會延后。因此,在軟件開發(fā)時間管理中,控制進度表的基本思想是在一個龐大的網(wǎng)絡(luò)圖中找出關(guān)鍵路徑,并對各關(guān)鍵活動優(yōu)先安排資源以盡量壓縮需要的時間。而對非關(guān)鍵路徑的各個活動,只要在不影響完工時間的條件下,抽出適當?shù)娜肆、物力和財力等資源,用在關(guān)鍵路徑上以達到縮短工程工期。

(1)關(guān)鍵任務(wù)的定義和時間估算

  為了找出項目的關(guān)鍵路徑,必須首先要設(shè)計好網(wǎng)絡(luò)圖。因此,第一步是在開發(fā)范圍內(nèi)用WBS(工作分解結(jié)構(gòu))把所有工作分解成小任務(wù)。這個過程的輸出是任務(wù)清單和里程碑清單,需要注意的是這些清單不僅僅是要列出有哪些任務(wù)和有哪些里程碑,而是任務(wù)還要有含持續(xù)時間或具體的時間工期等信息。因為關(guān)鍵任務(wù)的另一個屬性是時間屬性,這在時間管理中是非常重要的。一般來說,任務(wù)的持續(xù)時間估算是一個復雜的估算過程,因為有很多因素都會影響到任務(wù)的持續(xù)時間,如工作效率水平,投入的資源數(shù)量等。

(2)評估任務(wù)的優(yōu)先級

  根據(jù)優(yōu)先級為每個任務(wù)建立相對重要性是核心的一步。因為在軟件開發(fā)中事情會是非常多,不可能平均分配時間。如果經(jīng)常出現(xiàn)時間被次要工作過度占用,這會是很糟糕的情況。因此,相應(yīng)的根據(jù)緊急程度把任務(wù)涂成綠色、黃色和紅色,意味著不僅可以很容易的區(qū)分項目內(nèi)和項目間的任務(wù)優(yōu)先權(quán),而且也可以很明確的分配時間資源。另外,評估任務(wù)的優(yōu)先級也會把時間管理觀念推廣到團隊的各個層次。不但可以確保工作在合適的時間內(nèi)完成,而且還不需要管理層經(jīng)常性的提醒和干預(yù)。所以,明確任務(wù)的優(yōu)先級是影響非常大的一個步驟,因為它能大大改善在多重任務(wù)中時間資源的分配效率。

(3)關(guān)鍵任務(wù)的排序和路徑計算

  關(guān)鍵任務(wù)的排序是根據(jù)任務(wù)的前后和依賴關(guān)系形成網(wǎng)絡(luò)圖。簡單地說,是我們要找出耗時多的活動序列組成的路徑。因為找出了關(guān)鍵路徑后,我們可以預(yù)測項目的工時,終確定項目的工期。這里需要提醒的是,只有在考慮到資源平衡和資源日歷后的任務(wù)網(wǎng)絡(luò)圖才會是一個有價值的進度表。因此,在存在可預(yù)見風險的路徑點上,事前一定要進行資源優(yōu)化,以防止項目超期。

(4)監(jiān)督和檢查進度表的實施

  一般來說,在網(wǎng)絡(luò)圖上計算關(guān)鍵路徑后會形成進度表。然后,我們通過監(jiān)督和檢查進度表與實際情況的比較,能很方便的使項目時間受控了。例如,通過趕工或快速跟進的方式對滯后的進度進行壓縮,以使進度表受控,從而也使到項目時間得到控制。

關(guān)鍵詞閱讀
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd