本文原發于知乎問答。此處略作修改。
有人問,項目經理如何處理項目計劃時間與實際開發時間不符的問題?答曰,實際工作中,項目計劃時間幾乎必然少于實際需要時間,不然大家為什么會加班呢?項目經理最主要的工作之一不就是處理時間、資源的沖突么?
相信這個世界上會存在可以被說服接受“三個月時間不夠”的老板。然而現實是,大多數情況下,老板會說,小劉,這個項目我三個月之后就要,你看著辦。
** 不要試圖硬碰硬地去推翻最后期限 **
要么做,要么滾。老板不是在考察你的能力,而是,老板將他面臨的最后期限,分解后將其中一部分任務交給你。你說你做還是不做?
Ready?GO!
首先,按照通常的項目管理方法,分解工作包,列出關鍵路徑,進行詳細估算、風險預測。給出最可能的完成時間預測。呈交客戶(老板)。
這一步完成后,很有可能會發現,實際預估時間與客戶預期交付時間的差距,也許并沒有最初想象的那么大,在這種情況下,做好風險控制,早期壓縮進度(各種趕工,各種追加資源),后期確保質量,盡量保證如期交付。
與此同時,開始動員團隊。關于這里很重要的一點是,你必須了解你的團隊,你的團隊在關鍵時刻,能夠準確配合你的意圖行動。這是團隊建設的問題,就不在這個問題下展開了。有興趣可參閱:《如何打造理想團隊》。
如果詳細估算與期望交付時間仍有較大差異,與客戶共同商討,重新定義時間邊界。用數據嘗試與客戶溝通,說明強行壓縮進度可能會引入的風險及性價比。嘗試推遲交付時間。如果在經過充分溝通后客戶仍堅持原計劃交付時間,進入討論交付范圍。嘗試縮短關鍵路徑,為功能點劃分優先級,收縮范圍,嘗試階段性交付。
一般來說,到這一步,如果已經拿出了非常令人信服的數據來說明,在預期交付時間之前,完全交付全部功能點是不可行的,客戶通常會理解,并將更關注主要功能點。我們只要保證主要功能完成,并如期交付使用即可。
然后,在真正開始工作前,明確責任。取得足夠授權以便調動資源。
重要的是,在整個工程生命期中與boss保持良好的溝通,不斷修正進度計劃,不斷從客戶處取得反饋。有時候老板在最后期限到來之前,對交付功能的希望,早已經變了很多了。而對于互聯網產品來說,需求和對交付的預期,實際上是在不斷快速變化的。
** 與其重度計劃,不如立即行動 **
軟件項目延遲的比例其實不低,但因項目延遲而自殺或是辭職的項目經理卻是少之又少。真正需要項目經理承擔責任的,是最后交付的東西已經挑戰了客戶的容忍程度。根據自己的專業眼光和經驗,判斷出是否真的一定會延遲或部分交付,那么努力去理解客戶的底線,去理解客戶的真實需求,并據此調整工作的優先級隊列。
總之,先行動(計劃也是行動的一部分),盡自己最大努力去做。再拿有分量的東西給老板看。一旦接受了任務,你就開始了作戰,你的目標只有取得勝利,用一切能想到的方法,動用一切可動用的資源來達到目標。
開個腦洞……
團長:劉參謀,帶一個班,凌晨兩點前炸掉大橋,阻止敵方機械化部隊進入戰場。
劉參謀:不行啊團長,召集爆破專家需要一小時,準備炸藥一小時,找到橋梁關鍵點安裝炸藥需要一小時,我們總共需要4小時才能完成爆破任務,現在離2點還有不到3小時,能不能把時間推遲一小時?此外,這幾天陰雨連綿,炸藥受潮,很可能blabla……
團長:臥槽,和尚,把劉參拖出去給我斃了~
再來一遍:不要試圖硬碰硬地去推翻老板給你的最后期限。
簡單總結一下,其實就幾個關鍵:
- 有效溝通
- 合理估算,與客戶一起商討,定義產品范圍和時間邊界
- 嘗試推遲交付時間,同時采取措施壓縮進度
- 取得有效授權,迅速動員團隊
- 快速迭代,全程保持各方有效溝通
后面就是項目的執行階段。作為項目經理,拿出看家本事來吧。