1. 程式人生 > >程序員/PM怎麽讓項目預估的時間更加準確

程序員/PM怎麽讓項目預估的時間更加準確

教訓 裏的 cmm title 可能 調用 space 指導 需要

項目時間的估算對項目的成敗至關重要。項目時間管理包括了項目按時完成所需的各個過程。但是,在實際項目中,經常出現項目延期,估算嚴重不準確的現象。

一個我曾經共事過的很有經驗的項目經理曾宣稱說,他會拿程序員估計出的時間乘以π值,然後再提高一個數量級,這樣得出的才是正確的開發所需要的時間。1天時間經過變換後是3.14周。他經過慘痛的教訓才認識到程序員預估的時間都是不靠譜的。為了能更精確的對程序員估計的時間進行換算,我創建了一個時間換算表,重點說明究竟是什麽地方出了問題。

估計時間程序員的思考程序員忽略的事情真正所
需時間
30秒 只需要對代碼進行很小的改動就搞定了。我清楚的知道程序應該在哪裏做修改、怎麽修改。只需要30秒時間。 啟動電腦的時間,啟動開發環境的時間,獲取源代碼的時間。編譯、測試、提交代碼和文檔修改的時間。 1小時
5分鐘 一個小問題,我只需要上谷歌上查查它正確的語法就能搞定。 你不可能第一次就能精確的查找到正確的信息,就算是找到了,在使用它之前你也需要對它做一些調整。還有編譯、測試的時間等。 2小時
1小時 我知道該怎麽做,但是這需要寫一些代碼,所以要花一些時間。 1小時時間太緊張,沒有給任何未預料到的事情留下余地。總有一些你預料不到的事情。 2小時
4小時 這需要寫一些代碼,但我基本知道該怎麽做。我知道我們的標準框架裏的Wizzabanga模塊能做這個事情,但我需要去查查文檔看如何正確的調用它。 這可能是唯一一個符合現實的估計。在任務不是很大、能夠處理的情況下,它給未預料到的問題留下了足夠的時間。 4小時
8小時 我首先要重構Balunga類,把它拆分成兩個,然後在Wizzabanga模塊裏加入調用代碼,最後在界面上添加一個新的表單域。 系統的很多地方都對Balunga類有依賴關系。大概有40多個文件需要調整。界面上新添加的屬性的同時數據庫裏也要新增字段。8小時是十分理想的狀況的時間。程序員在估計時間時總忽略了還有很多其它事情要做。 12-16小時
2天 這需要寫很多的代碼。我需要在數據庫中添加一些新表,用一個界面來顯示它們,然後還要寫存取它們的邏輯代碼。 對大多數程序員來說,2天時間能完成多少東西都是很難說的。肯定會有一些東西被遺忘。並不是指一些小的東西,一些主要功能上的重要東西也有可能在你估計時被遺漏。 5天
1周 哇塞…這可是個大任務。我還不知道如何實現它,我不是告訴你我不知道如何做。一周時間應該足夠了,但願,希望能夠,但我不會要求更多的時間,不然的話他們會說我能力不行。 這樣一個任務對於大多數程序員來說都很難理解消化。這個任務應該發回給架構師,讓他把任務拆分成更小的模塊,對各模塊應該如何執行給出一些指導。架構師應該能找到實現它的一些簡單的方法——或者認識到這個任務的工作量比他預期的要多。 2-20天

預估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了(編譯,測試,提交代碼)。估計時間超了說明任務太大,難以理解。

對於資歷較淺的程序員,這種估計誤差是混亂的,他們經常會輕視一些任務,同時又對一些稍微有難度的任務過分高估。我認為,對一個有經驗的程序員,一個任務的時間應該在半小時到24小時之間,超出24小時的任務都需要拆分。程序員在腦中想一想可能會認為要60小時,但實際上即使是很有經驗的程序員也需要將任務分成可控的模塊再來分析做決定。

還有一個很重要的需要認識到的一點是,編程上的經驗並不等同於時間估計上的經驗。一個從沒有做過工期估計的程序員不會擅長估計時間。如果不去拿真正需要的時間和估計出的時間進行比較,你不可能從其它反饋信息之得到正確估計時間的經驗。

每個程序員都會用到評估技巧。為了提高你的這項技能,你可以在你從事的每個任務上進行鍛煉。在任務開始時先預估開發所需時間,拿它跟你最終真正用掉的時間進行對比。這樣,你不僅在對任務細節的理解上有提高,同時也提高了你對時間預估的技能。

項目時間估算其實是有章可循的

技術分享

總結起來我覺得,對時間的預估與風險的控制關聯非常密切,預估時間長短根據風險進行評估;比如,項目實現技術復雜度,人員狀態,人員到位情況,資源到位情況等。當然預估時間還要考慮其他很多因素,比如成本,質量等因素。

預估完時間後在實際項目推進過程中,項目經理充當的更應該是一個實時監控、糾偏的角色,根據掌握的項目進度情況,提前預知風險,並采取必要的措施,使項目按計劃平穩的向前推進。

簡單總結下。拋個問題,項目管理過程中,由於技術復雜度評估不足或者需求邊鋒導致項目延期,你作為PM會怎麽去處理這種情況呢?

轉載請註明原文地址:http://www.cnblogs.com/chenliangcl/p/7363139.html

程序員/PM怎麽讓項目預估的時間更加準確