java开发kpi考核_如何量化考核技术人的KPI?
对技术人来说,技术是成长的“核心”。然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象。
针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能与大家一起探讨交流。
一、为什么需要技术KPI?
在业务技术团队,有一个不好的趋势就是团队越来越业务,越来越没有技术味道。每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目......
唯独少被谈及的是技术本身。此处并不是说业务不重要,而是说理解业务和把控业务需求是技术人员的Base,而不是全部。
1、将就的代价
这种技术味道的缺失对技术团队来说是非常可惜的,也不利于技术人员的成长和发展。因为很难想象一个没有技术追求的团队能开发出一个健壮的、可维护性好、可扩展性好的系统。相反,这种业务代码的堆砌,从短期看也许是“较快”实现了业务需求,但是从长远来看,这种烂系统的增加会极大阻碍业务的发展,形成一个个的黑洞应用,而工程师被裹挟在业务需求和烂系统之间,疲于应对,心力交瘁。
这种将就将导致系统腐化,技术债越垒越高,像肿瘤一样消耗你所有的能量。
我不是药神,只能尝试开出一方——那就是在不影响业务的情况下(特别是相对稳定的业务,请拒绝业务方的时间倒排),Tech Story应该和User Story有同等的重要性,要把重构优化提到和业务需求相等的优先级去处理。我们不仅要对业务需求负责,我们更要对应用的质量,系统的可维护性负责。
因为我们技术人员是应用的父母(有些是亲生父母,有些是养父母),你不照顾它们,不治理它们,它们就会生病,你忍心看到这样的局面吗?
2、技术管理者(TL)的失职
造成这种局面,我们的技术管理者,我们的TL要负有主要责任。如果一个TL从来不关注系统架构和设计,从来不写Code,对技术没有热情也不学习,甚至其本身技术就很烂,那么在这个TL领导下的技术团队,又怎么会有技术味道,团队成员又怎么能进步和成长?
现在很多的TL每天都混迹在各种会议上,很忙,做着各种沟通协调的事情,可是我们真的需要这么多的会议、这么多的沟通吗?
如果沟通的结果只是做业务和PD对团队的传话筒,没有业务创新,没有用技术和数据系统化的解决业务问题,没有在技术方向和架构上给团队指引,没能切实的帮助系统优化、团队提效,请问这样的沟通给业务带来了什么价值,给团队带来了什么价值?还是沉下心来,多看看书,哪怕非技术的书也好。多写写代码,哪怕跟业务无关的代码也好。
所以,我们要回归技术本身。我们不需要这么多“高高在上”、“指点江山”的技术Manager,而是需要能真正深入到系统里面,深入到代码细节,给团队带来实实在在改变的技术Leader。
二、技术KPI的量化
提升技术氛围,打造工程师文化不能仅停留在口头上,可搭配一定的强制手段,比如和技术人员的利益绑定。这种绑定就需要我们能对技术贡献进行一个相对公平的分解和量化。
1、技术KPI
基于此,我将技术人员的KPI分解为业务贡献、技术贡献和团队贡献三个大的部分,其详细内容如下:
业务贡献:包括需求把控、业务项目和业务创新。
技术贡献:包括设计重构、技术影响力、Code Review、创新提效和代码质量。
团队贡献:包括招聘、新人培养和团队氛围。
那么技术贡献中的这几个维度要怎么理解呢,用我们工作中的一些案例来描述一下吧。
应用质量:
你负责或者共同负责的应用质量分(可以从代码重复率,圈复杂度,分层合理性等维度考察)。
你做了哪些提升应用质量分的工作。
设计重构:
我在客户通项目中,对CRM销售域进行了领域建模和设计,并且抽象合理。
我发现Infrastructure中Package分类不合理,进行了重新设计并重构完成。
我发现现在系统中错误码比较混乱,我梳理制定了新的错误码规范,并完成了代码重构。
技术影响力:
在团队内分享10篇干货,点赞数1000。
团队分享策略模式,得到同学好评 。
我接受邀请,在行业会议上分享了SOFA架构。
Code Review:
我在Review某某代码的时候发现,可能存在线程不安全的隐患。
我在Review某某代码的时候发现,存在设计不合理的现象,此处使用责任链可以很优雅地解决问题,并具备一定的扩展性。
创新提效:
我发现本地测试启动PandoraBoot比较浪费时间,所以写了一个TestContainer大大提升了自测效率。
我发现有一些Boilerplate代码不需要写,所以对乐观锁、分页进行了Annotation支持,简化了代码。
在某个项目或者技术点上面,我产出了一篇专利:基于领域模型的业务配置化。
代码质量:
提测后的Bug数,线上故障数(系统可以提取,不用自己填写)。
我完善了某某模块的单元测试,并多次在自动化回归中发现问题。
2、KPI答疑
对于上面的KPI大部分的技术同学是表示认可的,当然质疑的声音也很多,我这里挑一些典型的回答一下。
Q1:技术KPI的提出,会不会导致技术同学只关注技术不做业务项目了?
A1:关于绩效,肯定是综合看业务贡献,技术贡献和团队贡献。但是作为一个重要参考和风向标,技术KPI是有积极意义的。
Q2: 您说的设计重构怎么量化?
A2: 这个很难用系统标准化,更多的还是要依赖TL的专业能力进行评分,但即使是这样,也比以前什么都没有,完全黑盒要强。至少在传达一个信息,我们鼓励好的设计,鼓励不断地重构优化。
Q3:我们现在的业务需求已经在堆积,一线同学根本没有时间去做重构优化。
A3:这个问题开篇其实已经说过了,你是要不断地裹挟在业务需求和烂代码里面呢,还是花时间Improve,然后更快地支持业务。这个权衡应该不难做,关键是要看决心和能力。对于很多业务,我没有看到推迟几天上线就会影响业务格局的业务场景,所以作为技术团队,我们就应该在User Story之外,加上我们的Technical Story,把完成业务需求和系统重构都当成我们的核心任务。
关于技术童鞋的量化考核,你有哪些好的建议或想法,欢迎在留言区交流,一起探讨。
java开发kpi考核_如何量化考核技术人的KPI?相关推荐
- Java开发研究生薪资_转行学什么技术最赚钱?选择java,你绝对不会后悔
学Java的人现在确实很多,一般选择入行做IT做编程开发的人,基本都把Java作为首选语言. 为什么说选择java是比较好的呢,主要是从以下几个方面来看的: 1.高频率使用 java最为当今最火爆的编 ...
- 如何量化考核技术人的 KPI?
http://www.sohu.com/a/248889691_629652 为什么需要技术KPI? 在业务技术团队,有一个不好的趋势就是团队越来越业务,越来越没有技术味道.每个人都在谈业务,技术大会 ...
- 阿里工程师修养之:如何量化考核技术人的 KPI ?
量化考核技术人的 KPI 前言 为什么需要技术 KPI ? 将就的代价 技术管理者者(TL)的失职 技术 KPI 的量化 技术 KPI KPI答疑 前言 对技术人来说,技术是成长的"核心&q ...
- 如何量化考核技术人的KPI?
对技术人来说,技术是成长的"核心".然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象. 针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能 ...
- java开发学历要求_学Java开发有学历限制要求吗?
原标题:学Java开发有学历限制要求吗? 学习Java的热潮越来越高涨,除了转行而来的人,很多刚毕业的学生也加入到其中.很多人都觉得学习Java需要有一个高学历作为基础,一些专科生在学习之前会犹豫,他 ...
- 学java 开发会掉头_作为一个全新的开发人员,我会学到什么
学java 开发会掉头 重点 (Top highlight) It's been five years since I learned to code and changed careers. 自从我 ...
- 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图
初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...
- java开发面试复试_面试java开发,面试官会问哪些问题?
作为一个当初从学校刚毕业找工作而被面试饱经摧残的小白,到现在的java开发从业人员,中间不可谓之不艰辛,当初的屡屡碰壁,工作受挫,一直到现在我仍然认为那是我人生中不可或缺的一段经历. 关于面试的艰辛这 ...
- java开发cs项目_本硕机械转行cs(java后端开发)上岸之路
秋招转眼就结束了,将近一年的努力,总算给了自己一个比较满意的结果.写下这篇贴子记录自己的转行以及秋招经历. 其实在转行初期,就无数次幻想着秋招结束,然后写一篇长长的经验贴的那种满足感.下面我尽量把我知 ...
- java 开发人员工具_每个Java开发人员都应该知道的10个基本工具
java 开发人员工具 大家好,我们已经到了2019年的第二个月,我相信你们所有人都已经制定了关于2019年学习以及如何实现这些目标的目标. 我一直在撰写一系列文章,为您提供一些知识,使您可以学习和改 ...
最新文章
- Python独领风骚,AI热情有所降温|2020 年技术趋势解读
- 谷歌程序员犯低级错误?少打一个字符引发重大 Bug,致大量 Chromebook 无法解锁...
- 基于windows 2012部署oracle 12.1.0.2 rac历险记
- git 在 A 项目中引用 B 项目
- cnetos6,centos7添加新网卡,系统不识别的解决办法
- 第八章:软件包的安装与管理
- Head First设计模式读书笔记五 第六章 命令模式(单例略过)
- oracle12图书馆,Oracle图书馆管理系统
- tensorflow学习(一)——有关tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别
- 通过rsync备份静态文件
- 坐标旋转次序 欧拉角定义 左乘 右乘
- 个人整理的免费的Bootstrap模板
- 盘点世界十大软件外包公司排名是哪些公司
- ئاندرويىد تېلېفۇندىكى ئۇيغۇرچە
- 关于Java基础部分知识的综合应用之成员调度系统的项目
- “酸甜苦辣”说华育(我一个学员的学习心得)
- 制作 .Img 镜像文件
- 做ppt课件直播(课堂直播)使用云课堂直播软件的教程
- 刷机总是出现missed hello_金立-GN3002L 无法开机,怎么能解锁刷机呢?
- 黑苹果EFI合集,拥有1000多种机型,总有一款适合你,不断更新中!
热门文章
- java生成图表_java实现将数据生成图表至excel导出
- 水箱液位计算机控制系统设计,水箱水位PLC自动控制系统的设计_吕宁.pdf
- 影响科学圈的那些计算机代码
- unreal ue4 虚幻 websocket Server websocket服务 插件使用及下载 非官方自己写的
- 【语义分割】--SegNet理解
- JavaScript基础之语法
- 窄带包络解调python实现_对数据包络分析法DEA的再理解,以及python 实现
- 2022-09-13 mysql列存储引擎-POC-查询数据错误追踪
- 用通俗的语言解释贝叶斯公式
- lnmp一键安装包linux,lnmp一键安装包下载地址