分享 为什么程序员不擅长评估开发时间?

jijin · 2012年08月10日 · 最后由 xds2000 回复于 2012年08月11日 · 5957 次阅读

刚刚毕业,什么都不会,上班每每被问到什么时候可以完成时,总无言以对。

来源:图灵社区 作者:图灵社区

一个曾经与我一起工作过的经验丰富的项目经理声称,他拿到程序员的时间估算以后,先将它乘以π,然后转化下一个时间数量级后,才能得到真正的值。1 天转化成 3.14 周。他过去因为程序员不擅长估算时间而吃尽了苦头。我创建了一个用来翻译程序员时间估算的表格,来尽量缩小估算错误。

时间估算时困难的。每一个程序员都有一个现实的估计区间。低于这个区间的估计意味着 (构件,测试,检查代码的) 时间开销被低估了。超过这个区间的估计意味着这个任务太大而很难预估。

对于初级开发者来说,这个区间甚至都不存在。他们忽略 (构件,测试,检查代码的) 时间开销,同时困难的任务他们却又无法预估。我想说一个有经验的开发者应该在 0.5 至 24 小时将事情做完。超过 24 小时,就需要细分。这项工作应该在开发者的头脑中完成,然后总和到 60 小时。但是即使是有一些有经验的开发者也需要有利用管理时间块来思考。

同样重要的是明白:编程经验不等同于估算经验。一个不被包含在估算流程中的开发者将不会擅长估算。同样,如果实际的时间花费不被测量和用于与估算比较,那么将没有反馈来学习。

最后,每个程序员都应该具备估算的技能。为磨练这个技能,接手每个任务时,先决定你要做什么。然后在开始之前估算任务所需时间。最后测量实际花费时间,并与估算相比较。同样比较你实际完成的与计划完成的。这样你将会既提高你对一个任务包含细节的理解,同样也提高了你的估算技能。

因为 P != NP

现在干活都会开个 time logger 来计算工时,都快有强迫症了😳

好。写的太棒了。

@rainchen 我也一直开着 timer.

一句话:如何丈量海岸线的长度?

@Jijin 表格的 Markdown 怎么写的,很漂亮。

#6 楼 @Peter 这样 :)
//l.ruby-china.com/photo/4fedcf6f7f7d713119de7e3d3893b3e5.png

我都是把初步估算时间*2,一般都比较准确

@Jijin 哇,这么帅的 Markdown!赞!

@Jijin 哇,这么帅的 Markdown!赞!

@Jijin 哇,这么帅的 Markdown!赞!

@Jijin 哇,这么帅的 Markdown!赞!

额。。。是张图

匿名 #15 2012年08月11日

恩恩,就算程序员能预估实际开发时间,其他人,包括领导也会让这个时间*2 甚至更大

因为没有人擅长评估开发时间

这个技术需要用工具加实践。wbs 加 cocomo

需要 登录 后方可回复, 如果你还没有账号请 注册新账号