首页/开发/代码质量与评审速查/Goodhart 定律:指标一考核就失真
技术债与度量63 条

Goodhart 定律:指标一考核就失真

「当指标成为目标,它就不再是好指标」(Goodhart 定律,Strathern 的通俗转述常用于软件工程):把度量与奖惩绑定时,人们优化数字而非改善本质;度量应面向系统改进与讨论,避免用于个人考核。

Goodhart 定律是什么

当指标成为目标,它就不再是好指标——这是 Goodhart 定律的通俗表述,软件工程里常被引用来解释度量失真。把度量与奖惩绑定,人会优化数字而不是改善本质:覆盖率靠空壳测试刷高、缺陷数靠改分类降低、提交数靠拆碎改造。度量应服务于系统改进与对话。

基本信息

通俗表述指标一旦成为目标就失效
典型表现刷覆盖率、关闭门禁问题、拆小改动凑数量
对策方向组合指标加定性复核
使用边界用于改进对话,不用于个人考核
观察方式看趋势与结构,而不是单个数字

典型使用场景

  • 团队引入度量时先明确它不用于考核
  • 指标突然变好但用户反馈没变,需要复核
  • 设计指标体系时同时选择反向指标
  • 评审中识别为达标而做的变形动作
  • 汇报时把指标与真实场景证据放在一起

失真实例

失真实例
指标:关闭的缺陷数
行为:把缺陷标记为非缺陷,或拆成多个小条目
结果:数字改善,质量未变

# 对策:同时观察反向指标
# 缺陷数配上线事故数与用户反馈,一起看才不易失真

常见对策

问题对策说明
单一指标被优化组合指标用互为制约的指标配对
数字与体验不符定性复核抽样看真实改动与用户反馈
团队行为变形去掉考核绑定明确只用于改进讨论
指标没人信公开口径让数据来源与计算方式可见
完全不做度量也不是答案:没有数据,改进只能凭感觉,也无法判断改动是否有效。关键在于度量的用途与配套解释。
用单一数字排名团队,行为会迅速向数字优化:一旦被识别为博弈,后续所有度量都会失去团队信任,恢复成本很高。

易错点

  • 用单一数字排名团队:行为迅速向数字优化,质量并未改善
  • 完全不度量:改进缺少依据,只能凭感觉决策
  • 指标口径不公开:团队不明白数字怎么来,自然不信也不改
  • 发现失真就彻底放弃度量:从博弈跳到无依据,问题并没有解决

数据来源与参考

  • Goodhart 定律(1975)与 Marilyn Strathern(1997)转述;软件度量实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