為什么程序員不擅長估算時間?

摘要:時間估算是困難的,每一個程序員都有一個現實的估計區間,低于這個區間的估計意味著(構件,測試,檢查代碼的)時間開銷被低估了,超過這個區間的估計意味著這個任務太大而很難預估。

一個曾經與我一起工作過的經驗豐富的項目經理聲稱,他拿到程序員的時間估算以后,先將它乘以π,然后轉化下一個時間數量級后,才能得到真正的值。1天轉化成3.14周。他過去因為程序員不擅長估算時間而吃盡了苦頭。我創建了一個用來翻譯程序員時間估算的表格,來盡量縮小估算錯誤。

時間估算是困難的。每一個程序員都有一個現實的估計區間。低于這個區間的估計意味著(構件,測試,檢查代碼的)時間開銷被低估了。超過這個區間的估計意味著這個任務太大而很難預估。

對于初級開發者來說,這個區間甚至都不存在。他們忽略(構件,測試,檢查代碼的)時間開銷,同時困難的任務他們卻又無法預估。我想說一個有經驗的開發者應該在0.5至24小時將事情做完。超過24小時,就需要細分。這項工作應該在開發者的頭腦中完成,然后總和到60小時。但是即使是有一些有經驗的開發者也需要有利用管理時間塊來思考。

同樣重要的是明白:編程經驗不等同于估算經驗。一個不被包含在估算流程中的開發者將不會擅長估算。同樣,如果實際的時間花費不被測量和用于與估算比較,那么將沒有反饋來學習。

最后,每個程序員都應該具備估算的技能。為磨練這個技能,接手每個任務時,先決定你要做什么。然后在開始之前估算任務所需時間。最后測量實際花費時間,并與估算相比較。同樣比較你實際完成的與計劃完成的。這樣你將會既提高你對一個任務包含細節的理解,同樣也提高了你的估算技能。

英文原文:Programmer Time Translation Cheatsheet -or- Why Programmers Are Bad at Estimating Times

譯文來自:圖靈社區


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450797.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450797.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450797.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

red hat enterprise linux 7關閉防火墻的方法

2019獨角獸企業重金招聘Python工程師標準>>> red hat enterprise linux 7發布后,發現防火墻也變了,如何關閉防火墻呢,下面是方法 1.查看firewall的狀態 [rootsztech7 ~]# systemctl status firewalld firewalld.service - firewal…

IOS —— 網絡那些事(上) - http協議

作為一名并不太合格的程序員,今天要分享學習的成果,竟然講的是網絡相關HTTP協議的事情。(也算是復習了) 乍看HTTP協議的內容著實是十分復雜的,涉及到十分多互聯網"底層"框架的東西。今天就先撇開這部分詳細內…

【最新版】Java速成路線(急于找工作!)

文章目錄計算機網絡分層結構TCP/UDPHTTP/HTTPS狀態碼Cookie 和 SessionURI和URL操作系統線程和進程數據結構和算法數據結構算法設計模式(23種)單例工廠代理適配器觀察者模板實操工具Git/SVNMaven/GradleLinux基本操作NginxELKpostmanJAVA基礎語言基礎JVM…

Java Web Start實例

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 JWS讓用戶可以下載服務器端的Java Application到本機運行,并且沒有安裝、配置等繁瑣的操作JWS的運行原理:瀏覽器…

老派程序員——徒手實現偉大成就

摘要:本文介紹了三位非常著名的程序員:Ken Thompson,Joe Armstrong 和 Jamie Zawinski,他們是如何發明一門新語言,他們開發軟件時會像我們一樣使用當今流行的開發工具嗎?當讀Peter Seibel的精彩著作《編程人生:15位軟件…

互聯網大廠項目研發流程

文章目錄階段一:階段二:階段三:階段四:階段五:開發人員:測試人員:設計師:階段六:階段七:總結:本文章學習自:https://www.bilibili.com…

