研发考核难的本质是因为这三个特点

大家好,我是Z哥。我坦白,这篇是早就写好的库存文章,包括上周的那篇也是。ef59bccee03913e1b9b025c9ec8f316e.png

原因是最近跳槽了,到新公司忙得飞起,都没时间写文章。还好我之前未雨绸缪准备了几篇提前写好的文章作为余量~

我尽量能保持不断更,如果实在顶不住就周五的时候给大家请假哈。

好了,回到这次聊的正题。

研发考核难是整个软件开发领域众所周知的问题,甚至可以说是跨世纪的难题了(上个世纪开始至今未被有效解决)。

近期我对这个问题有了一些新的思考,在这里和大家分享交流一下。

很多人觉得因为研发考核很难考,所以索性就不考了。这个就有点因噎废食了。

首先我们要搞清楚,考核存在的意义是什么?

我的理解是:为了达成团队的共同目标。为了更好的管理团队、驱动团队力往一处使。

但是管理大师德鲁克又说过:

你如果无法度量它,就无法管理它。

德鲁克

这句话既然能被各个时代的管理者所追捧,存在了几十年,自然有它的道理。

所以,不管我们是不是为了考核,都得找到度量的方式方法。

有些团队的确找到了不少度量指标,但是大多偏向技术层面,包括我们团队之前也是如此。

这些指标一旦在具体实施之后往往发现效果甚至不如没有考核的时候。这个背后的原因也有很多文章提到过,就是那些指标不适合考核。

也有一些人经历了上面这个阶段后觉得研发的考核不好做,不好量化。实则是因为找不到那种直击要害的关键指标。

从这个问题的本质上来说,大家之所以觉得研发考核难本质是由于研发工作的三个特点导致的。

01  无法标准化

这里的无法标准化并不只是难以度量,而是说同样完成一个任务,不同的人会有不同的做法,最终的结果也可能会差别很大。

比如,同一个任务,有的人做了 5 天,有的人做了 10 天;有的人喜欢花很多时间在前期的设计阶段,有的人则会花更多时间在后期的自测上。但是你也不能说一定是谁的方式更好。

02  工作透明度低

实现同样一个功能,如果有合理的代码封装,可能只要 100 行代码。但是如果不花时间去构思封装,那么可能是 500 行,甚至是 1000 行。

此时,如果没有第三者进行 codereview 的话,甚至可能会觉得写 1000 行代码的人产出更大。

03  工作时间的碎片化

不得不说,大多数人的工作时间其实大部分时候很难完全由自己掌控,一会有人找你问个事,一会需要参加一个会,一会又来个电话接一下。

这些被动的意外之事都会使得做度量这件事变得困难,甚至还会将原来的计划打乱,导致某些考核指标出现失真。

Z哥觉得研发考核指标怎么定这件事应该分为两个问题去看。

  • 能够度量的指标有哪些?

  • 怎么考核?

这两个问题之间其实没有必然联系,如果老想着一箭双雕,一次解决两个问题,就会陷入前面提到的困境中。

我认为大部分的指标是用来作为帮助决策的信息源,而用于考核的指标不一定要多,要有业务价值。具体我来展开说说。

/01  能够度量的指标有哪些/

相信有不少指标已经马上在你的脑海中跳出来了:

  • 代码行数

  • 工时

  • bug 数

  • ……

很多讲考核的文章都会对这些指标嗤之以鼻,因为这些指标不适合用来考核,这是针对流水线工作性质的考核产物。这点不否认。

但是也不能否认,这些简单的指标中也蕴含着有价值的信息。

因此在我的理念里,认为不应该主动放弃任何能被度量的指标。正如前面所说,研发工作本身就具有无法标准化、工作透明度低、工作时间的碎片化的特点。我们好不容易找到一些指标能够帮助我们更清楚的认识我们的工作做得到底如何,为什么不要呢?

不适合考核不等于我们可以忽略他们。这也是我认为要将这事分为「能够度量的指标有哪些?」和「怎么考核?」的原因。

除了这些大家都知道的指标,还有很多指标可以被度量。它们主要分为两个维度:过程指标和结果指标。

常见的过程指标有:需求响应周期、发布前置时间、交付吞吐量、线上问题平均解决时长等;结果指标有:日均新增 bug 数,日均 bug 库存数,线上问题数量等。

如果你所在的团队对工程效率比较重视,相信还有不少指标可以被度量出来。

这些指标有什么用呢,我们需要每天观察他们的变化,便于及时发现团队里正在发生的变化是否符合预期。比如,

  • 最近并没有太多并行开发的版本,为什么平均交付时间反而变长了?是不是不够敏捷?

  • 比如最近生产环境的 bug 数明显变多了,是不是质量团队出了什么状况?

  • ……

/02  怎么考核?/

用上面列出的这些指标来考核吗?自然不是。

Z哥认为考核还是得从业务下手,要想办法找到与技术有一定关系的业务指标,比如,DAU、用户平均停留时长等等。

可能很多人第一眼会觉得说,这些指标有很大比例是由业务决定的,技术在其中起不了什么作用。

