写点什么

技术漫谈:为何 KPI 毁了索尼,而 OKR 却成就了谷歌?

  • 2018-04-24
  • 本文字数:6302 字

    阅读完需:约 21 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

更多作者的独家干货,请【戳此订阅】李运华独家专栏《从0 开始学架构》:

课程价格:99 元/50 期,一次订阅,可在极客时间App、小程序和PC 端永久阅读。

特别福利:每成功邀请一位好友购买,你可获得16 元现金返现,好友也可获得8 元,多邀多得,上不封顶,立即提现(提现流程:极客时间公众号- 我的- 现金奖励提现)

从技术 leader 的角度出发,看技术人绩效考核的痛。大多数公司里面总会因为 KPI 的考核方式而存在各种各样的问题,OKR 是一个在硅谷互联网公司比较流行的做法。怎样去理解 OKR 这个概念,并在技术团队中推行,从而使绩效考核更合理也更有意义?

KPI 的困惑

索尼公司前常务董事天外伺朗的《绩效主义毁了索尼》一文,曾经在业界流传甚广,也激起了广泛的争议,支持的反对的意见和声音到现在为止都还没有停止。抛开文章的结论是否正确,观点是否偏颇,索尼是否没有真正理解 KPI 等争议,单纯从文章描述的现象来看,相信绝大部分公司里面都会存在类似的现象,例如:

  1. “因为要考核业绩,几乎所有人都提出容易实现的低目标”
  2. “因实行绩效主义,索尼公司内追求眼前利益的风气蔓延。这样一来,短期内难见效益的工作,比如产品质量检验以及“老化处理”工序都受到轻视”
  3. “上司不把部下当有感情的人看待,而是一切都看指标”、
  4. “为衡量业绩,首先必须把各种工作要素量化。但是工作是无法简单量化的。公司为统计业绩,花费了大量的精力和时间,而在真正的工作上却敷衍了事,出现了本末倒置的倾向”

我开始带技术团队后,在绩效考核这方面同样遇到了类似的疑惑,例如:

  1. 程序员的工作怎么量化?bug 数?代码行?版本数?

做过程序员的都知道,这些指标都是不可行的。例如某通信大厂考核程序员的 bug 数和等级,并且更加让人蛋疼的是同时考核测试人员发现 bug 的数量,结果程序员和测试员为了一个问题是 bug 还是需求遗漏、bug 等级是严重还是一般,能够吵上 2 个小时,2 个小时吵不下那就拉上双方主管再吵 2 小时,还吵不下那就拉上经理继续吵 2 小时,于是最后就看谁会吵,谁官大,搞得程序员和测试员身心俱疲,关系很紧张!
2. 即使程序员的工作可以量化,那每次绩效都是这几个指标,定绩效目标还有意义么?

例如:假设考核程序员用 bug 数、代码行数、版本数,那 2000 年用这个指标,2017 年也还是这个指标,这样的绩效目标有什么意义呢?
3. 团队 leader 如何制定团队的 KPI?

例如:可以看两个团队谁的代码行多么?可以看谁的团队 bug 数多么?可以看谁的团队版本数多么?可以看谁的团队分享次数多么?这些其实都不行。
4. 前瞻性的工作谁愿意做,有风险的工作谁愿意做?

例如:引入 ElasticSearch 理论上是可以提升搜索性能的,但可能在引入的这一年反而会带来很多问题,而能带来多少收益还不确定,这个时候怎么定 KPI?

OKR 的尝试

带着这些疑惑,我尝试去进行一些探索或者改进,并试着去看看业界在面对这些问题的时候是如何处理的,于是顺利成章的找到了 OKR 这个在硅谷互联网公司比较流行的做法。然而很遗憾的是,虽然 OKR 有 Google、Facebook 这样的大公司光环,但我刚开始了解 OKR 的时候,基本没看懂 OKR 和 KPI 的区别,感觉这两个东西基本上是一致的,只是换了一个说法而已。

我们以广为流传的谷歌投资人 John Doerr 介绍 OKR 的 PPT 中的样例来看:

我第一次看到这个分解的时候,第一感觉就是:这不就是 KPI 么?我们完全可以说:主教练的 KPI 分为 3 点,每点都有量化指标;公关经理的 KPI 有 3 条,但其中有 2 条没有明确的量化指标,这点跟 KPI 不符合,但其实跟 OKR 自己的要求也是不相符的,例如如下的 OKR 要求第二条就是 measurable。

