為什么項目估算偏差如此之大?

jopen 11年前發布 | 4K 次閱讀 項目

  英文原文:Poor developer estimations AKA Guesstimation

  在軟件開發過程中,估算是一個非常重要的環節,對于項目計劃、進度控制等都具有重要的意義。但是估算也是一個比較難的“技術活”,因為是 “估”,所以往往會存在一些偏差,而這些偏差對于一個項目來說,有時可能會導致多花費一些不必要的金錢,還有可能影響公司的聲譽和員工的積極性。

  而哪些因素會導致估算偏差呢?開發者 Alex E. Fish 給出了以下提示。

  沒有充分考慮需求

  如果你沒有充分考慮到所有的需求,那么估算一個任務將花費多長時間是毫無意義的。更多的需求意味著更復雜的實現,這當然也需要更多的時間來完成。

  估算了測試時間,但沒有估算修復時間

  估算應該考慮到所有的測試時間以及修復 bug 的時間。單元測試、BDD(Behavior Driven Development,行為驅動開發)測試、測試人員進行手工測試,這都是需要花費時間的。并且,開發人員查找和修復 bug 同樣也需要時間。更復雜的任務有可能會包含更多的 bug,這意味著需要花費更多的時間來跟蹤和修復它們。

  假定開發者每天 8 小時都在編碼

  就算開發者每天上班 8 個小時(不加班情況下),但是這不代表 8 個小時都在編碼,其他一些瑣事往往會令生產率大大降低,比如會議、電子郵件、同事之間的 IM 消息、詢問問題等。開發者從工作中斷恢復到工作狀態,往往也需要 15 分鐘時間。有些時候,開發者一天只有 2 個小時的時間用于編碼。

  按天估算,沒有按小時估算

  所有的任務都應該被分解成2~16 小時的塊任務。這是一個很好的規則,可以讓你獨立地看待每個任務,并能夠把所有因素都考慮在內,減少估算偏差的機會。

  讓非項目人員來估算

  應該由參與編寫軟件的開發者們來進行估算。他們可以根據自身經驗、開發速度對項目有一個更準確的把握。這也避免了由于A設置的進度過快,而導致B被追究責任。

  忘記過去

  George Santayana 曾說:“忘記過去的人注定要重蹈覆轍。”如果這不是你的第一個項目,那么最好回頭看看過去的項目。查找你以前曾參與過的同一領域中的類似規模/要求的項目,并將它作為一個參考點。

  忽略停工期

  如果項目是一個長期項目,或者開發者在夏季需要有一個假期,那么在估算時也應該考慮在內。必要時,考慮設置一個適當的緩沖期。

  過于確切

  將項目估算在一個確切的期限內或小時數內是不現實的,這也是無法實現的,最好的辦法是估算一個范圍,包括最好的情況下、最有可能的情況下、最壞的情況下的范圍。

  總結:要認真看待估算

  估算是一個應該認真對待的工作,也是每一個開發者必備的技能。你和你的同事都應該掌握并進行實踐。一個好的估算的做法是人人參與。

  估計沒有人喜歡估算,我個人認為這是軟件開發工作中最糟糕的部分。而估算也從來都不會真正可靠或者完全準確,但還是希望上文這些內容可以為你帶來一些幫助。

來自: www.iteye.com
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!