15.3工程团队OKR案例

分类: 用 KPI 驱动 OKR 落地

工程团队 OKR 案例

欢迎回到第 15 章的学习。在上一节,我们学习了从 KPI 到 OKR。现在我们要通过工程团队 OKR 案例,学习如何设计和实施 OKR。

本节将学习:工程团队 OKR 案例、数据追踪方法、Dashboard 设计。

OKR 定义

案例背景是什么? 工程团队需要提升系统可靠性,确保服务稳定运行。

Objective 是什么? 提升系统可靠性。

Key Results 包括哪些呢?

第一个:KR1: P99 延迟 < 200ms。 确保系统响应速度。

第二个:KR2: 错误率 < 0.1%。 确保系统可靠性。

第三个:KR3: MTTR < 15 分钟。 确保快速故障恢复。

完整 OKR 定义:

## Objective: 提升系统可靠性

### Key Results:
- KR1: P99 延迟 < 200ms
  - 当前值: 250ms
  - 目标值: 200ms
  - 进度: 80% (200/250)
  
- KR2: 错误率 < 0.1%
  - 当前值: 0.2%
  - 目标值: 0.1%
  - 进度: 50% (0.1/0.2)
  
- KR3: MTTR < 15 分钟
  - 当前值: 20 分钟
  - 目标值: 15 分钟
  - 进度: 75% (15/20)

数据追踪方法

数据追踪方法的作用是什么? 追踪 Key Results 的进度,评估 OKR 达成情况。

如何追踪数据? 使用 KPI 追踪:

  • P99 延迟:使用 PromQL 查询 P99 延迟
  • 错误率:使用 PromQL 查询错误率
  • MTTR:使用 PromQL 查询 MTTR

PromQL 查询示例:

# KR1: P99 延迟
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

# KR2: 错误率
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

# KR3: MTTR(平均修复时间)
avg(time() - last_over_time(service_down_timestamp[1h]))

进度计算:

# KR1 进度计算
# 目标: 200ms (0.2s)
# 当前值: histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
# 进度: (0.2 - 当前值) / 0.2 * 100

# KR2 进度计算
# 目标: 0.001 (0.1%)
# 当前值: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
# 进度: (0.001 - 当前值) / 0.001 * 100

# KR3 进度计算
# 目标: 900s (15分钟)
# 当前值: avg(time() - last_over_time(service_down_timestamp[1h]))
# 进度: (900 - 当前值) / 900 * 100

Dashboard 设计

Dashboard 设计的作用是什么? 设计 OKR Dashboard,直观展示 OKR 进度。

如何设计 Dashboard? 在 Grafana 中:

  • 创建 OKR Dashboard
  • 添加 Key Results 面板
  • 显示当前值和目标值
  • 计算进度百分比

Grafana Dashboard 配置示例:

{
  "dashboard": {
    "title": "engineering team OKR Dashboard",
    "panels": [
      {
        "title": "KR1: P99 postponements",
        "type": "stat",
        "targets": [
          {
            "expr": "histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))",
            "legendFormat": "current value"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "unit": "ms",
            "thresholds": {
              "steps": [
                {"value": null, "color": "green"},
                {"value": 0.2, "color": "yellow"},
                {"value": 0.5, "color": "red"}
              ]
            }
          }
        },
        "options": {
          "textMode": "value_and_name",
          "colorMode": "value",
          "graphMode": "area"
        }
      },
      {
        "title": "KR2: error rate",
        "type": "stat",
        "targets": [
          {
            "expr": "sum(rate(http_requests_total{status=~\"5..\"}[5m])) / sum(rate(http_requests_total[5m]))",
            "legendFormat": "current value"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "unit": "percent",
            "thresholds": {
              "steps": [
                {"value": null, "color": "green"},
                {"value": 0.001, "color": "yellow"},
                {"value": 0.01, "color": "red"}
              ]
            }
          }
        }
      },
      {
        "title": "KR3: MTTR",
        "type": "stat",
        "targets": [
          {
            "expr": "avg(time() - last_over_time(service_down_timestamp[1h]))",
            "legendFormat": "current value"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "unit": "s",
            "thresholds": {
              "steps": [
                {"value": null, "color": "green"},
                {"value": 900, "color": "yellow"},
                {"value": 1800, "color": "red"}
              ]
            }
          }
        }
      }
    ]
  }
}

本节小结

在本节中,我们学习了工程团队 OKR 案例:

第一个是 OKR 定义。 Objective: 提升系统可靠性;Key Results: P99 延迟 < 200ms、错误率 < 0.1%、MTTR < 15 分钟。

第二个是数据追踪方法。 使用 KPI 追踪 Key Results 进度。

第三个是 Dashboard 设计。 设计 OKR Dashboard,直观展示 OKR 进度。

工程团队 OKR 实施流程: 定义 OKR → 追踪数据 → 设计 Dashboard → 定期回顾 → 持续改进。

这就是工程团队 OKR 案例。通过工程团队 OKR 案例,我们掌握了如何设计和实施技术 OKR。

在下一节,我们将学习业务团队 OKR 案例。学习如何设计业务 OKR。