专注于件。当你尝试和估计一个高层次的任务时,不仅会令人望而生畏,而且你将无法准确地将所有时间都包含在内。
相反,甚至不要试图猜测总数(不仅它没有用,但它实际上可能会偏倚你对个人任务的估计),而是坐下来试着去思考所有的子任务包括任务。如果那些感觉太大,将它们分解成更小的子任务。
一旦你完成了这个,给每个子任务一个估计。如果它们中的任何一个大于约4小时,则该子任务可能还没有被充分分解。向上添加所有这些子估计值。这是你的估计。
使用这种方法会迫使您推断完成任务所需的实际内容,并且可以让您产生更好的估计。
确保您考虑完成任务所需的非显而易见的步骤。如果您正在编写一段代码,您是否包含编写相关单元测试的时间估计?为了测试代码?为了记录它?
将小时转换为天时,请使用切合实际的期望,即您实际花费的时间有多少。普遍的共识是,开发人员可以在任何给定的8小时工作日内完成4-6小时的工作。这大致符合我的个人经验。
如果您有其他团队成员,您可以尝试一种叫做Planning Poker的技巧。最简单的想法是让团队中的每个成员都能够分别评估每个任务。一旦完成,团队会聚在一起,并比较估计值,寻找大偏差。如果任务不够明确,团队成员拥有其他团队成员没有的相关信息,或者团队成员的不同假设不同,这种情况往往会被揭示出来。
在做您的估计时,请注意您的假设并将它们记录为估算的一部分。假设x,y,& x,任务q应该花费n个小时。假设两个尚未一起测试的第三方框架的兼容性,假设可用开发环境来部署该功能以进行测试,这可能是假设QA工程师可用于测试功能,假设那个任务所依赖的特征z已经准备好了一定的日期......等等我们总是在不知道这些假设的情况下做出大量的这些假设。记录它们会迫使你意识到它们,并允许其他方面验证你的假设是正确的。如果估计结果确实是错误的,那么你就有更多的信息来分析原因。
即使遵循所有这些建议,您仍然会经常做出不准确的估计,但不会感觉太糟糕,因为我们的大脑被硬连接以对抽象任务产生可怕的估计。我们有许多认知偏差会影响我们衡量任务规模和努力的能力。
我建议你阅读这篇文章,甚至更多的信息和建议:
http://blog.muonlab.com/2012/04/12/why-you-suck-at-estimating-a-lesson-in-psychology/
我发现这个网站非常准确,作为估算工具:http://sixtoeightweeks.com/ – bta 2012-04-28 00:10:06