在一件事情上付出越多,是不是结果会更好。比如:洗车,自己自助洗车使用10min左右,你也可以找专门的洗车,是用一个小时完整的细细洗刷。你可以考虑收益递减原则,看你需要得到的是什么,我们在估算时,需要考虑投入时间的收益递减原则。
比如,你需要估算一个建筑物的高度时,你可以取一个参考物去估算,也可以根据楼层数进行挂算,当然你可以去实际的去量测或者实际去计算,但如果只是需要给个大致的范围,就只需要大致估算就可以了。
但是无论如何估算,你都会发现,在需要一个估算值时,无论你怎么精细的估算,最后你都不可能得到一个准确的数值能够精确的匹配到坐标值上。
我们需要了解,通常在投入10%的时候就可以达到50%的准确度,因此我们需要清楚估算的目的是什么,然后再去选择估算的方法。
那么都有哪些估算的方法呢?
1.共同估算
估算不是由团队某个人进行估算,也不是由专家进行估算的,最佳的估算是-包括将要做这项工作的人-由团队协作估算的。
一方面估算的时候并不清楚谁是任务的执行者;另一方面即使是专家估算的,也需要其他人员进行讨论确定。
2.估算的尺度
人们在估算同一数量级范围的时候,估算会相对准确,因此我们将估算的尺度使用两个非线性序列,分别为:
1、2、3、5、8
1、2、4、8
两个序列背后有自己的逻辑,第一个序列是斐波那契数列,数之间的差距随着数的增大而增大;非线性序列反应了工作的大小越大,估算的不确定性越高,因此都非常便于使用。
使用上述序列进行故事点的估算,当遇到估算为“0”的故事时,依然要体现出来,即使这种概率很小,或者还可以将多个故事点为“0”的故事集合成一个故事。
如果使用大的数字如30,50,60,…… 100进行估算时,需要对数字进行精度等级的定义,否则就会出现66,67这样的故事点差异,而会使得难以评估大小。
史诗—主题(特性)—用户故事
对于不确定是否实现或最近不需要做的项目,可以做成大的故事,也可以称之为史诗(Epic)。
一组相关的故事可能被整合在一起,作为单一的实体,这样一组用户故事称为主题(Theme)
通过主题或史诗,可以减少估算的工作量,但也需要注意,不确定性相对会提高。
3.得到估算值的方法
得到估算值的方法,每种方法都可独立使用,但要得到最佳结果,应综合使用三种方法
1)专家意见—当需要估算故事点时,咨询专家的意见,可以快速给你提供一个估算值,不过敏捷里专家的意见没有传统项目那么有效。适用于快速估算。
2)类比估算,将故事与已经估算的1个或者多个故事进行比较,与已经估算过的一对故事(不必按基线或者固定的故事)进行比较,称为三角测量。
3)分解,将一个用户故事或者特性分解为更小,更容易估算的部分。但要注意,当分解太过时,不仅忘记某项任务的可能性会增加,而且对大量小任务的估算值求和也会出现问题。
4计划扑克
敏捷最佳的估算方法就是打计划扑克(Grenning 2002),计划扑克把专家意见、类比和分解结合到一种令人愉快的估算方法中,可以产生快速而可靠的估算。
计划扑克的参与者包括团队所有的开发人员,不超过10人,PO参与计划扑克,但不进行估算。
扑克提前准备好,所有参与估算的成员均拿到一叠卡片,写有有效的估算值。(0、1、2、3、5、8、13、20、40和100的卡片)
通常由PO或者分析师主持,主持人对每个故事说出他的说明,PO回答大家的疑惑。计划扑克的作用不是获得一个在未来可以经得起审查的估算,而是目标在工作量靠左的为止,提供有价值的估算。
在PO回答所有问题后,所有估算者选择估算值,一起展示,大家批次看到对方的估算。差异大的说明估算的理由,然后进行调整,寻求大家都认可的估算值。
估算的目的在于合理性,而不是准确性,如何使用计划扑克
1)可以使用更小规模的会议
让团队的部分人员来玩计划扑克,大团队分为2-3个小团队,每个团队≥3个人,达成一致后,在举行大的联合计划扑克会议。
2)什么时候需要玩计划扑克呢
在项目正式启动之前或者第一次迭代中存在大量的对象需要进行估算。(2-3小时)
在迭代开发的过程中,团队需要对新发现的用户故事进行估算。一种是在预先做好计划,在每次迭代结束后开个短小的估算会议,或者将新故事放在一个地方,设定一个完成时间,大家有时间就去估算。
5计划扑克为何有效
1)把专家的意见方在一起进行了估算,“应该由最胜任解决某项任务的人对它进行估算”。
2)计划扑克期间进行活跃的对话,估算者会被同事要求证明自己估算的正确性,可以提升估算的准确性,降低故事的不确定性。
3)对每个估算者值进行平均可以带来更好的结果。
4)很有趣
6总结
1花较多的经历并不一定会提高估算的准确性,估算的结果主要用来决定投入的工作量。
2估算应该是由团队一起来完成的活动
3估算应该基于一个预先设定的尺度
4要得到一个估算值,可以使用专家估算、类比和分解的方法,而计划扑克较好的将这三个方法结合在一起进行估算的方法。