項目時間估算

      大學裏跟老師做的項目幾乎沒有一個是按時間完成,都是在拖時間,一拖再拖,每次老師初步地估算這個項目需要多少時間,我腦袋裏都下意識地想(老師估算的時間*2,或*3,或者更多),其中最糟糕的一個項目估計用一個月,結果用了一年才勉強結束,實際時間=估算時間*12,我的天呀,當時估計也就是學校這種地方做得出來。到了企業之後,實際時間是估算時間的兩到三倍也是很正常的事,這還是在需求明確到85%以上的情況下,需求不清的情況下,時間就海了去了。

  項目開始時,客戶簡單的描述需求,開發方便豪言壯語一個時間(有時這個時間連需求分析都做不完),中間客戶改了需求,開發方聲稱“絕對不是問題”(接項目時要人情、關係之類的,客戶改點需求,一般不太好明說要加時間),到了時間了,還差很多沒做完(項目組的人趕工都加了好幾天的夜班了),給客戶演示下,忽悠下客戶,然後再說我們再完善一下(一般這時客戶也會再提點新需求),如此反覆,就不知道要完善到什麼時候去了。最後提起這項目,開發方暗罵客戶扯蛋,客戶暗罵開發方混蛋。

  需求不清的情況下,本人暫時不知道怎麼估算時間(不知各位有什麼高招,分享下)。但爲什麼在需求明確到85%以上的時候,我們實際時間還是估算時間的兩到三倍,或者更多,這種情況我想扯蛋是出在我們自己身上了,我總結了一下,分爲兩種:

  1, 自己豪言壯語“害”自己,拿到了一個需求或一個技術難點,看了一下,道:“這個容易,兩三天搞定”,“這個系統簡單,撐破天一個月”,真的動起手來發現挺難的,搞了N個兩三天或撐破了N個天才搞定。

  2, 別人豪言壯語“害”我或整個小組,這個別人通常指市場人員,在軟件公司基本是市場跟技術之爭,而在國內,因爲各種原因往往又是市場佔主導,一個項目下來,市場人員感覺一下需要多少時間,技術的就得照辦,你跟他說“時間不夠”,通常都會回覆,“加加班,抓抓緊”,往往按他估算的天數就是按24小時工作也不夠(更離譜有的連需求都做不完),再說市場的不懂技術,實際時間往往是他估算的時間三、四倍也不足爲奇。你直接跟他說你的估算時間=他估算時間*3,是不是從側面貶低你上級的智商,他會接受嗎?

  經過了一段時間的痛苦之後,我還是小有點心得了,如下:

  問題1是比較容易解決的,因爲改變自己遠比要改變別人容易得多,剛開始的時候,我們自己可能會誇海口,隨着經驗的非富,對自己的時間估算會慢慢地八九不離十,我就是這樣的。剛畢業那會,我領到一個任務,看一下就估算個時間(通常很短,爲了表現自己,再加上精力比較旺盛),工作時間做不完,就加班做(反正也沒什麼事),慢慢我也知道具體的任務我大概需要多少小時來做。
 不過剛開始帶小組的時候,接到一個任務,我就估算了我大概要多少時間,然後小組多少個人就算是多少個我,估算時間=我要的總時間/小組人數(好笨的想法呀,不用時間跟組員交待任務的嗎?個個組員都是我嗎,比我強的還好,頂多做完了休息,差一點的就麻煩了),結果實際時間多了很多。後來我就吸取了教訓,跟組裏的人相處久了,心裏也有底了,誰比我強,大概強多少,誰比我弱,弱多少(最好能量化,單憑感覺靠不住),這樣一折算可以把時間算個大概;再把任務跟組員交流一下,基本估算的時間八九不離十。

  問題2就比較麻煩了,上級(非技術人員、市場人員之類)通常估算一個項目的時間少得離譜,說出來嚇壞項目組長,我通常把這種情況叫做放衛星。面對上級放衛星,要想辦法說服上級採用我們的時間或者讓上級接受這個時間(特殊情況),因爲上級是非技術人員的話,一般是憑感覺估算時間,所以一般不要試圖用自己感覺的時間來證明別人的感覺的時間不對。(爲什麼你感覺的就對,我的就錯,上級肯定不會採納的,反而會讓上級感得你做事不積極,想拖時間,怕苦怕累,對任務討價還價,前期我也犯了這樣的錯誤,給上級留下了不好的印象),後來我總結了一下,發現說服上級是需要一定的技巧的。
      1, 有理有據,用數據說話。上級憑感覺估算的時間與自己估算的時間有很大差距時,不要很着急地直接說出自己估算的時間(這樣容易造成直接的對立,之後的交流會很僵),可以先描述推出時間的依據是什麼,依據的數據支持是什麼,然後當着上級的面根據這個依據把我們估算的時間給算出來,古語有云:事實勝於雄辯;想必上級會欣然接受的。(畢竟大家都是爲了把工作做好)


      經歷:
      有一個項目(信息系統,需求比較明確),在數據庫設計做完之後(120多張表呀),我的上級(市場人員出身),跟我說:“這個簡單呀,最多15天就搞定了,你看怎麼樣?”當時我一聽心裏就發毛,當時我估算的時間是45天呀(整整差了3倍);我首先表達了我的時間跟他算的有點差距(但沒有直接說我的時間),然後列舉了前面公司所做的幾個信息系統的項目,如下:
