马蜂窝张矗:绩效考核是为了激发工作潜力,而不是逃避问题

3 月 23 日,由高端技术领导者社交平台 TGO 鲲鹏会主办的 GTLC 全球技术领导峰会分站首站在北京举行。会上马蜂窝技术副总裁 \u0026amp; TGO 鲲鹏会会员张矗发表了主题为“我在马蜂窝的技术管理实践”的演讲。本文根据其演讲整理而成。

大家好,我是来自马蜂窝的张矗。在座的很多朋友可能都用过我的一些 APP,2012 年我来到马蜂窝进行二次创业,我的整个工作经历都是集中在互联网行业,今天分享内容更多的适合在互联网领域,其他领域的同学可以参考一下。

无法衡量就无法管理

无法衡量就无法管理,这句话是管理学大师——彼得·德鲁克说的。其实后面还有一句话叫,无法管理就无法改进它。今天分享的主题主要是关于技术研发人员在绩效考核上如何进行衡量、量化。

我的分享主要分为三个部分,第一部分,对技术研发人员绩效考核这个事情的难度在哪里;第二部分,在做绩效考核这个事情上要去做量化的绩效考核,以及它的误区;第三部分,是在马蜂窝实践中所总结出来的一些思考。

绩效考核量化,难于上青天

由于程序员工作性质,很多时候工作无法进行量化,那么对于技术管理者来说,做好绩效考核量化就好比上青天。那么想要做好量化,应该从哪几个方面出发呢?

1、创造性工作

首先,我们需要意识到自己所做的工作本质上是创造性工作、脑力劳动。脑力劳动是需要思考的,是需要灵感的,可是你的个人情绪、工作节奏、团队状况都会影响整个团队的产出,你也不知道灵感什么时候能够迸发,创造性的工作在互联网领域其实是需要很多的试错,试错的成本也是很难预估的。

2、黑盒

技术研发的很多工作成果其实是一个黑盒。我们都知道用一些功能性的黑盒进行测试,但你并不知道黑盒后面真正发生了什么。同样是一个列表页,过去可能是排序,但今天可能变成推荐算法,工作量是不可同日而语的。

如果我们想用白盒测试,那么将会给成本带来很大的提升。有一个经常发生的现象,如果你是用外行考核内行的时候,黑盒效应会更加明显。

3、经验量化

经验对互联网行业中的工程师来说,作用是非常巨大的。举个例子,就像外科手术,有经验的大夫一刀下去,有问题的组织会给你清理得干干净净,并且术后对于病人的生活质量是有很大的保障和提升;没有经验的大夫可能会下刀更多,也没有清理干净,如果要让病人接受这样的手术还不如不动手术,这个类比放在代码重构是特别典型的事情。经验这个事情也很复杂,因为它很可能是局部的,你只是对某个领域有经验而已,并且它也是不稳定的,可能这一刀还可以,下一刀未必行。

4、时间管理

时间管理对于工程师的工作产能来说是非常重要的。很多工程师和设计师每天都会因为各种会议、面试,以及需求不断地被打扰,大家都身处其中,谁催得着急一些,那我就优先做谁的工作,只有到夜深人静的时候才能做一些自己真正想做的事情。那么不擅长于掌握时间管理的工程师经常会陷入应激式工作的方法,而不是统筹式工作的方法。这种多任务的工作,一件任务没有完成,另外一件任务接踵而来,会给心里形成一个巨大的压力,本质上是会造成崩溃的,并陷入绝望的状态,工程师应该都很清楚多任务系统切换起来效率影响也是巨大的。

5、协作

工程师很多时候也不是独自孤立地在工作,他需要与产品、设计师、测试、商务人员、销售共同完成互联网作品的呈现。在这个过程中,需要彼此间具有同理心,互相去理解对方,帮助对方弥补思维的缺陷,最终完成这件事情。在这个过程中你很难去比较谁的贡献更大,谁的工作更多,而且这里面还有不少很重要的岗位,以及它们还具有年龄的差异。