虽然出师不利,但我并没有放弃(幸好我没有给自己在这件事上定一个 KPI),而是继续去查找更多资料,看看各种不同的解读,再结合自己的思考和探索,然后在团队中进行了小范围的尝试,发现非常有利于解决之前遇到 KPI 相关的困惑,通过这样的“探索 - 尝试 - 思考 - 改进”的方式,逐步真正的理解了 OKR,发现 OKR 真是团队绩效管理的一个利器!接下来我将整理一下理解和实践 OKR 的一些关键点,希望让更多的人拥抱 OKR。

深入理解 OKR

理解 OKR 的第一个关键:OKR 与 KPI 的区别是什么?

OKR 全称是 Objectives and Key Results,而 KPI 的全称是 Key Performance Indicators,单纯从名称上来看,有点不同,但看起来又很类似,这也是我第一次接触 OKR 的时候的疑惑,OKR 的 KR 和 KPI 没什么区别,但实际上这两者的关键差别就在名称里面,如果不理解这个关键差别,实践的时候就会感觉 OKR 和 KPI 是类似的。

OKR 和 KPI 具体的差别表现在:OKR 的关键词是 Objectives,KPI 的关键词是 Indicators!

不要小看了这两个词的力量,正是这两个词决定了 OKR 和 KPI 的本质差异:OKR 关注的是目标,KPI 关注的是指标。当我们关注“目标”的时候,我们会思考接下来我要做的事情是什么;而我们关注“指标”的时候,我们会思考自己的工作如何评价。

  • 以程序员为例,如果我们关注目标,我们会想接下来我应该做什么事情,是要解决产品的卡顿问题,还是可以引入大数据来做精准推荐;而如果关注指标,因为我们的工作是编程,那我们就会想哪些指标可以衡量编程工作呢?我们想到的是代码行数、bug 数、单元测试覆盖率这些;
  • 以足球运动员为例,如果关注目标,我们会想到夺冠、四强、保级;如果关注指标,那我们就会想到进球数、助攻数、跑动距离、比赛场次等;
  • 以滴滴和快的为例,如果关注目标,快的的目标应该是超越滴滴;如果关注指标,快的的指标应该是司机数量、订单数、乘客数等;

为何这两种思考方式差异非常大呢?有一句名言形象的说明了这点:如果方向对了,就不怕路途遥远!而如果方向不对,指标再漂亮都没有意义,甚至指标越漂亮就错的越大。目标就是我们的方向,指标就是评价我们做的事情的质量。使用 OKR 的时候,我们的思维第一反应是“我们的目标是什么”;而使用 KPI 的时候,我们的思维第一反应是“我们的职责是什么”,如果我们将思维固化在当前的职责,那就不会去审视整个环境当前的状态以及后续可能的变化,也就不会及时的根据实际情况进行调整。

以《绩效主义毁了索尼》一文中的例子为例:“具有讽刺意味的是,因单枪三束彩色显像管电视机获得成功而沾沾自喜的索尼,却在液晶和等离子薄型电视机的开发方面落后了。”。因为彩色显像管是已经在做的产品,按照 KPI 的方式去思考,自然是要将彩色显像管销量指标做的越高越好;但按照 OKR 的方式去思考,就会发现行业都转向液晶和等离子电视了,应该尽快将目标转向液晶和等离子电视,而不是继续将目标放在彩色显像管电视上。

再假设以快的和滴滴为例,如果按照 OKR 的方式来思考,快的的目标应该是“2014 年 Q4 超越滴滴”;如果按照 KPI 的方式来思考,快的的指标可能是“2014 年 Q4 订单数增长 100%”,也许为了达到“2014 年 Q4 超越滴滴”这个目标,最终确实要求“2014 年 Q4 订单数增长 100%”,但更可能的情况是为了达到“2014 年 Q4 超越滴滴”这个目标,最终要求“2014 年 Q4 订单数增长 200%”,因为快的需要考虑滴滴本身的增长。单纯从指标来看,“增长 100%”已经是非常厉害的了,而如果从目标来看,“增长 100%”却还远远不够!

彼得德鲁克在《管理的实践》中说:“并不是有了工作才有目标,而是相反,有了目标才能确定每个人的工作。所以企业的使命和任务,必须转化为目标。”。我觉得这句话非常好的诠释了 OKR 的本质,以及 OKR 和 KPI 的区别,形象的提炼一下:OKR 让我们做正确的事情,KPI 让我们正确的做事情!

