1.0 第一部分导论:衡量的基础
在本书说出任何一个具体指标之前,必须先回答一个更难的问题:衡量究竟是为了什么?凡是搭建过仪表盘的团队,迟早都会看到这样的情形:某个数字在不断改善,而它本应代表的那件事却在变差。这不是工具的问题,而是跳过了本部分所涉及基础工作的必然后果:为什么要衡量、一旦人们知道某个数字正被关注它会发生什么变化、如何让结果的权重高于活动、谁拥有某个数字及其定义、数据究竟从何而来,以及如何在不自欺的前提下解读一个带噪声的信号。
对大团队而言,这些基础不再是可有可无的。单个团队或许还能靠一个由经理每周瞥一眼的临时数字将就过去。但一个拥有数百名工程师、几十个仪表盘、并向上级汇报的领导团队所在的组织却做不到。在那样的规模上,一个无人负责或定义不清的指标,误导的不只是一个团队,还会误导所有在下游信任这个数字、却从未核实其构建方式的人;而一旦行为已经适应了如何操纵它,再想扭转局面就代价高昂。
企业和政府机构对此感受尤为深刻,因为它们的指标常常带来超出制造者本身的后果:预算决策、公开绩效报告、审计发现、供应商合同。一个看似只是内部工程便利工具的指标,可能悄然变成决策者不加质疑就采信的关键输入,而这些决策者从未见过产生这个数字的流程。把基础打好,正是让这份分量变得可以承受的关键。
本部分各主题
- 1.1 为何衡量软件工程: 衡量本身的理由何在、它应当达成什么目标,以及为学习而衡量与为评判而衡量之间的区别。
- 1.2 古德哈特定律与指标心理学: 贯穿本书其余每个主题的核心思想:一旦某项衡量变成目标,它就不再是好的衡量,以及一旦人们知道自己正被关注,几乎必然导致操纵行为的心理机制。
- 1.3 结果优先于产出:选择衡量什么: 如何借助经典的输入/产出/结果区分与北极星模式,让一套指标的权重偏向结果而非活动。
- 1.4 指标治理与所有权: 由谁决定衡量什么、谁拥有某个定义,以及一份指标章程如何防止日益膨胀的仪表盘失去问责。
- 1.5 数据来源与埋点: 工程指标究竟从何而来、埋点与自我报告之间的区别,以及那些在无人察觉时悄然使仪表盘失效的数据质量问题。
- 1.6 面向工程指标的统计素养: 一个团队要诚实解读指标所需的最基本统计判断力:百分位数与平均值之别、样本量、均值回归,以及混杂变量。
这些主题如何相互关联
这六个主题按严格的顺序层层递进。主题 1.1 追问为何要衡量,这一点之所以重要,是因为尚未回答这个问题的团队只会收集一堆无人据以行动的数字。主题 1.2 是全书其余部分赖以转动的枢纽:一旦你接受任何衡量都可能变成目标并遭到操纵,之后每个主题的建议都源于针对这一风险所做的设计。主题 1.3 把这份警觉转化为一条积极的规则:把权重放在结果上,因为结果是最难被廉价操纵的一类。主题 1.4 把治理落到实处,主题 1.5 把数据落到实处,而主题 1.6 赋予你统计判断力,让你在治理与埋点都已到位之后,依然不被噪声愚弄。
下游的一切都依赖于本部分。第2部分的流动指标与DORA指标,以及第3部分的SPACE框架,实际上都是主题 1.2 和主题 1.3 所提出的结果加权与护栏配对原则的实例演练。主题 8.1 的仪表盘设计指南,也预设了主题 1.4 的治理模型。而贯穿本书每个主题结尾的成熟度模型,其五个层级之下,本质上正是本部分所引入的这门学科本身的成熟度模型:真心实意地衡量,并检验自己的工作。