现在我们看各种发布会时,会发现不少 90 后的产品经理已经上位了。相信今天来到本次 GTLC 全球技术领导力峰会北京站的参会者大多还是 80 后、85 后的技术管理者,可能有些在场同学已经开始着急如何与 90 后产品经理一块 PK 了,这件事情已经发生了,如果你一味的忧愁可能会让事情变得更加复杂。

技术工作量化的误区有哪些?

1、代码行数

\"\"

大部分朋友都知道在技术工作量化上第一个误区是代码行数。当前我们常常对工程师提出要求——把代码写得精简易读,但有些“经验丰富”的工程师仍然很容易地在代码里加入很多没用的东西,或者是用工具实现代码行数的增加,以此来体现“彰显”工作量。

2、BUG 数量

\"\"

大家会觉得考察 BUG 数量也不是一个好的方法,虽然在实践过程中会不断地提出来用 BUG 数量进行考核,但当你真正用 BUG 数量考核时,通常会形成很不好的引导。因为很可能会出现,工作越多,BUG 数量就会越多的情况,从长期来看这样的引导是无法激励大家爆发出更大的潜力。

3、项目完成时间

\"\"

项目完成时间的考核方法具有一定的迷惑性。我们大多都喜欢把项目提前完成的团队,但项目完成时间通常是由项目执行者来决定的。如果用项目完成时间来考核大家,我们一定会使用保守估计时间的方式,为自己留一段时间缓冲。

4、潜力\u0026gt;产出

2018 年我加入 TGO 鲲鹏会时,在一次分享中,搜狐的高琦老师(高琦,搜狐高级技术经理 \u0026amp; TGO 鲲鹏会会员)讲解燃尽图时,从敏捷的角度看,燃尽图是一条倾向于直线的角度,如果我们倾向于把项目的预估时间和实际预估时间趋于此,用它们作为考核也会很有问题。

总结来看,我们希望考核是激发大家更大的工作潜力,而不是引导大家回归工作或者是逃避问题。

关于马蜂窝技术工作的绩效考核思考

明白了难度和误区,那么这些年里我又产生哪些思考呢?

1、关注目标,而不是任务

我曾经工作的第一家公司也实施过 KPI,但是我觉得是非常失败的。因为它像一场运动,我完全预料不到结果,就这么过去了。

而在上一家公司,我们用到了 O(目的)G(目标)S(策略)M(衡量和检测)的方法,这个方法实施得相当不错,其中最核心的部分是 O 和 G 的制定过程,再到 S 和 M 的拆解,但 OGSM 的方法在互联网圈没有 KPI 和 OKR 这么流行,因此大家了解得也不多。

最近一两年,马蜂窝事业部也开始尝试使用 OKR 的方式进行绩效考核。因为 OKR 大家都比较了解,并且 OKR 的概念已经存在了很长时间,现在又不断地被提出来,去年起百度也是全面开始转向 OKR。

由此,我想到了如何量化我们的绩效指标上相当重要、熟悉的一个话语,关注目标,而不是任务。

\"\"

我们经常说我发布了什么,启动了什么,创建了什么,上线了什么,这些都是任务而不是目标。目标应该是我将某某指标从 X 转变成了 Y,只有这样才是目标,目标应该是可量化的。

举一个内部的例子给大家分享一下,在马蜂窝内部有很多的员工使用的系统,如 OA 系统、企业邮箱、代码管理,以及各个事业部他们自己运营的系统,这些对于员工来说是相当复杂的,需要去记住每个系统的密码,以及我需要在哪一处登录。为了给大家提供一个更加安全、便捷的登录方式,我们计划去打造统一登录的 SCS 系统,并且把所有第三方的系统和我们自己研发的系统的登录都要切换到统一的登录系统中。

一开始,我们团队认为只要完成系统研发任务就完成了,可我们的目标并不是去研发一套 SCS 系统,而是要将没有使用 SCS 的系统从 50 个减少为 3 个,以此达到安全和便捷的目的,但是我们一开始并没有注意从目标出发。在完成研发任务的过程中,团队也解决了很多的问题,包括一开始没有想到的场景,以及思维转化的过程。渐渐地,研发统一登录的 SCS 系统变得不是重点了,而变成我们要去切换某个系统,推进第三方研发,这样的转化使得我们的工作成果变得更有实际意义。

