对于项目管理人士来说,会被要求掌握敏捷估算的理论和运用敏捷估算技巧的能力,估算对于很多项目是困难的,因为复杂和未知混合在一起使估算的准确度成为了一个很大的难题。
首先我们来简单了解一下敏捷估算
1 | 为什么要估算? | ·确定项目大小; ·计算投资回报率、收益率; ·确定哪些工作应该在哪个版本哪个迭代完成。 |
2 | 如何建立估算 | ·在确定项目大小、成果、日程表、最终成本的阶段中建立估算 |
3 | 如何描述估算 | ·敏捷用故事点为单位 ·敏捷估算是一个范围,如4000-5000,便于管理项目不确定性 |
4 | 何时进行估算 | ·项目中持续估算,最后分解成实际的成本或持续时间 |
5 | 谁来估算 | ·涉及项目工作的团队成员,因为成员对技术了解的最多 |
三种常见的估算方法:
3种常用的估算方法分别是:专家意见、类比、分解。每一种方法都可以独立使用,但是要想得到最佳的结果,应综合这3种方法
专家意见
基于专家意见的估算方法,当专家被问道这个故事有多大,专家根据自己的主观直觉给出估算,相对传统项目,这种方法在敏捷中不是那么有效,因为敏捷一般对有价值的故事进行估算,可能需要多种技能,这些技能往往需要多个人才能全部具备。但是专家意见评估的好处是时间短,如果能配合研发人员的主观经验判断做出估算往往也是准确的。
类比
使用类比进行估算就是把用户故事与一个或多个故事进行比较,如果这个故事是其他故事的两倍,就分配一个两倍的估算值。
用类比法估算时,把每个新的用户故事与那些已经估算过的任意估算进行比较,也就是下文说的亲和估算。
分解
分解是把一个用户故事或者特性分解为更小,更容易估算的部分,然后进行分别估算,而组合则相反把很小的故事组合成大的故事,一般组合发生在修复缺陷时。
通常一些用户故事需要的时间超过了一次迭代的周期,就要把它分解。可以按照用户故事所支持的数据类型分解;可以根据故事固有的操作分解;可以按照常用的CRUD操作(建立、读取、更新和删除)进行分解很常见;可以去除横切关注点(如安全处理、日志处理隔离出去可以使用户故事变小);忽略满足性能限制(性能可以形成独立的用户故事);可以根据优先级进行分解。
敏捷术语中“解聚”Disaggregation也是将史诗故事或大型故事分解成小型的用户故事。
估算的工具技术和知识技巧
接下来介绍估算的工具技术和知识技巧
宽带德尔菲(Delphi)
宽带德尔菲(Delphi)是基于团队的估算方法。
这种技巧要求一组专家匿名提交估算,所以没有人知道哪个估算属于谁。匿名估算是对原有估算的一种改进,因为它将“从众效应”和“光圈效应”(人们会被专家的观点或者高级别的人的观点吸引,而不是通过自己的价值观判断)的影响减到最小。
一个宽带估算会议从规划一个问题开始。相比在一个计划中估算整个项目,团队将项目或大问题分解为更多的可管理的块。团队创建了一个问题说明书、识别出假设和约束件,并且概述后续估算周期的过程。
举例说明,诸如人们是否应该在估算中忽略文档的时间,估算单位(比如,人周、小时、美元等),以及退出标准(比如,我们想用土20%的限度作为估算范围)这样的细节都应该包括在这个计划中,并且估算团队的开踢会议也应该被列入日程。
在他们开始建立估算之前,所有参与者应读说明书,提高和讨论问题的质量。每个参与者都会得到一个空白的纸张,他们可以在上面写下为不同任务所做的估算。然后引导员收集估算并且用一张图画出它们,但不需要确定那个估算来自于哪个估算者。流程图如下图1所示
图1宽带德尔菲流程图
宽带德尔菲会议的初始估算图如图2所示。
主持人通过估算会议收集和绘制每一个参与人的估算。每一个参与人估算的结果都会显示在X轴的第一轮的那条线上。初始的估算所覆盖的范围可能大得吓人。在讨论完初始估算后,所有的参与者都会修改他们的估算。主持人会收集这些估算并把它们贴在同样的图上,如“第二轮”的线上。而后几轮的分布会越来越接近。
图2宽带德尔菲三轮估算
宽带德尔菲法步骤如下:
1)确定需要收集意见并达成一致意见的主题,如确定项目、选择项目方案、制定项目计划、识别项目风险等。
2)挑选内部的专业人员,或者外部专业团体中具有专业知识或经过培训的个人组成专家小组,为了避免相互影响和干扰,专家们不进行会面,不进行讨论,彼此互不了解对方的想法。
3)由协调员采用书面问卷的方式,向每位专家征求对所要讨论的主题方面的意见和建议,并要求这些专家进行匿名分析后,分别将自己的意见以书面方式反馈给协调员。
4)协调员将不同专家的意见汇总,再将这些意见反馈给专家们,并要求专家们在此基础上进一步提出自己的判断或意见。
5)所有专家收到一份全组专家的集合分析意见后,再次进行匿名分析,提出赞成和反对的意见,再次将自己的意见反馈给协调员。
(6)协调员再次汇总各位专家第二次反馈意见,然后进行汇总,再将第二次汇总的结果发给各位专家,要求他们在此基础上再次做出判断,如此反复,直到所有专家的意见趋于一致。
计划扑克
敏捷团队最佳的估算方法是计划扑克,由JamesGrenning和MikeCohn进行推广的,计划扑克把专家意见、类比和分解结合到一种令人愉快的估算方法,可以产生快速可靠的估算。
宽带德尔菲技术通常用“计划扑克”来实施。这个技术的变化使用了一个快速的合作的过程,并结合了所有基本的宽带德尔菲元素。计划扑克通过卡片中的数字实现了估算。
这些数字代表故事点。“计划扑克”估算是Scrum和其他敏捷过程的核心实践。这个过程意味着要估算故事的大小,例如:要花费多长时间、要实施多少工作、花费是多少等。在Scrum中,需要估算团队的活动。
对于每一个故事,团队的每一个参与者都应该参与到估算的过程中。计划扑克(有时也叫Scrum扑克)能使团队’快速地进行估算、更加的准确和有意思。
现在想象一下团队的每一个成员都手持一副牌,如下图所示(采用斐波拉契数列的数字)
图3斐波拉契数列的数字序列
说明:斐波拉契数列由整数构成,每一个数都等于前两个数的和,1、2、3、5、8、13、21、34、55,以此类推。卡片0意味着“这个故事已经做完了”或者“这个故事几乎什么都没有仅仅需几分钟就能完成;?代表不知道,这时要请PO讲解;咖啡杯代表我很累,需要休息。
计划扑克估算会议步骤:
1)一名调停人,主持会议,不参与估算。
2)产品负责人/管理人员对用户故事作概述,并回答开发者提出的澄清问题,往往产品负责人不参与投票。
3)当被问道“这个故事需要花费多长时间?”,每一位估算师抽取一张扑克卡片来估算工作量。
4)每人抽取一张卡片后,同时将他们的卡片翻转,
5)持高和低估算的估算师各有一个机会作立场辩护。
6)达成共识前,不断重复以上流程。持有用户故事的开发者往往拥有较高可信度。
一般情况下,估算的轮数不超过三轮,如果在第三轮的时候,数值还不能收敛,则可能是团队成员对故事还不够清晰,需要产品负责人的进一步澄清,所以为了不耽误估算的时间,可以将其放入下一次的估算中。每次估算会议的总体时长不超过2个小时,否则大家会有疲惫感。