什么是OKR

近几年OKR的概念在国内开始流行起来了,之前公司也有人想实施OKR,但现在看来之前的OKR实施者只是在哪儿看了一下OKR的资料,本着跟老板邀功的想法比较功利的在推进,所以基本没有效果,今年换了一个不错的团队,比较幸运的成为了技术部(150人左右)OKR实践的操盘手,于是整个对OKR的认识便不太一样了,这里分享一些心得出来与各位交流,互相促进。

OKR(Objectives and Key Results)即目标与关键成果法,是一套帮助我们明确目标,并且有一套跟踪完成情况的路径,这里形成的是一套科学的方法论,如果用好了可以产生非常不错的效果,这里一个基础的OKR格式是这样的:

Objective:“我们想做什么?”
  Key Result:“我们如何知道是否达成了目标的要求?”
    Key Action: “为了达成结果,有哪些行动?”
    Key Action:
    Key Action:
  Key Result:
  Key Result:

这里以Uber的OKR为例,更直观的展示:

Objective 目标:招募更多的司机
  • 所有地区的司机基数提升20%
  • 所有活跃地区司机的平均工作时长提升至每周90小时

我们可以轻易认识到,当前Uber的急迫点是更多的司机做服务,而不论的提升各个地区司机的基数,还是提升固定基数司机的工作时长,都能达到他们的目标,这个就是一个非常简单的OKR实例了

OKR是一个小而美的事物,看似小而美其实是一套非常完善的思维框架,他跟我之前看的一本书《瞬变》的理论框架是基本一致的,瞬变一书的三大主旨是:

① 强调改变,提出目标

这里首先解决的是如何提出目标,改变的目标是什么,是什么影响了我们(拖了我们的后腿),OKR也是同样,每一个OKR的提出事实上是要解决我们迫在眉睫的问题,或者带来实打实的效益

② 如何改变,构建关键步骤

目标提出后,便需要提出几条关键路径,并且确定我们通过这几条关键路径就能达到我们的目标

③ 构建环境,让我们的关键路径能更好的执行下去

这里的环境是团队的认同感,团队的习惯,团队困难的解决,当环境是有利于关键路径走下去的时候,目标就不远了

然后回到我们的OKR实施关键路径:创建OKR->精炼OKR->对齐OKR->刷新精炼OKR->发布OKR,可以看出其思想框架与上文是非常类似的:

① 设定目标=>强调改变提出目标
② 对齐目标=>分解KR,构建关键路径
③ 发布目标=>构建执行环境,团结身边资源

至此,我相信各位对OKR有了一个基本的认识了,一言以蔽之OKR即提出一个目标,并且设置关键路径达到这个目标,接下来我们开始讨论如何提出OKR这个问题

如何创建OKR

如何创建OKR这个问题不能一概而论,在一个团队已经熟悉甚至精通OKR这个工具的时候是一个方法;在一个10人团队与一个100人团队创建OKR时候又不一样;在一个人才济济的团队和一个素质一般的团队又有所不同,所以OKR的创建并不一定是一致的,但不变的是OKR核心的宗旨:

事实上,OKR的意义是帮助团队培育目标导向与结果意识,并且加强我们的跨部门合作,进一步帮我们识别团队中隐藏的潜力股(人才),并且给他们塑造表现自己的舞台

于是在以人为本的前提下,这句话就是团队中核心的人才会提出帮助团队前进的目标并获取资源执行,而比较功利的说法是提出好的OKR并且成功获得资源执行的人会成为团队核心人才,这里的需要我们思考的点是:

① 好的OKR需要善于思考并且真实了解团队痛点的人提出

② 团队资源是有限的,所以只有好的OKR才会获取资源并执行下去

所以OKR最终可能会演化成团队人才的培育,和团队资源的合理使用,这个是大家需要认识到的一个前提

有了以上理论后,我们这里站在个人的角度来探讨如何提出OKR,我们这里不去探讨公司的使命公司的责任这种引领思维的东西(因为愿意看此文的肯定不是太大的领导),个人提出OKR一般是两个方向:

① 解决自身职业生涯问题,这个一般是有晋升需求

② 解决团队中的痛点,这个一般会涉及到产品项目的落地或者规范制度的落地或者组织架构的变化

