最近公司兴起了对OKR这个词的讨论,并且听到时总会伴随提到KPI,提到绩效考核。那OKR到底是什么呢?与KPI的区别在哪里?与绩效考核有什么关系?它与我们现在推行的敏捷开发有啥关系呢?因此,就到网上查了些资料,加上个人的一些经验和理解,尽量用少的篇幅,整理成了这篇文章。

一、什么是OKR

我们先来看下什么是ORK,OKR的全称是Objectives and Key Results,即目标与关键成果法。它是一套定义和跟踪目标及其完成情况的管理方法。

一般人看到OKR都会想起Google。事实上,OKR最初由Intel公司在1999年发明的,后来被推广到Oracle、Google、LinkedIn领英等高科技公司并逐步流传开来,现在广泛应用于IT、风险投资、游戏、创意等以项目为主要经营单位的大小企业。

这里再说下OKR的起源。OKR的思路源自管理大师德鲁克的目标管理。1954年,德鲁克提出了一个具有划时代意义的概念——目标管理(Management By Objectives,简称为MBO),它是德鲁克所发明的最重要、最有影响的概念,并已成为当代管理体系的重要组成部分。它的核心思想是放弃命令驱动的管理,拥抱目标驱动的管理。经理人必须实施目标驱动的管理,这是德鲁克给经理人的忠告。从根本上讲,目标管理把经理人的工作由控制下属变成与下属一起设定客观标准和目标,让他们靠自己的积极性去完成。这些共同认可的衡量标准,促使被管理的经理人用目标和自我控制来管理,也就是说,自我评估,而不是由外人来评估和控制。 德鲁克的这个思路也是现代管理提倡的自组织、自管理的基础。

二、OKR的具体内容   

说到这里,我们还是不知道OKR的具体是什么,只知道它是一种以目标管理为基础的管理方法。

下面我们再来详细介绍下。OKR分两个部分,一个就是O代表的目标,第二个是KR代表的关键结果。一个O对应多个KR,KR是为了更好的支持O的完成,是要明显可量化的,便于度量的。

举个例子。以某打车APP为例定义的OKR:

Objective 目标:招募更多的司机

KRs:所有地区的司机基数提升 20%

KRs:所有活跃地区司机的平均工作时长提升至每周 90 小时

  

上面定义了一个OKR,其中包括两个KR。可以看出,KR依然是目标层面的东西,不是举措,注意不要把KR和举措搞混了。

   OKR有几个原则:

1) 可量化

2) 有挑战

3) 透明化:公开、透明、可视化的管理

三、OKR 与KPI

前面也提到,提到OKR ,总会拿KPI对比。他们两个得确有很多相似的地方。但OKR这么背推崇,被用来替换KPI,总是有它不同的地方。下面我们来说说它们的关系。

KPI是很多公司,尤其是一些传统公司采用的一种管理办法。我们先来回顾下什么是KPI。 KPI全称是,关键绩效指标法(Key Performance Indicator),它把对绩效的评估简化为对几个关键指标的考核,将关键指标当作评估标准,把员工的绩效与关键指标作出比较地评估方法,在一定程度上可以说是目标管理法与帕累托定律(二八原理)的有效结合。关键指标必须符合SMART原则。它是在组织内部自上而下对战略目标进行层层分解产生。

OKR和KPI 首先它们有很多共通的地方:

1) 都是基于目标管理的。并且都希望目标要尽量明确化和可量化。

2) 都是为了达成组织的目标而层层分解下去的,从公司、到各级部门、到员工都有自己的OKR。

3) 也都会去度量实施的结果。

但它们也有很多区别,主要是思路和背后隐藏的价值关的差别:

1) 提到KPI,我们首先想到的可能还不是目标,不是为了达成组织的使命和目标,更多的也许想到的是自己的考核。因为在实际的运作中,总会把KPI和考核绑在一起。这个出发点本身没有错,也是挺好的,希望与员工的考核相结合,驱动和激励员工。但OKR不建议与考核挂钩,让大家更关注目标。