其实并不然,你想象一下。如果我们的拉新用户承接页的稳定性不好,或者核心业务链路经常出错,这对 DAU 和用户平均停留时长必然会造成不好的影响。所以,业务指标真的与技术无关吗?其实并不然。

怎么落地为考核呢?我的思路是建立在两个逻辑之上的:

  1. 业务指标的移动平均值在一段时间里是一条趋势向上或向下的曲线。平均范围越长,曲线越平滑。

  2. 技术在短期不能显著提高业务指标,但可以降低业务指标。

基于这两个逻辑在落地为考核的时候有两种方案。

一种是长周期考核,比如每半年或者每年一次的 OKR 考核。这种考核直接用指标在开始时和结束时的差值即可,大多数的偶发性事件直接被平滑掉了。

另一种是每个月都要进行的短期考核。这种考核建议使用环比变化作为依据。比如比上个月提升了就奖励,降低了就惩罚,这样从长期来看,偶发性事件带来的影响也被平滑掉了。当然这里的奖励和惩罚不一定是物质形式的,也可以是精神形式。

可能有的人会觉得,这样的考核如果在业务快速发展期,不是躺赚吗?

是的没错,只要技术能支撑快速发展的业务,不拖业务的后腿,我认为就应该奖励。至于是不是躺赚,关键还是看选择的业务指标以及如何制定具体的奖惩尺度。

今天就聊这么多吧。

研发考核这事和研发工作一样,没有「Sliver Bullet」,我今天和大家聊的也只是我的一家之言,欢迎大家一起探讨。

本质上,我们也是在讨论,如何更好地向非技术人员展示我们技术人工作成果的好坏。

好了,总结一下。

这篇呢,Z哥和你分享了我对研发考核这件事的看法。

首先,我认为考核还是要考的,不考核肯定不行。研发工作性质的三个特点导致考核指标很难定。

  1. 无法标准化

  2. 工作透明度低

  3. 工作时间的碎片化

所以,我的建议是找指标管找指标,考核管考核,两件事分开看。

我们要尽可能多的收集研发过程和衡量结果的指标,它们不一定用来考核,但可以用来及时发现团队中的潜在问题。

关于考核指标还是建议使用业务相关的指标,从中挑选有一定技术影响程度的。也分享了两种落地方案,分别是长期用 OKR,短期用环比来考核。

希望对你有所启发。抛砖引玉,欢迎在留言区分享你的观点。

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

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

相关文章

剑指offer-面试题13.在O(1)时间删除链表节点

题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 链表节点与函数的定义如下。 通常我们删除某个节点都是从头开始遍历到需要删除节点的前一个节点。 然后使得该节点的next指向删除节点的next即可,这样看来删除一个节点 的复杂度为O(n)…

为什么不能一次走遍哥尼斯堡的7座桥

全世界只有3.14 % 的人关注了爆炸吧知识数学的快乐到底有多简单今天,8岁表妹问了一个问题:看到这种类似11?的问题,超模君几乎不用思考就已经知道答案。但为了体现让表妹系统的理解知识,所以我决定......发生在哥尼斯堡…

官宣,11月8号,.NET6+64位VS璀璨面世!

12号,.NET6 RC2发布,13号,VS2022 RC版发布,11月8号,.NET6VS2022C#10 正式版将同时发布,.NET开发将步入全新篇章,各种新语法、新框架、新技术都如约而至,令人期待!然而&am…

Python-技巧