centos常見錯誤 Failed to set locale, defaulting to C

錯誤描述: 當在centos中使用yum命令時,輸出錯誤: [rootlocalhost yum.repos.d]# yum list |grep prceFailed to set locale, defaulting to C 用locale檢測,出現如下提示: rootlocalhost yum.repos.d]# localelocale: …

圖片上傳知識點梳理

在日常項目開發中,圖片上傳是一個十分常見的場景。而現在的各種UI框架都提供了自己的上傳組件,網上第三方的上傳組件也多如牛毛。可能你早已習慣了直接使用這些現成的組件,然而對于其具體的實現,卻并未深入解析。本文將通過簡單的…

解決 java.lang.IllegalArgumentException: Repository interface must not be null on initialization!

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯:Caused by: java.lang.IllegalArgumentException: Repository interface must not be null on initialization! Cause…

【狂神說】JVM

文章目錄1.JVM的位置2.JVM的體系結構3.類加載器4.雙親委派機制(重要)5.沙箱安全機制(了解)6.native(核心)7.PC寄存器(了解)8.方法區9.棧10.三種JVM11.堆(Heap)12.新生區、老年區13.永…

我們真的需要統一的編程規范?

摘要:仁者見仁智者見智,編碼風格的不同,對項目也會有不同的影響,統一的編碼規范有益于項目的維護。俗話說,沒有規矩不成方圓,在2004年,UNIX創始人之一的Ken Arnold就發表了一篇很幽默文章&#…

百度云重磅發布ABC 3.0 尹世明如何詮釋百度云的“新”打法

雷鋒網9月4日消息,2018百度云智峰會正式召開,百度總裁張亞勤發表題為《新技術驅動,全面進入Cloud2.0》的演講并表示,經歷了PCClient/Server到MobileCloud 1.0,再到如今的AICloud 2.0過程,新技術推動云計算產…

EcmaScript對象克隆之謎

先談談深拷貝 如何在js中獲得一個克隆對象,可以說是喜聞樂見的話題了。相信大家都了解引用類型與基本類型,也都知道有種叫做深拷貝的東西,傳說深拷貝可以獲得一個克隆對象!那么像我這樣的萌新自然就去學習了一波,我們能…

開發人員眼中最好的代碼編輯器是誰?

摘要:對開發人員來講,開發工具就好比戰場上的“兵器”,不同領域的開發人員他們所使用的“兵器”也不完全相同,本文從友好性、功能性、擴展等多方面總結了最受開發人員歡迎的“兵器”。你最愛的那個在這里嗎? 如果我們把…

關于RESTful一些注意事項,接口開發規范

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 最近在研究restful,公司開發要使用,所以自己就去網上找了好些資料,并整理了一套公司開發的接口規范。…

【老杜】MySQL—day01

文章目錄day01課堂筆記1、數據庫概述及數據準備1.1、什么是數據庫1.2、什么是數據庫管理系統1.3、SQL概述1.4、安裝MySQL數據庫管理系統。1.4、MySQL數據庫的完美卸載!1.5、MySQL的服務1.6、用命令來啟動和關閉mysql服務1.7、登錄mysql數據庫2、MySQL常用命令&#…

【轉載】DRuid 大數據分析之查詢

轉載自http://yangyangmyself.iteye.com/blog/23217591、Druid 查詢概述上一節完成數據導入后,接下來講講Druid如何查詢及統計分析導入的數據。Druid的查詢是使用REST風格的HTTP請求查詢服務節點(Broker、Historical、Realtime),這…

記錄 Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentExce

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題: Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Pa…

[轉]簡單的動態修改RDLC報表頁邊距和列寬的方法

本文轉自:http://star704983.blog.163.com/blog/static/136661264201161604413204/ 1.修改頁邊距 XmlDocument XMLDoc new XmlDocument();XMLDoc.Load(System.Windows.Forms.Application.StartupPath "\Report_try-2.rdlc");XmlNamespaceManager xmn n…