我是一个九人开发团队的领头人。一般来说,我们所从事的是(项目)支持和强化的工作,但是有的时候,我们被要求完成一项大型工作,而这项工作大到肯定可以被作为一个项目来看待。我们所面临的问题是:我们很难估算需要在这些大型项目上所花费的工作量和时间。通常我们对工作量的估算不足,所以搞得在最后几个星期里才拼命加班完成所有的工作。我正在尝试先预估工作量,然后在未来将其翻倍。有没有什么简单的方法能够解决这个问题?——Kurt
回答:
Kurt:在先前的专栏里,我们看到了在估算大型工作的工作量问题上,很多支持人员都是出了名的估算不准者。我们知道,支持工作的很多特点会在支持人员试图估算大型工作的工作量时合起来阻挠他们。好消息是,如果你知道这些陷阱并试着避免它们,而且学会一些基本的估算技巧,那么在估算工作量上你就会做得更好。
估算的技巧
项目的特点之一是,工作和可交付的内容是唯一的。这就意味着对项目的估算也会是唯一的。但是,基本的估算技巧能够帮助你建立一个对项目需要多长时间的初步评估。有一些技巧要依赖于暴力(硬性估算),有一些会利用同其他项目之间的相似性,有一些要依赖数学计算,而有一些要靠其他人的意见。如果有可能的话,你应该使用两种方法,并对比它们(的结果),看它们是否合理和一致。如果这两种估算(的结果)很接近,那么你的估算就是相当准确的。如果它们相差较大,那么你就应该改进估算的方法,并找到不足之处了,或者使用第三种估算方法来尝试获得某种一致性。
对工作结构的分解
进行估算最精确的方法通常是建立一个将工作分解开的结构。这就需要在一个很高的层面描述工作,然后将该工作分解成更小的部分,直到每项活动都能够被估算在80小时以内完成。(或者如果项目比较小的话,就是40个小时。)这通常也需要花费很多时间和精力。但是,如果你非常好地了解了这项工作,而且如果你能够确定所需要的工作都已经包括进了你的工作分解结构里,那么你就常常取得获得一个精确的估算。
以前的经验
尽管所有的项目都是唯一的,但是有些项目同其他的项目非常相象。使用以前的经验这一技巧,你可以找一找以前完成的类似项目,然后根据那个项目实际所需要的工作量来估算你当前的工作。这是一个估算工作量的好方法,因为它允许你使用以前的经验。但是,它要求你以前有一个类似的项目,而且你必须具有对那个项目实际工作量的准确计算。例如,假设你正在将你的财务软件升级为一个新的版本。如果这是你第一次完成一个新的版本,你就没有以前的经验。但是,如果你以前进行过软件的升级工作,你就应该非常了解这次升级需要什么。即使这个项目是唯一的,它也和以前所做过的工作非常类似。
类比/比率
类比技巧和以前的经验非常类似。但是,你不需要具有先前的项目作为比较对象,而是寻找具有类似特点的项目。例如,让我们还是来看一下前面升级财务软件的例子吧。如果你以前从来没有对进行过升级,那么你就不知道这个项目会花多长时间。但是,你也许的确具有升级应收帐款(Accounts Receivable)软件包的经验。尽管这两项工作不相同,但是它们很类似。知道了升级应收帐款软件所花费的工作量和时间,会有助于你估算财务软件升级所需要的工作量和时间。
根据比率来估算是类似的,不同的是,你要考虑当前项目同以前的项目相比而言的大小。一个很简单的例子是,你以前可能在四个地区办事处里安装过一个新的财务软件。现在你被要求将同样的软件包安装到另外两个办事处里。如果所有的条件都相同的话,在新项目(两个办事处)上所花费的工作量将是前一个项目(四个办事处)所需工作量的一半,这样考虑是理所当然的。
专