15.3、工程团队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。