2) KPI是以数字说话,指标越高结果越好。而OKR不是,OKR的结果度量并不是越高越好,它认为完成0.6~0.7是比较好的。

3) KPI的制定基本上是从上到下,层层分解。OKR虽然也会从上到下,但它鼓励沟通,鼓励个人根据上层的目标提出自己的OKR。

4) OKR强调透明化、可视化管理,这个KPI是没有明确这么要求的。

四、OKR与绩效考核的关系

前面提到,OKR不建议与考核绑定。所以这里有个误区,误认为实施了OKR就不做考核了,甚至有人说google实行OKR,不考核。Google不是不考核,而是不用OKR来考核,它是用另外一套考核方法。而OKR作为员工工作的目标。必然和考核有一定关系。 实际上从前面的定义看出。如果单纯从输出的文档看,OKR和KPI并没特别的差异。完全可以用OKR来进行考核。但问题是一旦用于考核,就会陷入到KPI考核的那些问题上来。 但是OKR是员工的工作目标,如果不考核,怎么驱动大家努力的来完成这些目标呢?它更多的是希望通过公开化、可视化的方式来,形成氛围和群体的压力。其实和我们敏捷中的碰到的考核问题差不多。对于企业来说,尤其是大企业,员工的绩效评估和考核是不可避免的,就看你采用哪种方法。

比如google,它是通过员工自我评价与相互评价来考核员工的。因为大家的OKR都是公开透明的,员工相互之间很清楚大家的ORK完成情况,这给大家相互评价也提供了基础。因为都是公开的,员工也去会努力的完成OKR中定义的目标。

五、OKR与敏捷开发的关系

    第一,从价值观层面,它们有很多共通的地方。比如敏捷开发非常强调的一点就是自组织管理、公开化透明化。这点与OKR的目标管理、透明化也是一致的。敏捷开发中也提倡轻KPI,轻个体考核。

第二,在具体的实施中,比如对采用scrum的团队,KR会分解成pb表中的条目。

六、OKR的问题

任何一种管理方法都不是万能的,OKR也是一样。下面根据上面的分析,谈谈使用OKR可能存在的问题和需要注意的地方。

第一, OKR的理论基础是德鲁克的目标管理。目标管理它有一个基本的前提假设“假定人们会采取一切积极的行动努力达到事先确定的目标”。但这个假设是否一定成立,值的商榷。它是与组织或团队的氛围有关系的。

第二, 无论是OKR,还是KPI也好,一个关键的和无法避免的事情就是要把指标或目标找出来,并尽量能量化。但问题是,这个工作也不是那么容易的。有的工作,比如接热线电话的、。比如我们的软件开发。如果这个定比好,或定的不对。所以OKR它不与考核绑定,至少大家不会为了考核而去围绕数字、围绕指标去干活;而且OKR强调回顾和修订。

第三, 怎么解决与绩效考核、员工评价的关系。虽然OKR再三强调与考核无关。但OKR的目的是为了让各级组织和员工协同工作,更好的达成组织的目标的完成,本身它的完成情况也会度量的。它很容易会产生对比,关联到绩效考核。尤其是在做的不好的时候。因此怎么能解决好这个问题,也是个关键。

第四, 任何管理方法都有它适应和依赖的环境,google能做的我们是不是一点能做呢?google成功的我们是否一定成功?在引入一个方法时,还是要考虑企业自身的特点、文化背景、企业文化等。即使要引入,也要循序渐进,做好相应的支撑和准备工作。

第五, 任何管理方法最终都要靠人去落实,敏捷开发中特别强调人的重要性,我们这里也强调下,使用OKR也不能忘记人在其中的核心作用。

七、总结

整个关于OKR的介绍就到这里。最后想说的是,说的再多,分析的再透彻都没用,有了一定的理论概念后,关键是行动起来,去实践它,这样才能真正的理解它。