理解 OKR 的第二个关键:OKR 与 KPI 的联系是什么?

虽然我们前面深入剖析了 OKR 与 KPI 的关键区别,但这并不意味着它们就是截然相反,水火不容的。我们在实践中会发现,OKR 最后的 KR 和 KPI 看起来没什么两样,这又是什么原因呢?主要原因在于 OKR 中的 KR 和 KPI 的表现形式是基本一致的,OKR 的 KR 也要求 measurable,这点和 KPI 的“量化”指标基本一致,所以很多 KR 形式上看起来和传统的 KPI 一样。例如下图,这里面的 KR 我们说是 KPI 也基本没问题:

OKR 和 KPI 的关系,用下图来表示最形象不过了:

根据上图的描述,我们可以看到,OKR 首先确定 O,然后从 O 分解出 KR,然后用 KPI 或者 Milestone 的形式来表示 KR。

这里有一个细节需要特别注意:OKR 的 KR 可以是 KPI,也可以是 Milestone,这是为什么呢?关键在于 OKR 要求 KR 是 measurable,中文译为“可衡量的”,而 KPI 的指标要求是“可量化的”,也就是说衡量的方法更加广泛一些,可以是“量化”衡量,也可以是“里程碑”式的衡量。

同样以《绩效主义毁了索尼》一文为例,索尼公司彩色显像管的开发项目立项时的 KR 应该是“19XX 年开发出彩色显像管电视”,这是一个无法量化的目标,但完全可以通过里程碑的方式来评估这个目标是否达成;再以足球队为例,皇马足球队的联赛 KR 应该是“夺取西甲联赛冠军”,这也是一个无法量化,但可以评估的结果,你总不能说为了量化改为“夺取 1 个西甲联赛冠军”,因为 1 年内根本不存在夺取多个西甲联赛冠军这个结果。

理解 OKR 的第三个关键:OKR 到底要不要和绩效考核相关?

OKR 目前在美国硅谷的科技公司应用并取得了很好的效果,但介绍 OKR 的文章里面无一例外的都提到了 OKR 和绩效考核无关,例如 Facebook 的绩效考核是 360 度环评,而中国公司的绩效目前来看不太可能采用这种方式进行绩效评价,那如果我们要推行 OKR,绩效考核如何做? 难道还要发明另外一套机制来进行考核?

前面我们分析 OKR 和 KPI 的关系的时候,提到了 KR 其实可以用 KPI 或者 Milestone 的形式来进行衡量,而这正好和我们传统的 KPI 绩效考核的形式是一致的,因此我认为根据 OKR 来进行绩效考核并没有什么问题,而且可以从已有的 KPI 绩效考核平滑的过度到 OKR 绩效考核,只要考核 OKR 的 KR 是否达成,达成情况如何就可以了。

例如,我们在制定 KR 的时候,可以直接将结果等级包含进去。以恒大足球队为例,如果 KR 直接定“夺取联赛冠军”,那考核的时候只有两种结果:达到和未达到,考核就比较粗粒度了,但如果 KR 为“保底 4 强,满意亚军,争取冠军”,那就可以进行传统意义上的绩效考核了:4 强是“正常”,亚军是“优秀”,冠军是“突出”,许老板也完全可以根据这个结果来决定发多少奖金 :)

根据 OKR 进行考核的时候,还可能出现另外一个问题:KR 都达成了,但是目标没有达成。例如快的的目标是“超越滴滴”,KR 是订单数增长 200%,但到了年底盘点一看,订单数增长 300%,但第一还是滴滴的,那这个到底算达成还是没达成呢?其实如果按照 OKR 的核心是目标这个点来看,肯定是没达成,毕竟目标是最关键的。

理解 OKR 的第四个关键:OKR 的“目标”从哪里来?

OKR 最重要的是目标,因此要求目标本身就是正确的,不能凭空捏造或者胡乱猜想。一般在介绍 OKR 的文章里面,都会提到“自上而下”的目标分解方式。例如球队经理确定球队目标,然后主教练和公关经理再根据球队经理的目标来进行自己的目标分解,通过这种一层一层的分解,逐步将大目标分解到不同团队不同个人的一个个小目标。这种分解方式要求团队 leader 具备较强的业务理解能力。