項目A,3人,60天,140張數據庫表,平均每人每天處理0.8張表
項目B,5人,30天,110張數據庫表,平均每人每天處理0.7張表
。。。。
   然後我跟他說:現在我們效率提高了,再加上項目緊,我們會加下班,大概算每人每天處理1張表吧,小組共3人,也要45天這樣呀。最後我還笑着跟他開了個玩笑:我們組每天24小時工作,一直幹15天,都有點勉強呀!(當時在座的都笑了)。當時上級思考了一下,然後就採用了我的45天的計劃。

      
      2, 把任務分配到組員,再請上級到小組中交流,依靠羣衆的力量說服上級,反過來每個組員都當着上級承諾了開發時間,對他自己也是一種鞭笞、激勵,有利於按時完成任務。小組組長單獨跟上級說,他官大一級壓死人,再說自己心裏也有點怕怕吧。把他請到小組裏來,人多了自然膽也壯了,將每個人的開發任務給他看,每個人說說對自己任務的看法,難度怎麼樣,要多久才能完成(參照第一條,有理有據,用數據說話),注意控制氣氛,儘量以聊天的形式,不要搞僵氣氛,最後由自己進行一個總結,把總的時間明確化,這時上級面對羣衆的力量,一般也會同意你的估算時間。
      特殊的情況,假如上級就是要按他估算的時間來(原因可能有很多,他就認爲他的是對的,客戶摧得緊等等),實在無法說服上級完全採用自己估算的時間,能多加幾天是幾天,但是在心裏一定要有個完成項目的估算時間,哪怕這個時間是上級指定的10倍(這個時間最好是比較可靠的,有依據),我始終認爲一個項目完成的時間是多少就是多少,不爲因爲上級硬壓一個很短的時間就真的是這個時間了(我發現加班做不了多少事,不知道大家的感覺怎麼?),很多時候,上級寧可你最後延長或拖N倍於他的估算時間,也不採納你的N-X倍比較可靠的時間(有點無奈)。假如你心裏沒底的話,會做到很鬱悶(因爲每次延時,整組人都會覺得很累,可能是因爲一鼓作氣,再而衰, 三而竭;延時越多,整組人會越疲倦);遇到這種情況,可以暗地按自己計劃走,不停地延時到自己估算的時間就OK了(這是針對那種放衛星的估算時間,差距不大的時間趕趕工就可以,要積極地工作,呵呵)
       最後來個估算時間的總結:有理有據地估算時間,說服上級採用這個時間。遇到放衛星式的項目時間,自己心裏要有底,不可盲從。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章