记录OKR在小公司实施的一次经历
00 前言
前段时间看了本书叫《OKR工作法》,顺便了解了一下OKR的相关知识,感觉这个起源于英特尔公司的东西,正是为那种小而美的团队准备的好东东。如果你还不知道什么是OKR,那我给你个传送门,可以去那里扫扫盲。恰逢我当时所带领的技术团队是小团队,而公司的业务和技术都处在需要变革的前夕,这简直就是老天爷给予的实施OKR的良机啊。那么我是如何导入OKR,并且将OKR实施落地的呢?下面且听我慢慢分解。
01 黎明前的黑暗
在开始给大家讲述我的OKR经历之前,先给大家交代一下背景情况。我当时所在的公司是一家做通讯产品业务的小公司,说白了就是帮移动、联通这些电信公司销售手机号卡,流量套餐以及做一些自己的新零售业务的渠道商。我当时空降过去的时候,这公司的日子过得可以说是相当难受,因为:
1. 公司的系统经常崩溃停机,严重影响业务
2. 公司的系统开一单要10分钟到半小时,而且开单成功率不到50%
3. 公司的系统存在一号多开,丢单等的问题
4. 最最让人不爽的是,公司的几个竞争对手,他们的系统开单成功率都在90%以上,开单还快。所以他们天天向公司老总秀肌肉。
以上的这些情况,充分说明了,这是一个彻头彻尾的烂摊子。也正是因此,才让公司的这个业务平台到了不得不改变的地步。因为不改肯定会死,改可能还有活的机会。
就是在这样非常糟糕的情况下,我接手了这个烂摊子。恰好这个项目面临变革,技术团队人又少,所以,这绝对是一个实践OKR的绝佳机会。
02 确定目标,备好粮草
要实施OKR,首先第一步肯定是要确定O,也就是目标。公司虽然使用KPI的方式考核绩效,但是OKR不是绩效考核工具,所以跟公司的考核机制不冲突,可以做目标对齐。既然这样,那如果我是公司老板,我会怎么定目标呢?很简单,就四个字,开源节流。但是目前来看,节流不如开源(不是开源软件的那个开源哈)。既然竞争对手们开发的系统,开单成功率在90%以上,开单速度在1分钟以内,那我就把部门的季度O定为技术支撑业务能力高于竞争对手。
OK,我现在有O了,那下一步,肯定是key result,然后推导出key action。前面提到过,竞争对手的开单成功率是90%,开单速度在一分钟以内,好,那我的第一个KR就定为开单成功率95%以上,第二个KR就定为开单时间半分钟以内。此外,由于系统经常崩溃,所以我又加了一个KR,即线上故障2小时内修复。现在我的OKR模型是这样的:
- O:技术支撑业务能力高于竞争对手
- KR1:平均开单成功率95%以上
- KR2:平均开单时间半分钟以内
- KR3:线上故障平均2小时内修复
为了能达成这几个KR,我认为需要公司的一些支持。这些支持包括:
人员支持:现有的技术人员能力参差不齐,需要调整。但是,凡是涉及到人事的变动,就需要和相关的人提前沟通好,比如公司老板,行政HR等,因为有些技术人员有点沾亲带故的关系。
资金支持:既然要改变,肯定是要花钱的。系统都已经烂到家了,快活不下去了,还有啥理由不投钱?除非老板不想做这生意了。
然后我就开始了和老板的漫长的交涉沟通(其实也没多长,两三天吧),终于争取了下来。现在人和钱这两方面都有保障了,可以放心大胆地干了。
03 落地三部曲,想好了就干
OKR实施的第一步,先解决人的问题。首先我让小伙伴们根据部门的OKR来制定自己的OKR,并一起开会评审,做出承诺。然后每周复盘,并对那些没有达标的小伙伴,逐一谈话,能干的愿意干的可以再给一次机会,不愿意干的就可以另谋出路了。对于愿意留下来继续干的小伙伴,我会在平时去验收他们的工作成果,例如review他们的代码,查看他们编写的文档等,不断提升他们的战斗力,并逐步建立起工程师文化,改变技术部以往死气沉沉的氛围。
在解决了人的问题后,第二步就是解决工具的问题。以前小伙伴们使用的办公电脑,普遍配置一般,甚至偏低(赛扬处理器,内存4个G,甚至2个G),键盘鼠标全都是二手货,手感贼差。于是我向公司申请,将办公电脑的配置全部升级(i7处理器,8G内存,带固态硬盘),键盘鼠标全部换新的。这样一来,小伙伴们编程时的体验好了不止多少倍。除此以外,我还将技术部使用的宽带升级,并更换了带宽更大的路由器,提升设备之间的数据传输效率。另外,还有为搭建测试环境采购的服务器,平时沟通用的玻璃白板等等。有了这些家伙什,大家的工作效率就有了保障。
最后的一步,就是解决系统的问题。公司使用的业务系统,是找外包团队花了两个星期的时间做出来的,是一个跑在tomcat容器中的web单点应用,外加一套不怎么好用的app。我通过一两天的观察发现,开单慢,是因为数据库设计不合理,也没有做数据库优化导致的(mysql中查询100万条数据有多慢,相信经历过的人都懂)。开单成功率低,是因为前端app未做参数校验,后端应用也没有过滤无效数据,程序出错导致开单失败。至于系统经常崩溃,是因为内存溢出导致tomcat容器停止运行。好吧,这都是很低级的问题。既然系统要重构,那就索性把这个巨石架构的应用换成微服务架构。正好当时流行springcloud框架,于是我决定将系统中的业务模块都做成独立的微服务。同时,让做app开发的小伙伴们重新开发app。在重构系统的过程中,顺带解决以前系统中的一号多开,丢单等影响业务的问题。
小伙伴们听说要使用很潮的技术开发微服务,兴趣都非常的高。做app开发的小伙伴一听说让他们从头开发app,也都非常高兴(因为不用再给外包的app擦屁股了)。大家在热火朝天的干劲中奋斗了两个多月。最终我们重构的新系统上线了,并且上线一周后,数据显示平均开单成功率在93%,平均开单时间在半分钟以内。而后我们针对开单失败的情况又制定了一套补偿机制,最终将平均开单成功率稳定在了98%。嗯,真香……
04 复盘总结,展望未来
总体来说,这一次实施OKR的经历,收获真的是非常的多,而且充分验证了OKR真的很适合在小团队或者创业团队中去实施。通过两个多月的OKR经历,大家都有了不同程度的成长和提高。而这,才是OKR真正给我们大家带来的好处。当然了,取得了这么好的成绩,庆功会是肯定不能没有的。所以,有条件又有时机的小伙伴们,强烈建议你们去尝试实施一下,真的很香。
记录OKR在小公司实施的一次经历的更多相关文章
- 3星|《OKR:源于英特热和谷歌的目标管理利器》:OKR原理、实施手册、实施过的公司的访谈
OKR原理与实施手册,另外附了几家实施过OKR的公司的访谈. 书中表述的OKR思想,我认为是这两点: 1:始终聚焦在最重要的目标上: 2:不以OKR为考核员工的指标: Kindle电子版排版有小缺陷, ...
- geotrellis使用(十二)再记录一次惨痛的伪BUG调试经历(数据导入以及读取瓦片)
Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 BUG还原 查找BUG 解决方案 总结 后记 一.前 ...
- 如何在mac上安装docker[记录自己在mac上安装docker的经历]
0.引子 最近入手了一台mac笔记本,想在本地安装docker. 1.找安装文档. 文档地址:http://www.widuu.com/chinese_docker/installation/mac. ...
- 记录遭遇挖矿程序kthrotlds的失败处理经历
1 发现问题 在腾讯云上购买了一个centos7的服务器,平时用来练手,偶尔也安装一些程序进行测试,上面安装了mysql和redis,前段时间数据库经常掉线,连不上,到腾讯云后台进行查看,通过服务器实 ...
- ASP.NET MVC学习中记录下使用JavaScript和CSS层叠样式表的经历
首先我是想要在ASP.NET MVC 5.0中使用从jQuery之家下载下来的插件. 在下载了许多我觉得好用方便的插件之后,我在VS2017中新建了一个项目叫MVCTest,然后选择MVC模板,等待自 ...
- 记录面试龙腾简合-java开发工程师经历
/** * ############ * 变强是会掉光头发的!现在的头发还是很茂盛,是该开心还是难过呢.. * ############ * / 总结下近期面试龙腾简合-java开发岗的经历.附上笔试 ...
- 记录一次线上OOM调优经历
现状: k8s 的一个pod 有32G内存,每秒产生新对象的峰值在900Mb ---- 1900Mb(根据jstat计算Eden区获得) . 修改之前的参数 就一个命令行参数是-Xmx31g; 我修改 ...
- OKR之剑(理念篇)02—— OKR布道之旅
作者:vivo互联网平台产品研发团队 1.我们是如何引入的 1.1.企业文化匹配 大概是在2013年底,一些创业者在硅谷深受OKR洗礼,并在自己的公司内小范围运用,以此OKR开始传入中国.而vivo初 ...
- foreach_break 面试记录
版权所有@foreach_break] [博客地址 http://www.cnblogs.com/foreach-break] 可以转载,但必须注明出处并保持博客超链接 背景 自从2013年离开北京后 ...
随机推荐
- 【LGR-060】洛谷10月月赛 I
A - 打字练习 出题:memset0 送分模拟题,按题意模拟即可. 需要注意的是对退格键的判断,如果光标已经在行首,则直接忽略被读入的退格键. B - 小猪佩奇爬树 出题:_QAQ 维护所有相同节点 ...
- 1,[VS入门教程] 使用Visual Studio写c语言 入门与技巧精品文~~~~下载安装篇
Microsoft Visual Studio是微软(俗称巨硬)公司出品的强大IDE(Integrated Development Environment 集成开发环境),功能强大齐全,界面舒服之类的 ...
- 【转】python中numpy模块下的np.clip()的用法
转自:https://blog.csdn.net/HHTNAN/article/details/79799612 Numpy 中clip函数的使用 一维数组 其中a是一个数组,后面两个参数分别表示最小 ...
- 解密httpclient,dbcp,jedis,c3p0,druid,okhttp都在使用的连接池技术
最近在连接池上面栽了个跟头(参见这里),引起我对池技术的强烈关注,这几天总结了一下很多场景都会使用的池技术: 池概念 pool,中文翻译为水池,但是在英文中,还有一种解释是 an organizati ...
- mongodb 系列 ~ mongo 用户验证系列
MongoClientURI connectionString = new MongoClientURI("mongodb://root:****@dds-bp114e3f1fc441342 ...
- Linux命令随手记
随手记录常用的Linux命令. tar 解压. tar -xzvf tar 压缩:tar -czvf .tgz (z是压缩格式,x为解压,v为显示过程,f指定备份文件) tar -zc ...
- linux centos安装教程
linux centos安装教程1 CentOS-7-x86_64-DVD-1511.iso 这个是dvd版本 2 CentOS-7-x86_64-Minimal-1511.iso 这个迷你版 是没有 ...
- 记一次ssh.exec_command(cmd)执行后读取结果为空
# 连接跳板机,执行插标签 def con_tmp_machine(mobile_phoneno, myguid): keyfile = os.path.expanduser('/Users/kusy ...
- Mono 下的 ASP.NET 可以运行在哪些 Web 服务器上?
Mono has an implementation of ASP.NET 2.0, ASP.NET MVC and ASP.NET AJAX. Quick Resources: ASP.NET FA ...
- linux系统shell基础知识入门二
条件判断语句 test或[],这两是等价的.但用[]这种可能看起来更简洁 必须在[符号和检查条件之间留出空格,而test命令之后也总是应该有一个空格 如果要把test 和then 放一行上,那么必须在 ...