他们请来了马丁,咨询马丁的看法。马丁告诉大家,他已经看了菜多多的1.0的计划。也看到了大家预估的工作量,确实是时间紧、任务重。但大家的确应该建立有效的测量指标,既要有关键的进度指标,也要有一些过程的度量指标,具体可以讨论一下应该测量哪些内容。这要根据项目的目标、预期成果和项目环境共同确定。
测量指标里要包含关键绩效指标,其实就是项目功能模块的建设进度。我们通过这些指标,不但可以测量出项目可交付物的进展,还可以预判出和项目的变化和趋势。
陈恭说:“关键绩效指标听起来有点拗口,好像不太容易理解。”
马丁笑着说:“其实就是项目的KPI。在我们研发交付阶段,就是项目功能模块的建设进度。”
陈恭回答:“我明白了。我们计划和里程碑的达成情况就是项目的KPI。”
马丁接着说:“既然是KPI,一定要能够评估出是否达成了,达成得怎么样。所以,这个指标一定要能够有效度量的。这个指标一定要符合smart原则。”
(1)具体的(Specific)。针对要测量的内容,测量指标是具体的。示例包括缺陷数量、已修复的缺陷或修复缺陷平均花费的时间。
(2)有意义的(Meaningful)。测量指标应与商业论证、基准或需求相关。测量未达到目标或未提高绩效的产品属性或者项目绩效并非有效。
(3)可实现的(Achievable)。在人员、技术和环境既定的情况下,目标是可以实现的。
(4)具有相关性(Relevant)。测量指标应该具有相关性。测量指标提供的信息应能带来价值,并考虑具有实际价值的信息。
(5)具有及时性(Timely)。马丁继续说,测量不是目的,我们需要使用这些测量指标使项目团队能够及时发现问题、作出决策并采取有效行动。
我来给大家介绍下Scrum的三大支柱:
Scrum是一个轻量的框架,它通过提供针对复杂问题的自适应解决方案来帮助人们、团队和组织创造价值。
Scrum基于经验主义和精益思维。 经验主义主张知识源自实际经验,以及根据当前观察到的事物作出的判断所获得。精益思维减少浪费,专注根本。
陈恭说:“我知道一些,Scrum的活动包括计划会、站会、Review会、回顾会,好像要开很多会。”
马丁说:“我就不展开讲了,我们用的时候你自然会有体会。今天我们提到要进行测量,我用Scrum的三大支柱来介绍下测量的意义。”
Scrum采纳一种迭代和增量的方法来优化对未来的预测性并控制风险。 你刚才提到了几个会,这些都是Scrum 的正式事件,这些事件之所以起作用,是因为它们实现了基于经验主义的Scrum的三个支柱:透明、检视和适应。如图4-6所示。
图4-6 Scrum
透明:涌现的过程和工作必须对执行工作的人员和接受工作的人员都是可见的,透明使检视成为可能。没有透明的检视会产生误导和浪费。
检视:Scrum工件和实现商定目标的进展必须经常地和勤勉地检视,以便发现潜在的不良的差异或问题。
适应:如果过程的任何方面超出可接受的范围或所得的产品不可接受,就必须对当下的过程或过程处理的内容加以调整。
透明告诉我们,怎样应该透明公正地进行测量;检视告诉我们,测量是为了检视;而适应则是要利用测量目标不断优化我们的绩效。
马丁列举了一些常用的测量迭代绩效的指标,团队可以观察每个迭代的绩效,用来发发现问题和确认改进情况。如表4-6所示。
表4-6 测量迭代绩效的指标
维度 | 指标项 | 指标定义 |
迭代结果指标 | 需求前置时间 | 需求提出到上线发布的周期 |
迭代结果指标 | 开发前置时间 | 需求进入排期开发动工到上线发布的周期 |
迭代结果指标 | 发布频率 | 单位时间内的发布次数 |
迭代结果指标 | 发布前置时间 | 提交一行代码到上线发布的时长 |
迭代结果指标 | 交付吞吐量 | 单位时间内处理需求点数 |
迭代结果指标 | 线上缺陷密度 | 单位时间内需求缺陷比例(单位需求缺陷数量) |
迭代结果指标 | 缺陷分布 | 严重致命等级缺陷占比 |
迭代结果指标 | 故障修复时长 | 有效缺陷提出到修复的周期 |
通过一段时间的数据积累,他们汇总了5个迭代数据,从数据可以看出,团队不断进行改进,稳步提升团队绩效。如表4-7所示。
表4-7 5个迭代数据
指标项 | Sprint1 | Sprint2 | Sprint3 | Sprint4 | Sprint5 |
需求前置时间(工作日) | 15 | 15 | 12 | 12 | 12 |
开发前置时间(工作日) | 10 | 10 | 10 | 7.5 | 7.5 |
发布频率 | 1 | 1 | 2 | 2 | 3 |
发布前置时间(工作日) | 9 | 8 | 5 | 4 | 4 |
交付吞吐量 | 21 | 21 | 25 | 25 | 25 |
线上缺陷密度 | 0 | 0 | 0.08 | 0.08 | 0.08 |
缺陷分布 | 0 | 0 | 0 | 0 | 0 |
故障修复时长 | 0.5 | 0.5 | 0.8 | 0.8 | 0.7 |