马蜂窝对于团队的要求是,不光要求你会写代码,还需要具备沟通协调的能力,以及规范的能力。我们可以看看业务团队,或者支持业务团队的研发团队,他们的指标需要去确定,业务团队的目标就是整个团队的目标,业务团队的目标就应该成为支撑这个业务团队和研发团队的主要目标。

有一种声音会说业务团队的目标完成好或者不好,有些时候跟研发一点关系都没有,这会让我们形成阶段性的短视现象,我们更应该从长期来看它是否有更公平和有效的方法。但短期误判也是倒逼我们审视业务团队和目标很重要的方法,因为团队是需要长期投资才能看到价值。比如说管理团队,我们也需要帮助他们找到一些可量化的目标,这个可量化的目标包括系统的稳定性标准、性能维持标准,员工满意度标准等。

2、平衡

主要的方法确定了我们也需要加入一些平衡的因素来解决我们实际操作中的困难,那么我们该如何平衡呢?

\"\"

只关注业务的目标确实会形成短期的现象,如团队贡献、考勤,但这两个目标都具备一个特点,它是一种阶段性的状态,它会阶段性的好或者是不好。

如团队贡献,你这个月在团队内部做了一个分享,你可能就拿到团队贡献;你帮助这个团队组织了一次团建,你也具备这样的团队贡献。再比如,考勤并不是让大家给自己的兄弟们上下班打卡,它可以带着主观的因素,你可以观察谁经常迟到早退,这是你能感受到的主观印象,你也会感受到有些人天天为了项目加班到很晚。这个过程你还需要识别有一些同学他是天天加班的,是为了混一个晚餐或者是打车费,这个鉴别还是比较容易的。

找平衡的过程也是把我们管理者的主观判断落实在客观标准的过程,团队中我们都会喜欢在群里积极回答别人的问题,乐于给大家做分享的同学,他们对团队的氛围贡献是非常有帮助的,因此更应该在团队贡献上拿到更多的分数。

有的同学会说把个人成长、学习能力、解决问题的能力这样的因素纳入到绩效考核的指标上来,但是我认为这是不妥的。个人成长这个事情很难衡量,这个月我看了一本书叫《成长》,在书中作者提到,他将能力范畴指标,与成绩晋升和基础薪资挂钩会显得更有效一些。

3、层级区分

当你跟团队成员设计目标的时候,一定要关注他当前所在的层级。

\"\"

初级工程师,按时完成工作、写好代码、完成测试,以及做好文档的编撰就是他的目标,那你要从这个方向上想好怎么给他量化;

稍微有一些年限的工程师,需要做好架构设计、规避项目的风险,那么你可能需要从这些方面给他做好设计;

更资深的工程师或者是技术经理位,他需要做到判断需求的轻重缓急,做好项目的安排,以及项目上线后的跟踪和整个状态的反馈。

总之,对于越是高级的人员,他的绩效考核越是要跟业务 KPI 关联起来,当给他设计目标的时,一定要想他的目标对他的上级、部门、公司、用户和社会的意义和价值所在。

现在我们能看见有很多工程师,他的专业技能已经达到了高级的水平,但是在理解上级目标,确定自己的目标或者是行动还没跟上。“巨婴”就是指,需要哄着才能干活的程序员。比如我们上线一个新的功能,大家在上线前也都很努力,为了完成任务,加班熬夜终于在深夜把这个项目推上线,但上线后很多工程师没有对新的数据表现和用户行为做跟踪。现在大家的分工越来越细,很多这样的活都是产品经理或者是公司帮助你,那么这样的工程师必然沦为螺丝钉。

我们只有不断拓宽自己的眼界,提升自己的视野,才能使我们不断从初级向高级进化。

4、评估周期