我们在实践中发现,单纯采用“自上而下”的方式进行分解还不够,还需要“自下而上”的提炼,即:团队根据自己的业务和团队情况提出一些专业上目标。以技术团队为例,假如现在的系统问题比较多,团队成员花费较多时间在处理各种线上数据问题,虽然由于团队成员的能力很强,最终这些问题对业务没有什么大的影响,但站在整个团队的效率和质量角度来说,这样肯定是不正常的,因此团队 leader 可能需要提炼“系统存储结构优化”这个目标,而这样的目标是难以采用自上而下的方式分解出来的。

自上而下的目标分解需要 leader 有很强的业务理解能力,而自下而上的目标提炼要求 leader 有很强的专业能力,两者相辅相成,缺一不可,因此可以看出,实行 OKR 其实对 leader 本身也是一种考验,因为要求更高了。

一个技术团队 OKR 的实例

我们以一个假想的技术团队为例,假设这个技术团队做一款购物 APP,我们看看 OKR 应该怎么做。

1、首先,业务负责人(或者决策团队)要确定半年的业务目标,这个业务目标不能是眉毛胡子一把抓,而应该综合市场、用户、竞争对手等分析的出来。例如:业务目标可以是用户量增长,也可以是用户活跃度,也可以是市场地位,还可以是订单量,还可以是成交金额,还可以是利润……那这半年到底应该以哪个或者哪几个为目标,这是业务负责人(或者决策团队)要想清楚的,而不能像 KPI 一样,每个指标都按部就班的设定一个增长量就可以了。

2、假设业务负责人确定这半年业务目标是“用户量增长”,然后业务负责人分解了几个 KR,例如:“用户量增长 50%”,“从 XX 渠道买量 XX 万”(这个是 KPI 式的 KR)、“6 月底新增 XX 业务”(这个是里程碑式的 KR)。

3、那么技术团队拿到业务 OKR 后进行分解,注意这里的分解不是说技术团队背一个类似“用户量增长 20%”这样的指标,因为这样的指标是无法衡量这 20% 到底是不是技术团队的功劳,而是要从技术的角度对业务的 OKR 进行分解。例如:“从 XX 渠道买量 XX 万”这个 KR 对技术团队来说关系不大,可以无需关注;而针对“6 月底新增 XX 业务”这个 KR,技术团队直接将其转换为自己的目标即可。技术团队对“6 月底新增 XX 业务”这个目标进行分解,得出 1 个 KR:“5 月 30 号完成开发 XX 业务开发,6 月 15 号上线”、

4、针对“用户量增长 50%”这个 KR,初看好像和技术团队没有太大关系,但实际上这就是技术团队需要基于业务来思考技术的一个典型 KR。技术团队应该从技术的角度去分析业务的目标:哪些技术是和用户增长量相关的,这些技术目前是否具备,是否目前做的不好还有优化空间。例如:影响用户增长量的一些技术指标有“安装包大小”、“App 启动时间”、“App 崩溃率”、“App 耗电情况”……等等,假设经过分析后技术团队认为目前安装包太大,并且 App 启动时间较长,那么可以将这两项相关的优化作为技术团队的 OKR:“App 安装包从 20M 缩减到 8M”,“App 启动时间从 2s 优化到 500ms”,而这两个 KR,业务负责人几乎是不可能提出来的。

5、除了上面的自上而下的目标分解外,技术团队也需要从团队和技术本身的角度来思考是否有这个阶段需要重点做的事情。例如:我们团队目前的版本节奏较慢,而慢的原因是因为版本多而测试环境不足,测试环境不足是因为机器不够,那可以得出一个目标“解决测试环境不足导致版本等待的问题”,分解出来的 KR 可以是“添加 4 台测试环境机器”(是的,虽然是一件很简单的事情,但这也可以作为 KR),也可以是“引入 Docker,支持一台机器搭建 20 套环境”(这个 KR 比较符合技术人员的理解)。

通过这种 OKR 的方式进行思考和分解,最终技术团队要做的事情如下:

“5 月 30 号完成开发 XX 业务开发,6 月 15 号上线”

“App 安装包从 20M 缩减到 8M”

“App 启动时间从 2s 优化到 500ms”

“引入 Docker,支持一台机器搭建 20 套环境”

写在最后

