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

项目时间的估算对项目的成败至关重要。项目时间管理包括了项目按时完成所需的各个过程。但是,在实际项目中,经常出现项目延期,估算严重不准确的现象。

一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序员估计出的时间乘以π值,然后再提高一个数量级,这样得出的才是正确的开发所需要的时间。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 

时间: 2024-11-06 12:36:36

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

《程序员》约稿:多任务下的时间管理,目标计划与任务分解

<程序员>杂志面向俱乐部会员约稿啦!CTO俱乐部与CSDN<程序员>杂志联合打造系列专栏,面向CTO俱乐部会员约稿,邀请您参与分享. 话题讨论一:多任务下的时间管理(<程序员>9月刊,8月15日截稿) 软件领域著名专家Gerald M.Weinberg曾提出一个经验法则,用来计算由于切换项目而引起的浪费.根据测算,当工作中增加一个项目时,会影响工作效率,损失20%的时间,再增加一个任务时,有近一半的时间会浪费在任务切换上. 但不可否认的是,多项工作并行进展是很多研发团队

程序员的无奈(八):约会时间靠加班

在公司组织的一次羽毛球赛上,我与她邂逅了...青青子衿,悠悠我心,与你比赛,败也舒心.这是我工作以来最快乐的一段时光,她性格豪爽,名副其实的女汉子,凡事喜欢独当一面,自然而然的我就矮了半截.趁着一个周末,买了电动车,开始了我的接送之旅.后来的日子里,工作中仿若忽视了其他人的存在,时不时的就抬头看看斜对面的她,而她总是前后左右的嘻嘻哈哈,还真是羡慕测试部的氛围.每天都开始加班,一起吃饭,一起工作,一起聊天.就像军人结婚在部队,程序员约会靠加班,工作更加带劲,产能也更加高效,领导见状把笑容贴在了脸上

翻译:程序员做些业余项目的重要性

编程是一种创造过程,业余项目允许程序员在没有截止日期或各种限制的条件下,以探索形式编程.业余项目之所以重要,有以下几个原因. 探索新技术 每天都会不断有新技术出现,开始不知道开发安卓应用需要做保护,如果一旦你的一个应用上市场是为了获得一定的外快,这个就不得不知道.办法总是比困难多,在你还没遇到的时候有人遇到了,并且研究出了解决办法——爱加密专业安卓应用加密技术.同时业余项目则是最佳的试验场.作为业余项目,你不必为bug或者性能问题担心,即使网站崩溃也没有问题,因为你不靠它来领薪水. 从头创造 我

对于程序员说的话,项目经理们是这样理解的

程序员:就目前的设计,我大概一周内就可以搞定基本框架.然后我们从头再优化整理.完善设计, 在接下来的一周提交一个稳定的版本. 项目经理的理解:整个项目只要两个礼拜就可以搞定. 程序员:是的,我可以写一些Web服务,通过这个服务,其他的开发人员能够与我们的系统进行交互. 项目经理的理解:他一人就可以构建出一个每分钟能够承受百万用户的负载均衡Web服务网站. 程序员:我们需要和下一版本负责人开个会,告诉他们除非有合适的构建部署服务器,我们无法按时完成项目. 项目经理的理解:没戏了!(泪奔中...)

程序员做些业余项目的重要性

编程是一种创造过程,业余项目允许程序员在没有截止日期或各种限制的条件下,以探索形式编程.业余项目之所以重要,有以下几个原因. 探索新技术 每天都会不断有新技术出现,开始不知道开发安卓应用需要做保护,如果一旦你的一个应用上市场是为了获得一定的外快,这个就不得不知道.办法总是比困难多,在你还没遇到的时候有人遇到了,并且研究出了解决办法--爱加密专业安卓应用加密技术.同时业余项目则是最佳的试验场.作为业余项目,你不必为bug或者性能问题担心,即使网站崩溃也没有问题,因为你不靠它来领薪水. 从头创造 我

程序员书单_项目管理篇

人人都是产品经理 苏杰 文字完整版http://download.csdn.net/detail/shenzhq1980/9076259深入浅出PMP 中文版http://download.csdn.net/detail/shenzhq1980/9076253项目管理七杯茶http://download.csdn.net/detail/shenzhq1980/9076249项目实施<超越对手--软件项目经理的18种实用技能> http://download.csdn.net/detail/sh

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

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

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

从程序员到项目经理(一)

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问