1.3 结果优先于产出:选择衡量什么
概述与动机
每一个工程指标都落入三个类别之一,而混淆它们是本书中第二常见的失败模式,仅次于完全无视古德哈特定律。输入指标衡量投入的努力:工程师工时、部署的资金、已承诺的故事点。产出指标衡量系统产出了什么:已交付的功能、已合并的拉取请求、已关闭的工单。结果指标衡量真正重要的那种变化:保住的营收、避免的事故、为用户节省的时间。团队倾向于选择输入和产出,因为它们容易计数,且完全在团队的掌控之内。而价值几乎总是存在于结果之中,结果出现得更慢、衡量起来更嘈杂、也更难归因到任何一个团队的工作上。
本主题的主旨,是刻意抵御这种引力。一个完全由输入和产出构建起来的仪表盘,可以显得异常忙碌,却完全没有产生真正的价值:一个团队可以交付几十个没人使用的功能、关闭上百个一周后又重开的工单,或者命中每一个故事点估算,而产品真正的结果(留存率、满意度、营收)却保持平平甚至下滑。在一个只有产出的仪表盘上,这种忙碌根本不会显现为问题,因为这类仪表盘从设计上就看不见它。
在企业与政府规模上,这种区分决定了领导层能否分辨一个高产的团队与一个只是活跃的团队之间的差别。一个事业部可以连续多年发布出色的产出数字(交付的功能、结束的冲刺),而资助方或立法机构真正在意的那个结果(保住的营收、缩短的公民等待时间)却在底下悄然流失。“我们交付了路线图”和”路线图让事情变得更好了”并不是同一个断言,只有一套以结果为权重的指标集,才能把这两者区分开来。
核心原则
- 输入与产出是代理;结果才是那件事本身。 只要能触及结果,就把你的指标集权重放在结果上。
- 易于衡量本身不构成衡量的理由。 最容易计数的东西通常是输入和产出,不是因为它们最重要,而是因为在机制上最容易捕捉。
- 越靠近结果,归因就越难。 要有意识地接受这份权衡,而不要因为结果更难归因就退回到产出。
- 团队能够掌控自己的输入与产出,但对结果只能施加影响。 相应地设计问责机制:让团队为其真正能够掌控的事物负责,把结果作为共享的、跨团队的信号来跟踪。
- 一个由少数驱动因素支撑的单一北极星结果,胜过一整墙的产出瓷砖。 覆盖面应当来自结构,而不是来自仪表盘的堆量。
建议
在采纳任何指标之前先对其分类
对任何候选指标,问一问它属于三个类别中的哪一个。“每周合并的拉取请求数”是一个产出。“合并后一周内导致生产事故的拉取请求占比”更接近于一个结果,因为它衡量的是一种后果,而不是数量。这种分类只需三十秒,而且在任何指标被加入团队或组织仪表盘之前都应当强制进行,因为这是察觉仪表盘正被容易计数的产出悄悄填满、却自以为在衡量价值的最快方式。
在单一结果之下构建指标树
不要用一份扁平的清单来跟踪。把指标组织成一棵指标树(有时也称为KPI树):一个顶层的结果指标,逐层分解为在因果上或数学上驱动它的各个因素,一路向下,直到各个团队实际拥有的运营层面产出与输入衡量。当顶层结果发生变动时,这棵树会告诉你该去调查哪一个更低层的驱动因素,把”这个数字下降了”变成”流水线中这个具体环节是原因”。凡是你所在领域能够支持的地方,就在顶端命名一个单一的北极星指标:最能捕捉所交付价值的那个衡量,比如平台团队的部署频率与变更失败率配对,或者产品团队某核心功能的周活跃使用量。
在评审中而不只是在仪表盘上,让权重偏向结果
一棵指标树好不好,取决于它在实践中被如何使用。在冲刺评审、季度业务评审和领导层通报中,要以结果层面的数字打头,把下面的产出与输入指标仅用来解释变动,而不是用来替代结果。一个只报告”这个冲刺我们关闭了40个工单”、却没有任何结果背景的团队,什么也没告诉你这项工作是否重要;而一个报告”逃逸缺陷下降了30%,这是驱动这一变化的测试投入”的团队,则告诉了你一些真实的东西。
接受结果指标反馈更慢,并为其配对更快的领先指标
结果指标往往是滞后的:它们要等足够长的时间过去、确认无误之后,才证实一个结果。这种滞后是一项真实的代价,因为它延迟了学习。为每一个结果指标至少配对一个领先指标(一个更早移动、能够预测该结果的指标)这样团队就能在那个缓慢而权威的数字最终落地之前先行调整方向。部署频率是交付结果的领先指标;不断上升的缺陷逃逸趋势是即将到来的可靠性结果的领先指标。用领先指标来及早行动,用滞后的结果指标来确认自己是对的。
权衡取舍:利与弊
| 类别 | 优点 | 缺点 |
|---|---|---|
| 输入指标 | 完全在团队掌控之内,容易计数 | 与实际价值的联系最弱;容易通过堆量操纵 |
| 产出指标 | 容易计数,归属清晰,反馈快 | 奖励活动而非影响;可能在价值下降时仍然上升 |
| 结果指标 | 直接反映重要之事;难以被廉价操纵 | 缓慢、嘈杂,且难以归因到单一团队 |
| 指标树结构 | 把日常工作与战略价值连接起来;有助于诊断 | 需要真正的分析工作才能正确构建与维护 |
核心张力是可控性与价值之间的张力。输入和产出完全在团队掌控之内,这使人倾向于据此问责团队;结果承载着价值,却只部分地受任何单一团队的影响,因为即便是一个优秀的功能,也可能因完全在工程之外的原因而失败。解决之道是:让团队为其完全掌控的输入与产出负责,同时把结果作为整个组织共同拥有的共享信号来跟踪,通过一棵明确的指标树把二者连接起来,而不是把”我们完成了工作”与”这有没有帮助”之间留作一道无人解释的空白。
与团队讨论的问题
我们当前仪表盘上的每一个指标,是输入、产出还是结果,三者之间的平衡讲述的是一个诚实的故事吗? 经过诚实审计,大多数仪表盘最终都发现几乎全是输入和产出,因为那正是工具默认会报告的东西。为每一块瓷砖分类,并统计其分布;一个完全没有结果瓷砖的仪表盘,衡量的是活动,却把它呈现为绩效。
我们唯一的北极星结果指标是什么,我们能否通过一棵指标树,把它一路追溯到每个团队真正拥有的东西? 没有这种连接结构,一个变动的顶线数字就无法给出任何线索告诉你该看哪里,团队也看不出自己的日常产出指标与任何重要之事之间的关联。拿出你现在的顶线指标(如果有的话),当场尝试构建这棵树。
在哪些地方,我们在为一个团队只能施加影响、而无法掌控的结果问责它? 这是常见的挫败感与暗中操纵的来源,因为一个因受自身控制之外的因素塑造的结果而受罚的团队,有充分的动机去自我保护,而不是去改善真正的系统。找出这些错配之处,然后要么调整问责方式,要么补上缺失的杠杆。
对我们每一个滞后的结果指标而言,我们有什么领先指标,它能提前多久预测这些结果? 一套纯粹滞后的指标集,意味着你只有在为时已晚、无法廉价改变方向之后,才会发现自己错了。拿出你的结果指标,检查每一个是否都有一个真正的领先指标,还是你在报告周期之间在盲飞。
我们在评审和回顾中所庆祝的内容,有多少是产出(“我们交付了X”)、多少是结果(“X让Y变得更好了”)? 团队用来庆祝工作的语言,塑造着他们长期优化的方向,往往比仪表盘影响得更深。听一个冲刺周期里你自己的评审会议,诚实地统计这个比例。
如果我们的顶级产出指标一夜之间翻倍,我们的结果指标一定会改善,还是可能反而恶化? 这个思想实验能揪出那些已经与其本应服务的结果脱节、甚至公然对立的产出指标,例如功能数量的增长速度超过其带来的采用率增长速度,反而加重了维护负担。
行业视角
初创公司。 选定一个结果,通常是衡量客户是否持续获得价值的代理,例如周留存率或激活率,从第一天起就把它当作你的北极星。抵御那种被拉向像累计功能数这类产出型虚荣指标的诱惑,这类指标虽然很适合向投资人汇报,却完全说明不了产品是否真的对任何人有用。
小型企业。 你现有的工具(销售点系统、支持台、分析平台)通常已经报告了一个近似结果的数字,例如复购率、工单重开率。使用这些数字,而不要构建你没有能力维护的定制结果埋点,也要抵御仅仅因为原始活动计数是默认视图就退回去用它的诱惑。
企业。 主导性的失败模式是一个由若干团队组成的投资组合,每个团队各自优化局部产出指标,这些指标加总起来却不构成任何连贯的组织结果。要刻意构建指标树,在各业务单元之间统一结果定义,并要求每一项重大计划在获得资助之前,不仅要说明其产出计划,还要陈述其结果假设。
政府。 监督机构与公众越来越能分辨”交付了工作说明书”与”改善了结果”之间的区别,一份只谈产出的报告恰恰会招来这种审视。凡是法律和实践上可行之处,都把成功定义为面向公民的结果(等待时间、出错率、满意度),并且在只有产出指标可用时明确说明原因。
案例
企业。 一家物流公司的工程事业部连续两年报告”每季度交付的功能数”持续上升,而公司核心的客户满意度分数却在悄悄走平。一位新任工程副总裁构建了一棵以准时交付率(真正的业务结果)为根的指标树,逐层分解为枢纽滞留时间和最后一公里成功率,一直向下延伸到团队层面的工程产出。在一个报告周期之内,情况就变得清楚:好几个高产出的团队,正在交付对北极星指标没有任何可衡量影响的领域的功能,投资随之转向那棵树所显示的真正重要的驱动因素。
政府。 一家国家卫生服务机构的数字团队,就一项多年期的病历现代化项目,一直报告”针对工作说明书交付的模块数”。一个监督委员会提出了一个不同的问题:临床医生花在行政数据录入上的时间是否减少了。该团队补建了一个结果指标(每次患者接诊的行政时间中位分钟数)并发现早期模块由于工作流摩擦,实际上增加了这段时间,尽管每一个交付里程碑都达标了。后续模块被直接围绕这个结果指标重新设计,该项目的公开报告也从一份交付清单,转变为一份前后结果对比。
商业理由:动机、投资回报与总拥有成本
以结果为权重的回报是避免浪费:一个能够近乎实时看到某条产出流未能带动任何结果的组织,可以在花掉整整一个预算周期、付出惨痛代价才发现这一点之前,就重新引导这笔投资。大型工程组织中主导性的隐性成本,往往不是投资不足,而是那些执行得很好、却本不该获得资助的工作,因为它们与任何真实的结果都脱了节,而一个只有产出的仪表盘完全看不见这种脱节。
结果衡量的总拥有成本高于产出衡量,因为结果在定义、归因和埋点上都真正更难,构建一棵真实的指标树需要刻意的分析投入,而不能只是接受工具默认导出的东西。对任何规模不算太小的计划而言,这份成本都值得付出,因为另一种选择(事后才发现自信满满地报告了一整年的产出并未产生任何真实价值)所付出的代价,远高于事前的这份分析投入。
反模式与陷阱
- 一个完全由产出瓷砖构成的仪表盘: 衡量的是活动,却把它呈现为绩效。
- 让一个团队为其无法掌控的结果全权负责: 滋生挫败感,并招致为自我保护而进行的操纵。
- 滞后结果没有对应的领先指标: 团队只有在为时已晚、代价高昂之后才知道自己错了。
- 在评审中庆祝产出话语,却声称重视结果: 所声明的优先级与实际经历到的激励相互背离,而实际经历到的激励会胜出。
- 一份没有树状结构的扁平指标清单: 一个变动的顶线数字给不出任何该看哪里的线索。
- 把结果衡量视为太难而放弃尝试: 会让组织永久性地退回到容易计数的输入和产出。
成熟度模型
- 第一级,启动: 指标几乎全是输入和产出;没有人能说出组织的结果指标是什么,也无法追溯到它们。
- 第二级,发展: 部分团队已非正式地识别出结果指标,但没有共享的指标树,也没有一致的领先指标。
- 第三级,标准化: 一棵文档化的指标树,把一个共享的北极星结果一路连接到团队自有的产出,并在整个组织中一致地应用。
- 第四级,管理: 领先与滞后指标都被跟踪并一同审查;团队仅为其能掌控之事负责,结果衡量得到积极的资源投入。
- 第五级,协奏: 结果衡量被直接整合进资助与优先级决策之中;组织会在一整个预算周期结束之前,就例行地把投资从高产出、低结果的工作中重新引导出来。
讨论思路
- 说出我们组织唯一最重要的结果指标。大家能就此达成一致吗?
- 我们当前在产出上最大的投资,有哪一项我们尚无法将其追溯到任何结果?
- 在哪些地方,我们的问责结构因一个团队无法掌控的结果而惩罚了它?
- 如果我们删掉每一块纯产出瓷砖,我们的仪表盘会是什么样子?
- 我们目前要花多久,才能得知一个已交付的功能是否真的有帮助?
要点回顾
- 把每一个指标分类为输入、产出或结果,并刻意让你的指标集权重偏向结果。
- 在一个单一的北极星指标之下构建一棵指标树,让一个变动的顶线数字能指向一个原因。
- 让团队为其能够掌控之事(输入、产出)负责;把结果作为整个组织共同施加影响的共享信号来跟踪。
- 为每一个滞后的结果指标配对一个更快的领先指标,让你能在那个缓慢的数字最终证实你错了之前先行调整方向。
- 一个只有产出的仪表盘衡量的是活动,却称之为绩效;把这当作一个警示信号,而不是一种安慰。
参考文献与延伸阅读
- Accelerate: The Science of Lean Software and DevOps,Nicole Forsgren、Jez Humble、Gene Kim著(基于结果的交付衡量)。
- Lean Analytics,Alistair Croll与Benjamin Yoskovitz著(“唯一重要的指标”以及初创企业情境下输入/产出/结果的区分)。
- Measure What Matters,John Doerr著(面向结果的目标设定,以及OKR框架对结果而非活动的强调)。
- The Lean Startup,Eric Ries著(可行动指标与虚荣指标之别,以及结果验证)。
- Key Performance Indicators,David Parmenter著(在一个北极星衡量之下构建KPI或指标树结构)。