最后一点思考就是对于评估周期的思考。我们都很希望上级能告诉我,未来一个季度该做些什么工作。举个例子,比如某个团队会支持很多客户的工作,但是他只知道我当前有这样的事,这个月差不多能干完,接下来两个月该干什么还不太确定。这时,我给大家的建议是不妨把考核的周期缩短,按月来考核。考核的内容包括这个月实际做的工作,实际支持的客户的成果等。或者,你也可以对下个月的挖掘作为考核指标,不超过三个月进行一次考核。在互联网领域里,三个月一次考核我认为也是上限,当你对未来不是那么确定时,不妨缩短考核周期。

总体来看,想要通过业务量化研发人员的工作,我们首先是完成思维转化,这样的转化对那些具有综合能力的研发人员,或综合能力比较强的研发人员更有利的;对于管理者来说,你要思考如何用其他的方法来确保搞钻研的科学家们不会被亏待,以此确保你的长期利益和短期利益的平衡,最终才能达到长期利益的最大化。

最后,我们再回到关注目标这个词,如果大家在关注目标,实践关注目标这个事情碰到一些困难时,我也给大家提一个建议,你可以多想想老板都在想什么,谢谢大家。

嘉宾介绍:
张矗,马蜂窝技术副总裁,TGO 鲲鹏会会员,拥有 10 多年的互联网技术和管理经验。2000 年加入新浪网;2007 年作为联合创始人参与创建开心网;2012 年加入马蜂窝旅游网,担任技术副总裁,并拥有北京理工大学工学硕士学位。


TGO鲲鹏会是极客邦科技旗下高端技术人聚集和交流的组织,旨在组建全球最具影响力的科技领导者社交网络,线上线下相结合,为会员提供专享服务。目前,TGO鲲鹏会已在北京、上海、杭州、广州、深圳、成都、硅谷、台湾、南京、厦门、武汉、苏州十二个城市设立分会。现在全球拥有在册会员 800+ 名,60% 为 CTO、技术 VP、技术合伙人。

会员覆盖了 BATJ 等互联网巨头公司技术领导者,同时,阿里巴巴王坚博士、同程艺龙技术委员会主任张海龙、苏宁易购 IT 总部执行副总裁乔新亮已经受邀,成为 TGO 鲲鹏会荣誉导师。

如果你想和这些优秀的科技领导者们一起前行,欢迎参加「GTLC 全球技术领导力峰会 」。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fiddler抓包1-抓小程序https包

抓小程序包和抓app包是一样的操作方法;安卓用fiddler,ios用charles; 一、环境准备 1.电脑已装最新版fiddler 2.手机和电脑在同一局域网 二、fiddler设置 1.fiddler>Tools>Options>HTTPS 勾选Capture HTTPS CONNECTs 及下边的子项&am…

冲刺第七天

今天任务进行情况:今天我们将我们的游戏导到界面形成可用的应用程序,并且进行调试与运行,让同学试玩,发现了困难并加以改正。 遇到的困难及解决方法: 运行时发现游戏界面中UI的button和image的位置会随分辨率的不同而发…

Node.js Streams:你需要知道的一切

Node.js Streams:你需要知道的一切 图像来源 Node.js流以难以使用而闻名,甚至更难理解。好吧,我有个好消息 - 不再是这样了。 多年来,开发人员在那里创建了许多软件包,其唯一目的是简化流程。但在本文中,我…

shell之引号嵌套引号大全

万恶的引号 这个能看懂你就出师了! 转载于:https://www.cnblogs.com/theodoric008/p/10000480.html

oracle表分区详解

oracle表分区详解 从以下几个方面来整理关于分区表的概念及操作: 表空间及分区表的概念表分区的具体作用表分区的优缺点表分区的几种类型及操作方法对表分区的维护性操作 1.表空间及分区表的概念 表空间: 是一个或多个数据文件的集合,所有的数据对象都存…

如果您不将Docker用于数据科学项目,那么您将生活在1985年

重点 (Top highlight)One of the hardest problems that new programmers face is understanding the concept of an ‘environment’. An environment is what you could say, the system that you code within. In principal it sounds easy, but later on in your career yo…