OKR 对很多人来说还是一个新事物,我接触 OKR 并不久,也许还有很多东西没有彻底理解,也许实践中也还会遇到各种各样的困惑,但是单纯从思路的转变来看,我认为 OKR 不仅仅是一个绩效和目标管理方法论,更是一种“聚焦目标”的思维方式,掌握这种思维方式后,不仅可以在工作中应用,在个人生活中也完全可以应用,并都能够取得很好的效果!

作者介绍

李运华,阿里游戏资深技术专家,带领多个研发团队,承担架构设计、架构重构、技术团队管理、技术培训等职责;专注于开源技术、系统分析、架构设计,对互联网技术的特点和发展趋势有较深入的研究,对系统解耦、高性能、高可用架构有丰富的经验。

2018-04-24 18:254663

评论

发布
暂无评论
发现更多内容

揭秘云原生时代企业可观测体系落地实践

嘉为蓝鲸

云原生应用 云原生(Cloud Native) 可观测宇宙

阿里P7了!全靠死磕这份阿里全彩版"并发编程笔记",大厂必备!

Java你猿哥

Java 并发编程 架构师 java面试 Java工程师

关于ChatGPT,我们请小红书技术人和NLP专家聊聊原理和潜力

小红书技术REDtech

自然语言处理 openai ChatGPT

多云转晴:Databend 的天空计算之路

Databend

python统计程序耗时 | python小知识

AIWeker

Python python小知识 三周年连更

互联网工程师Java面试八股文及答案整理(2023最新版)

会踢球的程序源

Java springboot java面试

小红书广告智能创意能力构建过程详解

小红书技术REDtech

人工智能 广告 小红书

Unity 之 月签到累计签到代码实现(ScriptableObject应用 | DoTween入场动画)

陈言必行

Unity 三周年连更

我在 20 年的软件工程师生涯中学到的 20 件事

宇宙之一粟

翻译 软技能

FastAPI 快速开发 Web API 项目: 连接 MySQL 数据库

宇宙之一粟

Python FastApi 三周年连更

准备2023金三银四的Java程序员注意:40+文档5000+页面试资料来啦

会踢球的程序源

Java java面试 面试资料 Java大厂面试

小红书社区反作弊探索与实践

小红书技术REDtech

防作弊 小红书

互联网工程师Java面试题及答案整理(2023速成版,7天就能吃透)

采菊东篱下

java面试

改写同事代码——血压操作集锦第一弹

Java你猿哥

Java IDEA java编程 SSM框架 表单设计

开屏广告=让用户等?小红书如何兼顾用户体验和广告投放效果

小红书技术REDtech

推荐 广告 小红书

【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

HarmonyOS SDK

HMS Core

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

Java你猿哥

Java 分布式 SSM框架 分布式数据 分布式消息

把脉分布式事务的模型、协议和方案

小小怪下士

Java 分布式 分布式事务 后端

Oracle 23c 新特性实操体验优质文章汇总

墨天轮

数据库 oracle sql 新版本/特性解读

字节跳动正式开源分布式训练调度框架 Primus

字节跳动开源

开源 算法 流批一体

阿里全新推出:微服务突击手册,把所有操作都写出来了

Java你猿哥

微服务 微服务架构 Spring Cloud SSM框架

SpringBoot2.x系列教程——整合使用JPA

会踢球的程序源

Java

Spring Boot 实现接口幂等性的 4 种方案

做梦都在改BUG

Java Spring Boot

HummerRisk V1.0 :架构升级说明

HummerCloud

开源 云安全 云原生安全

中船互联与嘉为科技共同打造“IT运维管理”融合解决方案

嘉为蓝鲸

自动化运维 IT 运维 中船集团

90%的Java开发人员都会犯的5个错误

做梦都在改BUG

从「搭子」文化,看融云如何助力垂类社交应用增长

融云 RongCloud

融云 Z世代 通讯 交友 搭子

测试工程师为什么要关注研发效能?

思码逸研发效能

软件工程 研发效能 测试工程师

大型SRE组织设计与建设落地,且看腾讯蓝鲸如何做?

嘉为蓝鲸

腾讯 运维自动化 蓝鲸

Alibaba最新神作!耗时182天肝出来1015页分布式全栈手册太香了

Java你猿哥

Java 分布式 SSM框架 分布式核心原理解析 分布式开发

Redis删除键命令: 新手用del,老手用unlink,有何区别?

Java你猿哥

Java redis SSM框架 Java工程师 delete

技术漫谈:为何KPI毁了索尼,而OKR却成就了谷歌?_Google_李运华_InfoQ精选文章