0.推荐的扩展 requests urilib的替代品 BeautifulSoup4 解析HTML代码 rq 任务队列 selenium 自动化测试工具,模拟浏览器 1.sys.modules, 根据已加载的模块创建对象, 其中 page 为类名 if hasattr(sys.modules[__name__], page):setattr(self, page, getattr(sys.mod…

暴击!被初中生碾压智商!这份被国家数学集训队采用的初中奥数资料究竟有多厉害?...

全世界只有3.14 % 的人关注了爆炸吧知识提高版,来了!这一份大部分人都没有见过的资料。它是我国出版的第一套数学竞赛的系列图书。前段时间,超模君给大家分享了这一系列的初中版奥数基础篇,得到了大家热烈的反响。于是&#xff0c…

COSCon21 开源文化 (GL) 论坛介绍

“ 点击蓝字 / 关注我们 ”| 作者、编辑:袁睿斌| 设计:朱亿钦、宋传琪第六届中国开源年会 (COSCon21) 将于 10月30-31日 由开源社举办。本次年会重新回归线下,让小伙伴们的面基成为了可能。届时,北京、上海、深圳、成都、珠海、大…

android wifi

<!-- 以下是使用wifi访问网络所需要的权限 --> <uses-permission android:name"android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name"android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:n…

1.5.2 在IIS上配置ASP.NET(转)

1.5.2 在IIS上配置ASP.NET 在服务器上部署ASP.NET网站时&#xff0c;需要.NET的运行环境.NET Framework。.NET Framework类似于Java的JDK&#xff0c;包含有.NET程序运行环境和命令行编译工具。如果服务器上没有安装.NET Framework&#xff0c;这就需要从微软网站下载&#xf…

51单片机外部地址c语言,cx51与c语言对单片机内部和外部资源变量和地址的定义是否兼容?为什么...

span namewhlm idwhlm原因:classpath没有设置好系统变量->新建->变量名&#xff1a;CLASSPATH 变量值&#xff1a;.;%JAVA_HOME%\lib(CLASSPATH中有一英文句号“.”后跟一个分号&#xff0c;表示当前路径的意思)在Classpath里面你可以直接指定一个包名&#xff0c;比如你…

你和女朋友的婚后老年生活!

1 厉害了&#xff0c;连扇子都是爱你的形状~2 一个漂亮的后空翻3 长得大了不起啊&#xff01;4 哈哈哈哈哈哈哈是这样5 哈哈哈哈哈防不胜防&#xff01;6 教科书般的标准答案你点的每个赞&#xff0c;我都认真当成了喜欢

实现一个基于 IConfiguration 的低配版 FeatureFlag

实现一个基于 IConfiguration 的低配版 FeatureFlagIntro在我们的应用中&#xff0c;可能有一些配置开关的需求&#xff0c;某些功能是否启用使用一个配置开关&#xff0c;用的时候就打开&#xff0c;不用的时候就关掉&#xff0c;于是基于 .NET Core 的里配置体系写了一个简单…

slider节点透明背景_【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)...

一、涉及知识点场景切换按钮事件监听节点事件监听节点数组循环中闭包的应用动态更换sprite图片定时器预制资源二、步骤2.1 准备工作首先&#xff0c;我们要新建一个空白工程&#xff0c;并在资源管理器中新建几个文件夹​在这些文件夹中&#xff0c;我们用来存放不同的资源&…

《奠基计算机网络》清华大学出版社 之 IPv6和IPv4共存技术

2011年8月 ISATAP隧道 ISATAP &#xff08; Intra-Site Automatic Tunnel Addressing Protocol&#xff0c;站间自动隧道寻址协议&#xff09;是一种地址分配和主机到主机、主机到路由器和路由器到主机的自动隧道技术.它为IPv6主机之间提供了跨越IPv4内部网络的单播IPv6连通性。…

霍金竟然亲口承认自己是个赌徒!明明失败了不止一次,“菜鸡”却成了神话!...

全世界只有3.14 % 的人关注了爆炸吧知识科学“赌徒”在线发牌 一直以来他像一个深渊的幽灵&#xff0c;似乎无处不在他影响了无数的天体&#xff0c;却又无影无踪他永远只停留在人们的推断真实的图像&#xff0c;交错的数据他究竟是神仙的化身&#xff0c;还是地狱的使者没人…

小波变换原理_小波变换的知识,转载的

一、绘制原理&#xff1a;需要用到的小波工具箱中的三个函数cwt()&#xff0c;centfrq()&#xff0c;scal2frq()。具体参数及用途介绍如下&#xff1a;&#xff08;1&#xff09;COEFS cwt(S,SCALES,wname)该函数实现连续小波变换&#xff0c;其中S为输入信号&#xff0c;SCAL…

不让伤害再次发生

不让伤害再次发生我是英特尔成都工厂的第二批员工,在上海工厂学习培训之后,于2005 年加入到成都封装测试工厂的启动和生产工作中,到2010 年,我已经在成都工厂工作了五年半。在这五年半时间里,我始终在封装工程部任工程师,负责站点的设备、工艺和质量,确保站点按照相关计划和流程…

撩妹学会这一招,就没有人能拒绝你!

1 为了恋爱学会了 PS&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 二十不惑&#xff0c;手很迷惑▼3 怀疑家里的猫是「人变的」&#xff08;via.七七和铲屎官&#xff09;▼4 云南人有多喜欢吃菌子&#xff08;via.车夫&#xff09;&#xff08;请勿模仿&…

Javascript:阻止浏览器默认右键事件,并显示定制内容

在逛一些知名图片社区的时候&#xff0c;遇到自己心怡的图片&#xff0c;想要右键另存的时候&#xff0c;默认的浏览器菜单不见了&#xff0c;却出现了如&#xff1a;[©kevin版权所有]之类的信息&#xff1b; 今天在看Javascript事件默认行为相关的知识&#xff0c;所以&a…

Dapr + .NET 实战(十三)跨语言开发

欢迎大家参加4小时Dapr.NET 5的实战课程课程链接 https://ke.qq.com/course/4000292?tuin1271860f因为基于Dapr的服务架构是不限语言的&#xff0c;我们来看看Dapr的跨语言开发。我们使用golang&#xff0c;python&#xff0c;.NET来实现跨语言的服务调用&#xff0c;拓扑…

飞机上的排泄物都去哪里了?直接冲下来?

全世界只有3.14 % 的人关注了爆炸吧知识火车想必大家都知道&#xff0c;上完厕所&#xff0c;来也冲冲&#xff0c;去也冲冲&#xff0c;直接拥抱大地&#xff01;所以进站都会锁厕所门~那么飞机上也是这样吗&#xff1f;飞机上早期的厕所 早期&#xff0c;飞机上的马桶和普通…