項目管理本就是一項有難度的管理過程,其中更是有各種因素會影響項目的進度與成敗,多數都與我們人為做的決策相關,接下來就說下,哪些錯誤的做法,會致使項目容易陷入困境。
進度控制松緊不一致
在項目進行到一半時常常才發現時間不夠用,進度表經過調整后,誰知道沒過多久進度表滯后又來了。原因在于項目開始時前期太過拖沓,導致進度遠遠落后于進度表。
任務本身估算出現偏差
進度出現偏差首先要考慮的工作量的估算是否合理,是否考慮了工作中存在的技術難點,是否考慮了項目成員自身的技能,是否考慮了其它應該考慮的風險。如果項目任務中存在著技術攻關或技術難點需要解決,對于這種任務往往是很難估計工作量的,而且一旦在技術問題上被卡住往往對項目進度產生致命的影響。具體表現在低估技術難度、低估協調復雜度、低估環境因素這樣幾個方面。
80%的項目工作可以在20%的時間內完成,而剩余的20%的項目工作需要80%的時間,但是剩余的20%左右的項目工作大部分是在后期。所以軟件開發在進入編碼階段后會給人一種"進展快速"的感覺,使得產生了過于樂觀的估計。當看到軟件已經進行了80%,就象一塊石頭落地,心里想著"總算交差了",同時又可能撤出一些被認為不必要的人力資源,這樣的結果更是拖延了后期的工作。
進度落后時的"趕工"措施使進度更惡化
進度落后的情況下,有幾種措施來彌補,如加人、加班、加激勵等等,這些都是增加資源而又未必會見效的方法。這些后來參加者因為對項目不夠熟悉,存在軟件界一直說的"人月神話"的弊端,反而讓滯后的進度表更滯后。因為對于新加入的員工來說,對項目相關背景、需求、設計的培訓,對項目環境的熟悉和項目團隊成員之間的溝通路徑的增加,都可能會使工作效率急劇下跌。而加班造成的疲勞也會再次使工作效率降低,增加激勵則會造成工作成本不斷的向上攀升。這些措施并不是完全不可取,而是要考慮適度原則。
項目需求偏移
隨著項目的深入,需求變更也越來越多。造成的后果是無論是刪減、增加或者改變項目需求,都致使進度表發生相應的調整或滯后。例如,在需求分析前期,一方面是對于部分關鍵需求沒有給予足夠的關注,造成后期需要不斷修正。另一個方面,在開發過程中總是眼光朝上,總是喜歡添加一些原先進度表規劃所沒有的東西,導致存在大量功能冗余,也導致進度表的失控。普遍存在的是有些項目組成員覺得反正我們都要花時間,就再增加幾樣東西吧,這會讓我們的項目錦上添花。這樣就積少成多,集腋成裘。不僅消耗了時間,而且也模糊了最初的項目需求。更嚴重的是,需求范圍已經擴展到項目真正需要的范圍之外。
程序員的心態因素對進度的影響
有兩種常見的心態會對進度造成影響:一是技術完美主義、二是自尊心。技術完美主義是有些程序員做到一定程度后想到一些更好的構思,或者看到一些更好的技術介紹,或者是覺得可以更加優化,這樣他們會私下或公開對軟件進行調整,去嘗試一下新的技術。而是否使用這些新的技術對完成項目本身的任務并沒有影響,相反可能帶來不確定的隱患。這種做法不是以需求為出發點,可能對軟件開發進度造成較大的影響。
另一方面,自尊心是有些程序員在遇到一些自己無法解決的問題時,傾向于靠自己摸索,而不愿去問周圍那些經驗更為豐富的人。有些人也許會通過聊天室或論壇等方式匿名地向別人求教,運氣好會很快地解決,否則要花很多時間去實踐摸索。而向周圍的人求教,可能摸索幾天的問題別人早就曾經解決過。