请使用π乘以你估计的任务时间(转)

add by zhj: 用PI并没什么科学依据,作者在文章结尾也提到了这点。不过,系数肯定大于1,我一般使用2

请使用π乘以你估计的时间

项目估计是一个黑色魔法,尤其是在游戏开发中更是这样。我曾经听过数理逻辑学家的一个神秘的说法,即把他们估计的时间乘以π。据实践表明,这给了他们足够的缓冲时间来处理新的需求、测试、迭代和范围内的其他变化。

因为好奇和武断,这给我留下了很深的印象,但我确实被吸引了。现在我很高兴的宣布,我已经能够为他们的循环估计猜测找到一个坚实的数学基础。

请听我解释。

某个人——一个设计者、你的领导、执行生产者、一个朋友、你的妈妈——让你做某件事。你考虑一下,草草记下一些笔记,考虑需要什么,提出一个计划和一个估计的时间。

但情况有变。发现你的设计者/生产者/领导/朋友/妈妈忽略了一些事情,而且在你工作的过程中有了一些进一步改善的想法。你的视野变大了。

当然进展不太顺利。你的第一次尝试是有益的失败。然后你急着开始第二次尝试,遇到了很多问题需要一段时间来解决。你花了额外的两天时间来考虑替换的方法。总之,你走在一条绝对曲折的路上来实现目标。

那么相比与你以前的计划,你的旅程花费了多久呢?结果是数理逻辑学家是对的。。。

情况就是这样——无论你认为你什么时候开始,一旦你经历了研究、设计、讨论、原型、失败、测试、需求生成和创造过程中的其他一些行为时,你将无疑会在你之前计划的π倍时间完成。

现在也许有人会质疑我的数学精确性,甚至会质疑我所认为的确定的结论。人们也许会说正确的乘数不是真正的π——而应该是2,或者√2,或者e,或者黄金比例φ。然而,我确信没人会说乘数会小于一。

关于你的数理逻辑学习,重要的是你必须让自己承认——当你开始一项工程时——你无法看到全貌,你不知道情况会怎样,而且你几乎无法提前了解工作的内容。没有大量的计划和任务分析,是无法改变这个情况的,所以不要太较真。相反,给自己一个合适的缓冲,努力去工作。

噢,你上周写的那个to-do列表?你仅仅完成了列表的三分之一并不是巧合。;-)

本文地址:http://www.oschina.net/translate/always-multiply-estimates-by-pi

原文地址:http://www.altdevblogaday.com/2013/11/15/always-multiply-estimates-by-pi/

时间: 2024-10-08 10:04:53

请使用π乘以你估计的任务时间(转)的相关文章

程序员/PM怎么让项目预估的时间更加准确

项目时间的估算对项目的成败至关重要.项目时间管理包括了项目按时完成所需的各个过程.但是,在实际项目中,经常出现项目延期,估算严重不准确的现象. 一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序员估计出的时间乘以π值,然后再提高一个数量级,这样得出的才是正确的开发所需要的时间.1天时间经过变换后是3.14周.他经过惨痛的教训才认识到程序员预估的时间都是不靠谱的.为了能更精确的对程序员估计的时间进行换算,我创建了一个时间换算表,重点说明究竟是什么地方出了问题. 估计时间 程序员的思考 程序员

[原创]Java项目统一UTC时间方案

Java项目统一UTC时间方案 作者:Gods_巨蚁 引言 近期团队的个别项目在进行框架升级后,部分时间值存在8小时误差,原因是错误的将数据库中的时间数据理解成了UTC时间(旧版本认为是北京时间) 考虑到未来项目对于时间理解的一致性,我决定将项目统一为使用UTC时间,经调研,形成本文 mysql数据库时区及时间时间类型说明 数据库时区 mysql数据库拥有时区设置,默认使用系统时区 可通过如下语句查询当前时区 show variables like '%time_zone%'; 下图为我个人机器

Android开发之时间日期

 对于手机的时间日期设置估计大家一定都不陌生吧,今天做了一个关于时间日期设置的小例子,其中遇到一个问题,求指导,如何使设置的时间日期和手机系统同步?还望高手指点一二. 先不说这个了,分享一下我的小例子,看对你是否有帮助. 首先是时间设置: .java文件(MainActivity.java): package com.example.activity_time_date; import java.util.Calendar; import android.app.Activity; import

为什么程序员预估的时间都不靠谱

http://www.aqee.net/why-programmers-are-bad-at-estimating-times/一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序员估计出的时间乘以π值,然后再提高一个数量级,这样得出的才是正确的开发所需要的时间.1天时间经过变换后是3.14周.他经过惨痛的教训才认识到程序员预估的时间都是不靠谱的.为了能更精确的对程序员估计的时间进行换算,我创建了一个时间换算表,重点说明究竟是什么地方出了问题. 估计时间 程序员的思考 程序员忽略的事情 真正

Linux时间的设置date

Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟.系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置.当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作. Linux中的所有命令(包括函数)都是采用的系统时钟设置.在Linux中,用于时钟查看和设置的命令主要有date.hwclock.date名称 : date使用权限 : 所有使

不懂技术的人请不要对懂技术的人说这很容易

“这个网站相当简单,所有你需要做的就是完成X,Y,Z.你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来.” 我时不时的就会收到这样的Email.写这些邮件的人几乎都是跟技术不沾边的人,或正在研究他们的第一个产品.起初,当听到他们这样的话,我总是十分的恼怒.他们在跟谁辩论软件开发所需要的时间?但后来我意识到,即使我自己对自己的项目预测要花去多少开发时间,我也是一筹莫展.如果连我自己都做不好,我何必对那些人恼怒呢? 真正让我郁闷的不是他们预估的错误.问题在于他们竟然认为自己

第2周作业第1题 时间换算

1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千位部分:如果小时是0,则没有百位部分:如果分小于10分,需要保留十位上的0.如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分. 有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据. 你的程序要输出这个时间

HTML5中的时间类型,另外EL表达式的时间值来读取时间,并且还可以更改时间

HTML5规范里只规定date新型input输入类型,并没有规定日历弹出框的实现和样式.所以,各浏览器根据自己的设计实现日历.目前只有谷歌浏览器完全实现日历功能.相信这种局面很快就会结束,所有的浏览器最终都将会提供原生的日历组件. 如果你使用的是谷歌浏览器,那你就可以在下面的实例演示中看到这个漂亮的日期组件.用鼠标点击输入框,就能看到浏览器原生的日历框. 约会日期: 如果你当前使用的浏览器还没有实现日历组件,下面的图片你可以先睹为快. 无需任何的JavaScript,它变成了一个最基本的inpu

获取指定时间区间作业运行情况

背景:数据库服务器定期重启,想知道重启期间对作业的影响.通俗点就是服务器在重启这段时间,有哪些作业计划要运行,重启后是否要手动执行这些作业?第一次重启的时候,按照最笨的方式,把所有作业看一遍,然后人为判断有哪些作业将受到影响,再根据作业具体代码,确定是否需手动执行.后来老大说要弄个过程出来,通过传入起止时间参数,返回区间内的作业计划.PS:参考各类资料,修改过很多遍,最后成型在6月初,很多细节上的修改自己也记不清楚了,一直懒得整理.先放上代码,以及效果图. 1 /****************