為什麼程式設計師不擅長估算時間
一個曾經與我一起工作過的經驗豐富的專案經理聲稱,他拿到程式設計師的時間估算以後,先將它乘以π,然後轉化下一個時間數量級後,才能得到真正的值。1天轉化成3.14周。他過去因為程式設計師不擅長估算時間而吃盡了苦頭。我建立了一個用來翻譯程式設計師時間估算的表格,來儘量縮小估算錯誤。
估算時間 | 程式設計師所想象的 | 程式設計師所忘記的 | 實際時間 |
---|---|---|---|
30秒 | 只需要做一個很小的程式碼改動。我準確地知道怎麼改,在哪裡改。花費30秒敲鍵盤即可。 | 啟動計算機,開發環境和獲取正確原始碼的時間。用於構件,測試,檢查和文件修復的時間。 | 1小時 |
5分鐘 | 小事一樁,我只要上谷歌查一下語法就可以修復它了。 | 很少有一次就能找到完全正確的資訊。即使找到,在它能工作前,也需要做一些調整。外加構件,測試等等時間。 | 2小時 |
1 小時 | 我知道怎麼做,但是寫這些程式碼需要花費一些時間。 | 面對未來可能發生的問題,1小時稍縱即逝。有些東西總是會出錯。 | 2小時 |
4小時 | 需要寫一些程式碼,但是我粗略地知道步驟。我知道標準框架中的Wizzabanga模組可以做到,不過我得檢視文件,瞭解它的準確地呼叫方式。 | 這個大概是唯一現實的估算。它為意外的錯誤留下了足夠大的餘地,而這個任務也小到足以把握。 | 4小時 |
8 小時 | 我先要把Balunga類重構成2個,然後為Wizzabanga模組加一個呼叫,最後為GUI加一些欄位。 | 總會有許多系統的不同部分依賴著Balunga類。大概有40個不同的檔案需要修改。為GUI新加的欄位,同樣也需要加到資料庫中。8小時太長,無法完全把握。總會有比程式設計師估算時更多的步驟出現。 | 12-16小時 |
2 天 | 真的有一大堆程式碼要寫。我需要往資料庫里加一些新table,顯示table的GUI,還有讀寫table的程式碼邏輯。 | 對於大多數開發者來說,兩天的工作量已經大到難以估算了。肯定會有什麼東西被遺漏掉。不僅僅是一些小事情,而是整個一大塊主要功能會被遺忘在估算中。 | 5 天 |
1 周 | 哎喲,這真是一項艱鉅的任務。雖然我還沒有思路,但我不能說我不知道。一週應該夠了,我希望,我真心希望,但是我不能要求更多了,否則他們會認為我不夠稱職。 | 這個任務已經大到超過大多數程式設計師的理解了。它應該被髮回給架構師,幫忙將它劃分成更小的部分,然後提供一些解決問題的方向。架構師可能會發現一種更簡單的方法來完成它,或者發現其實有更多超乎想象的工作。。。 | 2-20 天 |
時間估算時困難的。每一個程式設計師都有一個現實的估計區間。低於這個區間的估計意味著(構件,測試,檢查程式碼的)時間開銷被低估了。超過這個區間的估計意味著這個任務太大而很難預估。
對於初級開發者來說,這個區間甚至都不存在。他們忽略(構件,測試,檢查程式碼的)時間開銷,同時困難的任務他們卻又無法預估。我想說一個有經驗的開發者應該在0.5至24小時將事情做完。超過24小時,就需要細分。這項工作應該在開發者的頭腦中完成,然後總和到60小時。但是即使是有一些有經驗的開發者也需要有利用管理時間塊來思考。
同樣重要的是明白:程式設計經驗不等同於估算經驗。一個不被包含在估算流程中的開發者將不會擅長估算。同樣,如果實際的時間花費不被測量和用於與估算比較,那麼將沒有反饋來學習。
最後,每個程式設計師都應該具備估算的技能。為磨練這個技能,接手每個任務時,先決定你要做什麼。然後在開始之前估算任務所需時間。最後測量實際花費時間,並與估算相比較。同樣比較你實際完成的與計劃完成的。這樣你將會既提高你對一個任務包含細節的理解,同樣也提高了你的估算技能。
相關文章
- 程式設計師的時間估算程式設計師
- 程式設計師必備的專案時間估算指南程式設計師
- 程式設計師為什麼喜歡夜間工作?程式設計師
- 程式設計師程式設計時喝什麼?程式設計師
- 程式設計師程式設計時喝什麼程式設計師
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- 為什麼程式設計師總是不能準確估測專案時間程式設計師
- 為什麼很多程式設計師工作時都戴耳機?程式設計師
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 女程式設計師,為什麼比男程式設計師少???程式設計師
- 程式設計師,為什麼如此迷茫?程式設計師
- 我為什麼是程式設計師?程式設計師
- 為什麼有的程式設計師不會程式設計?程式設計師
- 為什麼程式設計師需要慢慢地茁壯成長程式設計師
- 程式設計師為什麼要時刻保持危機感?程式設計師
- 為什麼要成為「無敵」程式設計師?程式設計師
- 為什麼為什麼為什麼為什麼為什麼你要做一名程式設計師?程式設計師
- 程式設計師與產品之間應該如何配合,什麼時候技術為重,什麼時候產品為重?程式設計師
- 程式設計師你為什麼這麼累?程式設計師
- 程式設計師垃圾簡歷長什麼樣?程式設計師
- 為什麼程式設計師喜歡在深夜程式設計?程式設計師
- 中國程式設計師為什麼要跳槽?程式設計師
- 為什麼成為一名程式設計師?程式設計師
- 程式設計師修煉之為什麼程式設計師被稱為“夜貓子”程式設計師
- 程式設計師為什麼都穿得那麼醜程式設計師
- 為什麼女程式設計師會這麼少?程式設計師
- 程式設計師為什麼喜歡程式設計這項工作?程式設計師
- 程式設計師為什麼千萬不要瞎努力?程式設計師
- 程式設計師:你為什麼要離職?程式設計師
- 程式設計師為什麼值得寫部落格程式設計師
- 程式設計師為什麼不應該加班程式設計師
- 為什麼程式設計師總是在熬夜程式設計師
- 為什麼程式設計師總是在熬夜?程式設計師
- 為什麼要投資程式設計師的幸福?程式設計師
- 為什麼Python對程式設計師重要?Python程式設計師
- 為什麼我們不要 .NET 程式設計師程式設計師
- 為什麼程式設計師都是夜貓子程式設計師
- 為什麼我們不要.NET程式設計師程式設計師