1.敏捷挣值管理
挣值(Earned Value,EV)也称为已完成工作预算成本(Budgeted Cost for Work Performed,BCWP),表示已完成工作量的预算成本,计算公式如下:挣值=任务预算成本×已经完成工作的百分比。
由于敏捷中计划经常发生变化,挣值管理(Earned Value Management,EVM)反映的是目前项目的进度和成本的情况,并不能反映出项目会交付的整体价值。如图2-10所示,在敏捷项目中,常用双S曲线图监控项目的进度和成本。左边的纵坐标代表范围(故事点),右边的纵坐标代表支出,横轴为日期。这样可以将传统的EVM指标,如进度绩效指数(Schedule Performance Index,SPI)和成本绩效指数(Cost Performance Index,CPI)转化为敏捷术语,并进行跟进。
图2-10 敏捷挣值管理双S曲线
2.迭代燃尽图
迭代燃尽图(Burn Down Chart)用来追踪迭代中的剩余工作量,通常以小时或天作为计量单位。迭代燃尽图基于迭代计划中的任务拆解情况,分析实际剩余工作与理想剩余工作的偏差,有针对性地采取行动,如图2-11所示。
也可以用故事点或者故事数作为燃尽图的度量单位,不过,故事点一般而言颗粒度比较大,虽然每天都有进展,但完成需要较长时间,这样做出来的燃尽图就会失真。
图2-11 迭代燃尽图
3.发布燃尽图
针对一个项目,可以计算每个迭代结束后,整体需求列表内还剩余的所有故事点数,这样就可以生成发布燃尽图(Release Burn Down Chart),如图2-12所示。
图2-12 发布燃尽图
也可以把柱状图的顶点进行连接,这样就会形成一个趋势,预测还需要多少次迭代才能完成全部待办事项。
在敏捷中,有时需求是不断涌现的,会不断加入整体待办事项列表。针对这种情况,可以对燃尽图进行修正,形成如图2-13所示的形式。直线2预测未来需求增加的趋势,直线1预测故事点烧掉的趋势,两条线的结合点就是未来最可能的完成点。其中,带括号的数字代表尚未发生的迭代。
图2-13 修正的发布燃尽图
4.团队速率
团队速率(Velocity)是针对基于迭代的团队而言的,将每个迭代真正完成的故事点(符合完成的定义,DoD)累加起来,作为团队交付速度的一个预测手段。通常可以采用昨日天气法(取上次迭代的数据为准,如图2-14中的36)、历史平均法(取过去8个迭代的平均值,如图2-14中的33)、历史最差平均法(以历史发生的最差3次结果的平均值,如图2-14中的28)。
图2-14 团队速率计算方式
资料来源:Mike Cohn培训材料。
有了团队速率,可以计算出整体待办事项多久能够做完。例如,速率是20点/迭代,每个迭代2周,整体待办事项有250点,那么完成整体待办事项所需的迭代应该是250/20=12.5,约为13个迭代;整体需要时间是13×2=26(周)。
反过来,如果想了解一个季度能够完成哪些需求,则可以按如下方式推导:一个季度是12周,可以完成6个迭代,那么可以完成的故事点约为6×20=120(点)。在整体待办事项中,从上往下120点,就是大概可以完成的需求量。
5.发布燃起图
发布燃起图是将已经完成的工作量累加,与整体待办事项的总工作量进行对比,看预计还要多久能够完成整个项目。可以不用上述速率计算的方式,通过图表进行预测,可以按照日期统计,也可以按照迭代来统计。按照日期统计的发布燃起图如图2-15所示。
图2-15 按照日期统计的发布燃起图
6.累积流图
累积流图(Cumulative Flow Diagram,CFD)与前文提到的发布燃起图相似,每条线都是交付过程中所跟踪的工作项计数的累加,因此称为“累积”。图2-16所示为累积流图,横坐标是时间,纵坐标是工作项数量。若干条线分别对应了流经该状态的所有工作项数量。
图2-16 累积流图
在累积流图中,有3个指标很关键,分别是平均前置时间、平均在制品、平均交付速率(或称吞吐率,Throughput)。根据利特尔法则(Little's Law),可得
平均交付速率=平均在制品/平均前置时间
交付速率即单位时间可完成任务的比率,可以体现一个团队的处理能力;在制品是团队目前可同时处理的任务量;前置时间是指产出的单个任务从纳入开发到交付的整个流程所需的时间。
可以看出,前置时间和在制品的数量是成正比的,交付速率与前置时间是成反比的。在交付的过程中希望尽量缩小单个任务的前置时间,那么就可以通过提高平均交付速率或减少平均在制品两种办法来实现。
在敏捷中,想提高平均交付速率指标,有一种办法就是在短时间内尽快提高团队在单次迭代开发过程中对在制品的处理产能或生产率,但这是很难一蹴而就的,很难在短时间内迅速提高,因此,比较容易的方法是在一次迭代中减少在制品的数量。
“无论整体的敏捷方法是什么,团队越是限制其在制品,团队成员就越有可能通过合作来加快整个团队的工作。在成功的敏捷团队中,团队成员在工作中以各种方式开展合作(如结对工作、集体工作、群体编程),因而,他们会协同工作,而不会落入迷你瀑布的陷阱中。”
——PMI《敏捷实践指南》
7.风险暴露指数
“风险暴露指数”的计算逻辑如下:
(1)根据风险发生的可能性从1到3进行分级,其中1为低,3为高。
(2)根据每个风险对整个项目的可能影响进行分级,同样使用1到3的等级,其中1为低,3为高。
(3)将每个可能性分数乘以其对应的影响分数,由此得出的数字是风险暴露指数——风险暴露得如何。
对于风险暴露指数为6或9的所有风险,确定可以降低或消除风险的举措。这些举措需要添加到工作分解结构(WBS)中。
8.风险燃尽图
风险燃尽图的概念主要来自Mike Cohn,生成逻辑如下:
(1)针对每个风险项,要给出风险发生的概率(0~100%),以及风险发生时对项目工期的影响(以天计)。
(2)用发生概率乘以可能影响的工期,得到一个风险量化值,如表2-2所示。
表2-2 风险量化值计算逻辑
(3)把所有风险的量化值累加,得到整个项目的风险量化值。
(4)按照燃尽图的画法,每个迭代更新一次,如图2-17所示。
图2-17 风险燃尽图
9.任务板/看板
在交付过程中,为了更好地实现进度、问题、障碍等一切事项的透明可视化,可以通过任务板的形式进行跟踪。任务板不需要组织内统一,可以根据各项目自身的需要,决定需要展示的状态。一般而言,任务板可以采用如图2-18所示的形式。
图2-18 任务板示例
如图2-19所示,除了任务板,还可以采用看板对在制品进行限制及强化各状态的准入准出条件(完成的定义)等。
图2-19 看板示例