有些人听到估算就头疼。我曾经听到一些聪明且经验丰富的项目经理断言,要估算他们项目的工作量是“不可能的”。我认为这些人不懂得估算。我认为这些人可能混淆了估算(对不确定事件进行合情合理的评估)与超感官知觉(对不确定事件进行准确预测)。或者在某些情况下,他们可能不做估算就准备预算或报价。
准确估算也是一项技能,可以在实践中得到提高。特别是在对项目成本进行估算时,经理们应当充分考虑他们的项目所需的资源,每一项资源的估算成本,以及非人工成本和外包成本。这些应该能让他们对项目的预期成本有一个总体构想。我知道准确估算是有可能的。我自己就做到过(我的一个项目曾被估算需要1300工时,结果用了1302工时完成),我也教过数千人怎样做。回想一下克拉克定律:任何太过先进的技术都会被误认为魔术。准确估算也是一项技能,可以在实践中学习提高,直至外行看起来像魔术的程度。
说起来好像多余,进行估算的第一件事就是知道你要估算什么。现在,让我们假设有人要求你估算粉刷你的卧室需要多少工作量(占用你多少时间)。虽然这是一件很小的工作,但它仍有相当多的不确定性:
·你是否需要粉刷天花板和木器还是只有墙壁?
·有没有需要粉刷的窗户?这些窗户有窗框吗?
·房间里有家具吗?能移动吗?如果能移动,把它移回来是否算在“粉刷房间”之内?
·选择颜色是否包括在工作之内?还有去商店购买涂料呢?
·需要刷多少遍?需要做什么特殊效果(例如大理石纹)吗?
·有没有人帮你做?还是你要一个人做完?
如果你不知道这些问题的答案,你有多个选择。你可以完全拒绝去做估算;你可以做一个预留大量不确定性的估算;你可以对上述问题假设一些答案并根据这些假设做估算;你还可以在做估算之前取得上述问题的答案以减少不确定性。这些方法中每一个都是可以接受的,只要相关人员知道你使用哪个方法就行!
大多数时间,你会将几种方法结合使用。你会做一些合理假设(并且你一定会把你的假设记录下来!)。你会问一些问题。然后你就运用自己的最佳判断。
你可以用区间估算改进你的最佳判断。区间估算是怎样的?在它的最简单形式中,你对于你认为可能需要的工作量估算一个低值和一个高值。例如,在粉刷你卧室这一案例中,而且假设只粉刷墙壁,你可能估算2到3小时。
区间估算背后的基本概念是你不需要知道所需工作量的精确值。你需要知道的是它不会比你的进度表多出一整天。你需要知道的是它不是一件能在几分钟做完小事。只要实际结果落在估算值的2到3小时左右,你的估算就相当不错了。
即使实际结果超出了这个范围,你的估算也是很好的,因为就当时你能掌握的情况来说这已是你能做出的最佳估算了。另外,你可以从这次偏差(实际结果超出预测范围)学到东西并改进你以后的估算。
使用区间估算大大减少了估算过程的痛苦。如果你习惯于单点估算(见下文),要在2小时和3小时之间选择会非常困难。甚至做出一个2.5小时的估算都会困难,因为你知道实际会多于或少于那个数量。使用区间估算让你能在不确定性之下进行操作。
单点估算是魔鬼的作坊;它们就是魔鬼!在任何情况下都不要向任何人提供一个单点估算。如果你的老板坚持要单点估算,那他或她很可能是想要一个预算,而非估算。给他们一个预算也没问题,但你真的应当让他们也知道你的估算,这样他们就能了解你对预算数字的可靠性有多大信心了。
你可以通过三点区间估算进一步改进你的