在深入探讨之前,我要说的是,“ 软件估算:揭开妖术的神秘面纱”对于那些正在考虑和思考估算的人们来说是一个极好的资源。下面的两个图像均来自该书,如果下面提出的想法也一样,则是核心内容。
您已经注意到,估算是能够准确预测和计划工作的重要组成部分。没有估算会使企业对某件事情需要多长时间视而不见。对于业务需要多长时间完全不正确的想法对企业来说并不罕见-他们认为容易的事情需要六到八周的时间,而被认为困难的是星期五下午的黑客。
首先是给出一个估计。估计本身不是一个数字-这就是一个承诺。“ ABC需要多长时间”->“大约5天”表示大约5天。但是,一个好的估计范围是您有90%的信心将在该范围内。如果您要说“我有90%的信心,这将需要1至5天的时间”,然后说。不要从“我认为这将需要1到10天,所以5天可能是平均水平”开始工作-那不是一个估计,并且50%的时间您都会错的。
好吧,在50%或更多的时间里,程序员对于任务时间都是臭名昭著的低估者。
考虑不确定性的锥体:
图片来自http://www.construx.com-全文位于http://www.construx.com/Thought_Leadership/Books/The_Cone_of_Uncertainty/
意识到该范围内的第一个估计值为16倍。这类似于说“我认为这需要一个下午到两个星期”-但您还不知道。随着设计的进行,范围缩小到4倍。但这并不意味着它会采取一个星期就意味着你反而会被说“看这一点后,会需要三个星期之间” -是的,估计去了,而且估计的范围内去下。
给出的每个估算值都需要90%确保估算值在该范围内。您可能会错-10%的时间将超出该范围。
有许多估算项目规模的方法。将其与过去的项目进行比较,使用代理(我认为这将花费1000行代码,这将花费很长时间来编写),使用功能点(转换为LOC ...),从许多人那里获得估算值,然后反复细化...针对某些项目的某些工作,针对其他项目的一些工作。
我在书中最上面提到的非常重要的一章是#23,它涉及估算的政治以及与经理和行政人员的关系。
估算的关键是经过一点点的细化之后的迭代过程。
在流程中过早地提供估计值过于精确可能很容易出错。如果您不确定,请给出广泛的估计,然后过一段时间再返回另一个估计,以便对问题进行更多的内省,并可能勾勒出您将如何做,并查看为该代码编写了多少代码最后一个类似的问题以及其他会影响估计的因素。
估算需要一些思考-不要放弃袖带估算。与您稍微想一想相比,这些通常会伴随着巨大的错误。
从如何当你要求的估计来应对呢?
要求估价时要说些什么
您说:“我会尽快回复您。”
如果您减慢流程速度并花一些时间来完成我们在本节中介绍的步骤,则几乎总是可以获得更好的结果。咖啡机提供的估算值(像咖啡一样)会再次困扰您。
从软件评估的第4章:
请注意,在这种情况下,经过一番审核后的估算值与临时估算值相比,在系统上不那么疯狂且不易出错。不要做袖口估计。坐下来考虑一下任务,经过一番思考后再进行估算。