jmeter对oracle压力测试

下载Oracle的jdbc数据库驱动包,注意Oracle数据库的版本,这里使用的是:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production; 一般数据库的驱动包文件在安装路径下:D:\oracle\product\10.2.…

docker部署flask_使用Docker,GCP Cloud Run和Flask部署Scikit-Learn NLP模型

docker部署flaskA brief guide to building an app to serve a natural language processing model, containerizing it and deploying it.构建用于服务自然语言处理模型,将其容器化和部署的应用程序的简要指南。 By: Edward Krueger and Douglas Franklin.作者&am…

SQL的执行计划

SQL的执行计划实际代表了目标SQL在Oracle数据库内部的具体执行步骤,作为调优,只有知道了优化器选择的执行计划是否为当前情形下最优的执行计划,才能够知道下一步往什么方向。 执行计划的定义:执行目标SQL的所有步骤的组合。 我们首…

[转帖]USB-C和Thunderbolt 3连接线你搞懂了吗?---没搞明白.

USB-C和Thunderbolt 3连接线你搞懂了吗? 2018年11月25日 07:30 6318 次阅读 稿源:威锋网 3 条评论按照计算行业的风潮,USB Type-C 将会是下一代主流的接口。不过,在过去两年时间里,关于 USB-C、Thunderbolt 3、USB 3.1…

大数据技术 学习之旅_为什么聚焦是您数据科学之旅的关键

大数据技术 学习之旅David Robinson, a data scientist, has said the following quotes:数据科学家David Robinson曾说过以下话: “When you’ve written the same code 3 times, write a function.”“当您编写了3次相同的代码时,请编写一个函数。” …

无监督学习 k-means_无监督学习-第4部分

无监督学习 k-means有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU’s YouTube Lecture “Deep Learning”. This is a full transcript of the lecture video & matching slides. We hope, you enjoy this as much as …

vCenter 升级错误 VCSServiceManager 1603

近日,看到了VMware发布的vCenter 6.7 Update 1b的更新消息。其中有一条比较震撼。有误删所有VM的概率,这种BUG谁也承受不起。Removing a virtual machine folder from the inventory by using the vSphere Client might delete all virtual machinesIn t…

day28 socketserver

1. socketserver 多线程用的 例 import socket import timeclientsocket.socket() client.connect(("127.0.0.1",9000))while 1:cmdinput("请输入指令")client.send(cmd.encode("utf-8"))from_server_msgclient.recv(1024).decode("utf…

车牌识别思路

本文源自我之前花了2天时间做的一个简单的车牌识别系统。那个项目,时间太紧,样本也有限,达不到对方要求的95%识别率(主要对于车牌来说,D,0,O,I,1等等太相似了。然后,汉字…

深度学习算法原理_用于对象检测的深度学习算法的基本原理

深度学习算法原理You just got a new drone and you want it to be super smart! Maybe it should detect whether workers are properly wearing their helmets or how big the cracks on a factory rooftop are.您刚刚拥有一架新无人机,并希望它变得超级聪明&…

【python】numpy库linspace相同间隔采样 详解

linspace可以用来实现相同间隔的采样; numpy.linspace(start,stop,num50,endpointTrue,retstepFalse, dtypeNone) 返回num均匀分布的样本,在[start, stop]。 Parameters(参数): start : scalar(标量) The starting value of the sequence(序列的起始点)…

Spring整合JMS——基于ActiveMQ实现(一)

Spring整合JMS——基于ActiveMQ实现(一) 1.1 JMS简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的…

CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置

Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。 准备文件 从 http://archive.cloudera.com/cdh5/parcels/中下载CDH5.14.0的相关文件 把CDH5需要的安装文件放到主节点上,新建目录为/opt/cloudera/parcel-repo把我们之前下载的…

node.js安装部署测试

(一)安装配置: 1:从nodejs.org下载需要的版本 2:直接安装,默认设置 ,默认安装在c:\program files\nodejs下。 3:更改npm安装模块的默认目录 (默认目录在安装目录下的node…