OKR 方法 学习笔记的更多相关文章

  1. zepto.1.1.6.js源码中的each方法学习笔记

    each方法接受要遍历的对象和对应的回调函数作为参数,它的作用是: 1.如果要遍历的对象是类似数组的形式(以该对象的length属性值的类型是否为number类型来判断),那么就把以要遍历的对象为执行 ...

  2. Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)

    一.学习ArrayList与Map时,关于常用遍历方法的记录如下:  二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...

  3. Android Studio调试方法学习笔记

    (注:本人所用Android Studio的Keymap已设为Eclipse copy) 1.设置断点 只有设置断点,才好定位要调试什么地方,否则找不到要调试的地方,无法调试.(调试过程中也可以增加断 ...

  4. JS数组中every(),filter(),forEach(),map(),some()方法学习笔记!

    ES5中定义了五种数组的迭代方法:every(),filter(),forEach(),map(),some(). 每个方法都接受两个参数:要在每一项运行的函数(必选)和运行该函数的作用域的对象-影响 ...

  5. dojo/dom-construct.toDom方法学习笔记

    toDom方法用来将html标签字符串转化成DOM节点.1.7之后toDom方法被分配到了dom-construct模块. require(["dojo/dom-construct" ...

  6. java.lang.Math类,方法学习笔记

    /**java.lang 包中的Math 类提供有常量 * 并包含有用于执行基本数学运算的 * 方法,如初等指数.对数.平方根 * 用于进行更高级的数学运算.由于 * 在Math 类的方法都是静态的, ...

  7. python中strip()方法学习笔记

    Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 当使用strip('xxx'),只要字符串头尾有"xxx"中的一个,就会去掉,而不是符合字符串''x ...

  8. 【Python】PYTHON中STRIP()方法学习笔记

    Python strip() 方法用于移除字符串头尾指定的字符(默认为空格). 当使用strip('xxx'),只要字符串头尾有"xxx"中的一个,就会去掉,而不是符合字符串''x ...

  9. C#扩展方法学习笔记

    C#扩展方法,简单的理解是不修改原来类的源代码的情况下,为某个类添加某个方法.扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的.它们的第一个参数指定该方法作用于哪个类型,并且该参数以 th ...

随机推荐

  1. POCO C++ lib开发环境构建

    Welcome Thank you for downloading the POCO C++ Libraries and welcome to the growing community of POC ...

  2. 常用 API

    运行 Java 程序的参数.使用 Scanner 获取键盘输入.使用 BufferedReader 获取键盘输入.System类.Runtime类.Object类.Java 7新增的 Objects ...

  3. leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法

    Swap Nodes in Pairs  Given a linked list, swap every two adjacent nodes and return its head. For exa ...

  4. 赵雅智:service_startService生命周期

    案例演示 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm ...

  5. poj1077 Eight【爆搜+Hash(脸题-_-b)】

    转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4298840.html   ---by 墨染之樱花 题目链接:http://poj.org/pr ...

  6. c#程序将excel文件转换成xml文件

    要程序你自己去组装去,我只写两个部分,一个是读Excel的部分,然后是写入到xml的1) 从指定的excel读出信息string strConn="provider=Microsoft.Je ...

  7. codeforces 478B Random Teams

    codeforces   478B  Random Teams  解题报告 题目链接:cm.hust.edu.cn/vjudge/contest/view.action?cid=88890#probl ...

  8. OpenCV配置使用版

    在VS2010环境中应用Opencv,网上找到了很多配置方法,但大多都是老版本的,很多新手面对最新版本的Opencv无从下手,就给新手童鞋写了这么一篇超级详细的配置攻略,贴上来共享.要强调一点的就是, ...

  9. Linux下Apache服务器并发优化

     Linux/UnixLinux系统下Apache 并发数的优化 Apache Http服务器采用prefork或者是worker两种并发控制模式. preforkMPM 使用多个子进程,每个子进程只 ...

  10. Regex阅读笔记(三)之固化分组

    符号:?> 使用?>的匹配与正常的匹配无区别,但是如果匹配进行到此结构之后,此结构体的所有备用状态都会放弃,也就是括号内的子表达式中未尝试过的备用状态都不复存在了. 例如'(\.\d\d( ...