而这个也是有方法论可用的,这个就是SWOT分析,SWOT分析是帮助个人或者团队认识到自身的优势劣势,从而制定出合理的战略,这里以之前一个小伙伴职业生涯发生了困惑,与我交流产生的SWOT:

 
优势
劣势
① 聪明,有一定大局观,并且能提一些破局性的建议
② 善于交流,交际花性格,观点风趣,容易被人提携
③ 有一定业务意识,可以做半个PM(多数程序员“内向”)
④ 有一定家底,可以做几次任性的选择
⑤ 情商高
⑥ 虽然技术中等,但是对研发熟悉
① 容易陷于人情世故,拉不下脸,喜欢做好人,做小leader可以,大leader有大缺陷
② 技术能力丢了一大半了,核心竞争力低,并且已经进入技术天花板,而且层次较低
③ 资历背景差
④ 一个公司待久了,容易没事做或者做对自己职业生涯没帮助的事,浪费时间,跟同等年龄同学慢慢有差距
⑤ 虽然情商高,但是傲娇,性格深处“直男癌”,以自我为中心
机会
① 互联网比较公平,付出就一定有收获
② 在公司有一定地位,处于研发核心决策圈,信息量大,并且老板熟悉,团队人员多数平庸
③ 公司有上市可能,如果上市研发团队可能突破100人,甚至200人,前景比较好
④ 研发团队平庸,自己可替换性低
⑤ 有可能获得大量期权,财务小自由概率20%
⑥ 与leader有私交,是死党
⑦ 能接触到行业内一些中高层,开拓自己的视野/格局,对后面的发展可能有一定铺垫作用
增长型战略(进攻)
 
坚持认为现有团队会上市,设置底线为公司高管或者子公司高管
 
想办法做独立业务负责人,或者独立部门负责人,直接汇报给CEO
扭转型战略(调整、改进、奇兵)
 
坚持公司上市,但是自己能力值一般,如果研发200人团队,技术能力太差。给个50人团队也管不住,所以这里的两个点是:
1 依旧要想办法成为高管
2 提升自身能力,但不能完全是技术能力,因为没业务需求的技术很容易到天花板,转型PM,平时多学习研发以外的知识,形成体系框架,形成方法论,杜绝平时一些好大喜功而无用的事情
风险
 
① 互联网发展趋于稳定,红利即将结束,互联网人才资源开始饱和
② 虽然处于研发核心决策圈,但是研发地位低,不受重视,并且公司大前景不被看好
③ 如果公司上市,研发团队破150,业务技术难度会同步上升,一定概率会有技术高管空降,会有派系之争、换血行为
④ 年龄不小了,该公司失败职业生涯有崩盘风险
⑤ 团队平庸,没有帮手
⑥ 同等工作不好
多种经营战略(调整)
 
深刻认识自身比一般程序员优秀的点,并且公司药丸,或者现在的优势在新高管过来会被一击而散,自己大好职业生涯不能就此停止,这个时候为自己设置下限为基层leader,并且需要提升年薪
 
果断离职,去一个中小型公司充当核心角色,扬长避短,转型PM、总监方向,温习技术基础,在架构方向花30%时间,提升软素质
 
多观察公司高管处事方式和公司组织架构演变规则,每个阶段会发生什么事情,每个阶段怎么做最合适,整理成框架体系,做段位比较高的leader,学习组织架构演进,学习技术方向,往管理方向发展
 
防御型战略(生存)
 
深刻认识到自身缺陷,并且公司有药丸的风险,有很高的失业风险,并且找不到待遇好的工作,待下去就是炮灰。这个时候果断选择离职,并且需要考虑下一份工作待遇下降30%的风险,完全为养家糊口而考虑
 
从今天开始60%时间回归研发,并且在基础技术稳扎稳打,保持对行业的认识,以及写基本的业务代码,力求在面试过程中不会有问题
寻找一切可能,进一类、二类互联网公司做一个底层人员,积累背景,积累基础知识,为自己今后职业规划添砖加瓦

这里形成了几项战略选项,该同学可以做最适合自己情况的选项,然后根据他制定对应的OKR;如果是站在团队乃至公司角度的话,以B站为例,SWOT可能是这个样子的

引用:https://zhuanlan.zhihu.com/p/79719460

所以各位在做OKR之前,首先先思考下自己要做关于自己的还是关于团队的,其次针对的做SWOT分析,然后变可以进入提出OKR的步骤了。当然我这里并不能帮助大家提出好的OKR,因为我根本不了解大家的情况,但是提出OKR这里依旧有一些小技巧:

