阅读Bob Martin的“ Clean Coder”(和“ Clean Code”)。以下是记忆中的内容,但我强烈建议您购买自己的副本。
您需要做的是三点加权平均值。您需要为每项工作进行三个估算:
- 最佳情况-假设一切正常(a)
- 最坏的情况-假设一切都不对(b)
- 实际猜测-您认为可能会发生什么(c)
那么您的估计为(a + b + 2c)/ 4
- 不,那不会是准确的。有更好的估算方法,但此方法快速,易于理解,并通过让您考虑最坏的情况来减轻乐观情绪。
- 是的,您将不得不向您的经理解释您不熟悉该代码,并且无法进行准确,准确的估算,而不必每次都花费大量时间调查代码来提高估算(这是可以做到的,但是例如,您需要n天时间才能确切估计所需的天数)。如果您是“ JuniorDev”,那么对于一个合理的经理来说应该可以接受。
- 您还应该向您的经理解释,您的估算是根据最佳情况,最坏情况和可能情况进行平均的,并给他们提供您的数据,这也会给他们带来误差。
- 不要就估算进行谈判-如果您的经理试图为每个估算使用最佳案例(他们是傻瓜-但我遇到过类似的情况),然后欺负/激励您尝试按时完成任务,那么,他们有时候会很失望。继续解释估计数背后的理由(最好的情况,最坏的情况和可能的情况),并在大多数情况下保持接近加权平均值,您应该可以。此外,出于您自己的目的,请保留估算值的电子表格,并在完成后添加实际值。那应该使您更好地了解如何调整估算值。
编辑:
我回答这个问题时的假设是:
- OP是初级开发人员(基于所选的用户名)。因此,从项目经理或团队负责人的角度出发,给出的任何建议都不是预期的,这取决于开发环境的成熟度,他们有望进行更复杂的估算。
- 项目经理已经创建了一个项目计划,其中包含相当多的任务,计划要花几个月的时间才能完成。
- 要求OP为他们的项目经理分配给他们的任务提供一些估计,他们希望有一个合理准确的数字(而不是概率曲线:)进入项目计划并用来跟踪进度。
- OP没有几周的时间来生成每个估算值,并且由于给出了过于乐观的估算值而被烧掉了,并且希望比将手指悬在空中并说“ 2周,除非代码特别神秘,在这种情况下2个月”更准确的方法或者更多”。
在这种情况下,三点加权平均值效果很好。它是快速的,对于非技术人员来说是可以理解的,并且超过几个估算值应该平均可以接近准确度。特别是如果OP采纳我的建议来保存估计和实际记录。当您知道现实世界中的“最坏情况”和“最坏情况”时,您可以将实际情况输入将来的估算中,如果最坏情况比您想象的要糟,甚至可以为项目经理调整估算值。
让我们做一个可行的例子:
- 最好的情况是,以最快的经验,我做了一件非常简单的事情,那就是一周开始完成(5天)
- 最糟糕的情况是,根据经验,当时到处都有链接,最终我花了6周(30天)的时间
- 实际估算,可能要花2周(10天)
5 + 30 + 2x10 = 55
55/4 = 13.75这就是您告诉PM的内容。也许您最多舍入14天。随着时间的流逝(例如十个任务),它应该达到平均水平。
不要害怕调整公式。也许一半的任务会变成噩梦,只有百分之十容易完成。因此,您将目标设为a / 10 + b / 2 + 2c / 5。从您的经验中学习。
注意,我没有对PM的质量做任何假设。糟糕的项目经理会给项目委员会短暂的评估,以获得批准,然后欺负项目团队,以期达到他们承诺的不切实际的截止日期。唯一的辩护是保留记录,以便可以看到您给出估计并接近它们。