1.4 展示和理解

那么怎样才能改变范式呢?你需要持续地留意旧范式中的异常和失效之处;对于新的范式,需要持之以恒地、自信而大声地进行宣讲并付出实际行动。

—Donella Meadows,《系统之美》

每当我部署这四个关键指标时,我通常会从最小可行仪表板(Minimal Viable Dashboard,MVD)[14]开始,它名字叫得响,但实际上是一个wiki页面,包含以下内容:

· 四个关键指标的当前计算值;

· 每个指标的定义,以及计算它们的时间段;

· 历史数据。

我还标记了数据源,以便每个人都可以参与其中。

1.4.1 目标受众

就像所有的统计数据一样,指标也在讲述某些故事,而故事要有受众。那么,这四个关键指标的目标受众是谁?首先是软件交付团队,如果他们希望看到指标得以改善,就必须做出实际的变更。

因此,要确保无论选择在何处以何种方式进行展示,它都需要处于这些个人和团队最容易访问的地方。“容易”非常重要。受众需要能够非常容易地看到这些指标,并向下钻取,找出更多他们拥有的特定服务的数据点。

这四个关键指标也有其他受众,但他们都是次要的。次要受众可能会是高级管理人员或执行管理人员。他们可以看这些指标,但指标需要被聚合起来,并且是只读的。如果执行管理人员想了解更多细节,那么他们就会到团队那里去获取,而这正是你想看到的。

理想情况下,一旦MVD设置好了,就可以开始自动化收集和计算的工作了。在我写这部分内容的时候有很多选择。也许你最终会使用Google的Four Keys(https://oreil.ly/BPRaw)、Thoughtworks的Metrik(https://oreil.ly/1EDTb),或者各种平台的扩展,比如Azure DevOps(https://oreil.ly/vMSBR)。它们中的任何一个我都没用过,不过我确信它们都能实现我们的目标,我将分享我手动制作的经验,希望它能帮助你评估到底想使用现成的东西还是花时间和精力去定制。

1.4.2 可视化

我花了些功夫自制了我所用过的特性最齐全的仪表板。它是用微软PowerBI构建的(因为客户端使用了Azure DevOps)。在日期和时间的选择上进行了一番努力之后,我们捕获了原始数据,进行了计算,并着手创建了图表和其他可视化展示元素。

部署频率

对于该数据,我们选择使用柱状图(见图1-7),横轴为日期,纵轴为部署数。每个条柱都代表当日部署总数,并且我们将关键统计数据拉入汇总图中。

图1-7:部署频率,右下角的方框表示达到了“DORA(DevOps Research and Assessment)精英”级别的软件交付表现

每天的平均部署数就是部署频率关键指标,并且我们在关键指标中突出显示了Accelerate软件交付表现等级中的“精英”[15]。为了更加清楚,我们显示了当天的部署数和图表展示区间(31天)的部署总数。最后,我们将平均值、95分位值和整体数据趋势绘制为虚线。

变更前置时间

图1-8所示的柱状图展示了变更前置时间数据,横轴上还是日期,而现在纵轴的条柱显示了给定日期的平均前置时间。

图1-8:变更前置时间,右下角的方框表示达到了Accelerate评级量表上软件交付表现的“DORA精英”级别

和前面一样,我们突出显示了该关键指标,即图表展示区间内的平均前置时间,并突出显示为“精英”级别[16]。我们还发现,突出显示最长前置时间很有用(见左下角的方框)[17]

后来我们发现,该问题一直在被追问:“那天我们做了很多次部署吗?”因此,我们没有添加更多的趋势线,而是将部署数(浅灰色阴影)与前置时间绘制在了一起。

变更失败率

图1-9展示了变更失败率的柱状图,但是这个指标表现得非常不同。从纵轴上可以看出,在给定的24小时内,通常不会发生变更失败或只有一次失败[18]。因此,当出现问题时会非常明显。

图1-9:变更失败率,右下角的方框表示达到了Accelerate评级量表上软件交付表现的“DORA精英”级别

图1-9中包含了所需上下文。一并绘制出部署数可以让我们快速回答该问题:“这可能是因为当天有很多次部署活动吗?”

最后,与前面类似,图的底部给出了关键指标:变更故障数占图表展示区间内部署总数的百分比。与此同时,还有一些其他重要的统计数据:展示区间内正在发生的故障数和部署总数。

服务恢复时间

对于最后一个指标(即服务恢复时间)的展示,我们花了大量时间来适应,然而随着我们对部署频率和前置时间指标理解的不断加深,以及这两个指标的值趋于稳定,服务恢复时间指标就成为我们的主要关注点[19]。同样,我们通过时间序列柱状图来展示(见图1-10),但是其时间尺度更长(120天,为了引入更多上下文),这样就更容易通过比较来看出我们是如何基于这个数据点少得多的指标来进行改进的。同样,我们将变更前置时间共同绘制出来,以提供一些额外信息。

最后,与前面类似,图的右下角给出了关键指标:给定展示区间内所有故障恢复时间的中位数。与此相伴的是其他关键统计数据:展示区间内正在发生的故障数和已恢复故障的总数。

1.4.3 首页

至此还没结束。我们的PowerBI报告还包含一个“四个关键指标”的首页,其中包括来自每个单独统计页面的关键指标数字,以及部署频率和前置时间的图表。它的目标是让人们实时、快速、准确地了解统计数据。随着关注点的改变,首页可能会推出其他图表。

正如我所建议的,我们现在可以释放这四个关键指标的真正力量。如果想从中获得真正的好处,那么让团队能够访问这些指标,并确保他们理解这些指标以及支撑它们的模型和系统是至关重要的。这使团队能够讨论、理解、拥有和改进所交付的软件。

图1-10:服务恢复时间,左下角的方框表示正在发生中的故障数是0(这不属于DORA指标,但了解它很重要),右下角的方框表示软件交付表现为“DORA高”级别