① 做SWOT分析,明确我们的战略方向

② 目标需要振奋人心,比较好的方式是用动词开始,通俗易懂,比如这个OKR:

Objective:提升司机满意度

  KR1:定义并评估司机满意指数

  KR2:提升该指数到75%以上

待补充......

如何让OKR实践变得更简单一些的更多相关文章

  1. Moq让单元测试变得更简单

    [ASP.Net MVC3 ]使用Moq让单元测试变得更简单 前几天调查完了unity.现在给我的任务是让我调查Moq. 以下是自己找了资料,总结并实践的内容.如果有表述和理解错误的地方.恳请指正. ...

  2. 让全链路压测变得更简单!Takin2.0重磅来袭!

    自Takin社区版1.0发布两个多月以来,有很多测试同学陆续在各自的工作中运用了起来,其中包括金融.电商.物流.出行服务等行业.这个过程中我们收到了很多同学的反馈建议,同时也了解到很多同学在落地全链路 ...

  3. spring 第一篇(1-1):让java开发变得更简单(下)

    切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...

  4. spring 第一篇(1-1):让java开发变得更简单(下)转

    spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...

  5. [翻译]Kafka Streams简介: 让流处理变得更简单

    Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...

  6. Winform 让跨线程访问变得更简单

    Winform 让跨线程访问变得更简单 前言 由于多线程可能导致对控件访问的不一致,导致出现问题.C#中默认是要线程安全的,即在访问控件时需要首先判断是否跨线程,如果是跨线程的直接访问,在运行时会抛出 ...

  7. Kafka Streams简介: 让流处理变得更简单

    Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...

  8. EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。

    EpiiAdmin EpiiAdmin php开源交互性管理后台框架,基于Thinkphp5.1+Adminlte3.0+Require.js, 让复杂的交互变得更简单!Phper快速搭建交互性平台的 ...

  9. 深入解析 Kubebuilder:让编写 CRD 变得更简单

    作者 | 刘洋(炎寻) 阿里云高级开发工程师 导读:自定义资源 CRD(Custom Resource Definition)可以扩展 Kubernetes API,掌握 CRD 是成为 Kubern ...

随机推荐

  1. Ubuntu18.04安装PHP7.3

    因为近期需要做毕业设计,需要用到Linux系统,在此分享一下在Linux-Ubuntu系统下安装PHP环境的一小点知识,如有偏差错误的,请各位学友多多指教哈! sudo apt-get install ...

  2. python习题作业合集(持续更新……)

    作业: 1.简述位,字节关系 2.请写出“天才”分别用utf-8和gbk编码所占位数 3.如果有一个变量num = 14,请使用int的方法,得到改变量最少可以用多少个二进制位表示 4.写代码,有如下 ...

  3. Spring 梳理 - filter、interceptor、aop实现与区别 -第二篇

    spring mvc中的Interceptor可以理解为是Spring MVC框架对AOP的一种实现方式.一般简单的功能又是通用的,每个请求都要去处理的,比如判断token是否失效可以使用spring ...

  4. 【IT技术概念】什么是webservice?

    WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互. WebServi ...

  5. 死磕 java同步系列之redis分布式锁进化史

    问题 (1)redis如何实现分布式锁? (2)redis分布式锁有哪些优点? (3)redis分布式锁有哪些缺点? (4)redis实现分布式锁有没有现成的轮子可以使用? 简介 Redis(全称:R ...

  6. java工作错误总结

    1.访问接口出现以下错误 com.alibaba.dubbo.rpc.RpcException: Forbid consumer 192.168.200.126 access service com. ...

  7. ES6入门之Promise对象

    1. Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件更合理.更强大. 1.1 什么是Promise 简单来说就是一个容器,里面保存着某个未来才会结 ...

  8. [Note] Windows 10 Python 3.6.4 安装scrapy

    直接使用pip install安装时会在安装Twisted出错,以下主要是解决Twisted的安装问题 1. 安装wheel pip install wheel 2. 安装Twisted 在Pytho ...

  9. MongoDB 学习笔记之 从数组中删除元素和指定数组位置

    从数组中删除元素: 从数组中删除单个元素: db.ArrayTest.updateOne({ "name" : "Bill"},{$pop: {"ad ...

  10. Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!

    前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...