業(yè)內(nèi)流傳著這樣一句令人心酸的話:“規(guī)劃規(guī)劃全是鬼話,計劃計劃全是空話”。實際上,開發(fā)管理模式選擇不當將極容易造成進度失控,也將會導致兩個問題: 一是質(zhì)量無法控制,二是時間無法控制。因為,項目進度的延遲總是在快到計劃結(jié)束的時刻暴露出來,結(jié)果是誰也不知道到底什么時候才能夠結(jié)束項目,到最后項目經(jīng)理只好請辭。那么,到底問題出在哪呢?
前不久,我半路接手這樣的一個軟件開發(fā)項目,項目像遇到了一個黑洞,不斷地吞噬著項目組的時間。原來的項目經(jīng)理因為時間很緊張,在匆忙中了解到客戶需求后就開始著手做,也沒有分具體什么階段,到產(chǎn)品最后階段要集成和測試的時候,大量原來沒有預(yù)計到的問題都“冒”了出來,才發(fā)現(xiàn)項目進度完全失控。
一、艱難的項目進度管理
軟件開發(fā)管理一直有一個令人困惑的難題,就是如何確保項目進度管理。項目進度控制是項目管理工作中的重要一環(huán),也可以說是最艱難的工作之一。在軟件開發(fā)中項目進度失控受到很多因素的影響,主要有以下幾種情況:
(1)缺少進度指路明燈
當我們在路上行走的時候,會在沿途觀看路標,當?shù)竭_某一個路標時,我們便知道還有多少路或多少時間才能夠到達終點。這些路標是我們在旅程中的里程碑,讓我們可以清楚地知道目前所在地離開目的地有多遠,也讓我們能估算何時才能夠到達目的地。
對于在路上行走的我們,可以通過路邊的里程碑這一個簡單工具來獲知自己的進度信息。當進行軟件開發(fā)的時候,我們也需要建立開發(fā)項目的里程碑,使我們知道項目的進度。里程碑是項目管理不可忽視的一部分,通常意味一個時間點上可交付成果的完成,好的里程碑管理就像一張地圖指示我們走向項目目標的進度。
(2)項目進度估算準確性差
軟件項目開發(fā)進度控制面臨的最大挑戰(zhàn)就是項目進度估算的準確性差。據(jù)統(tǒng)計,在對軟件項目進度與成本估算時,大多數(shù)項目實際完成時間超過估算進度的25%到100%。根據(jù)我的經(jīng)驗要想對項目進度進行有效的估算,必須抓好以下兩個方面:一是項目計劃的可行性和可操作性,這是進度估算的基礎(chǔ)。二是要對項目進度進行合理的度量,這樣才能夠獲得項目的真實進展情況,并對項目估算做出相應(yīng)調(diào)整。
(3)前松后緊,項目進度缺乏有效監(jiān)管和控制
一般人在工作時都有前松后緊的習慣,而里程碑強制規(guī)定在某段時間做什么,從而合理分配工作,細化管理粒度。對復(fù)雜的軟件開發(fā)項目而言,每一階段的進度都需要逐步逼近目標,里程碑產(chǎn)出的中間“交付物”就是每一步逼近的結(jié)果,也是控制的對象。如果沒有里程碑,中間想知道“現(xiàn)在進度做的怎么樣了”是很困難的。
(4)沒有盡早發(fā)現(xiàn)和降低項目風險
在軟件開發(fā)中錯誤發(fā)現(xiàn)得越晚,對于開發(fā)造成的損失越大。里程碑式開發(fā)模式可根據(jù)每個階段產(chǎn)出結(jié)果分期確認成果,避免血本無歸。通過早期里程碑評審一般可以提前發(fā)現(xiàn)需求和設(shè)計中的問題,降低后期修改和返工的可能性。例如,在需求分析階段發(fā)生的錯誤,那么最多就是把需求分析寫一遍,損失的是一個人的勞動;而到了測試階段發(fā)現(xiàn)了需求錯誤,再回去重新做需求分析,那么損失可能是致命的。
二、目標導向衍生里程碑式管理
一般來說,在項目開始時項目經(jīng)理都會對開發(fā)項目進度制定一個詳細的計劃。通常情況下,這需要采用一些具體的開發(fā)模式技術(shù),最常用的技術(shù)是網(wǎng)絡(luò)計劃和里程碑計劃。網(wǎng)絡(luò)計劃是任務(wù)導向,以工作分解結(jié)構(gòu)(WBS)為基礎(chǔ);里程碑計劃是目標導向,以目標分解結(jié)構(gòu)(OBS)為基礎(chǔ)。有時兩種方法可以混合使用,如在網(wǎng)絡(luò)計劃中設(shè)置里程碑。
(1