对技术人来说,技术是成长的“核心”。然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象。

针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能与大家一起探讨交流。

一、为什么需要技术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?相关推荐

  1. Java开发研究生薪资_转行学什么技术最赚钱?选择java,你绝对不会后悔

    学Java的人现在确实很多,一般选择入行做IT做编程开发的人,基本都把Java作为首选语言. 为什么说选择java是比较好的呢,主要是从以下几个方面来看的: 1.高频率使用 java最为当今最火爆的编 ...

  2. 如何量化考核技术人的 KPI?

    http://www.sohu.com/a/248889691_629652 为什么需要技术KPI? 在业务技术团队,有一个不好的趋势就是团队越来越业务,越来越没有技术味道.每个人都在谈业务,技术大会 ...

  3. 阿里工程师修养之:如何量化考核技术人的 KPI ?

    量化考核技术人的 KPI 前言 为什么需要技术 KPI ? 将就的代价 技术管理者者(TL)的失职 技术 KPI 的量化 技术 KPI KPI答疑 前言 对技术人来说,技术是成长的"核心&q ...

  4. 如何量化考核技术人的KPI?

    对技术人来说,技术是成长的"核心".然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象. 针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能 ...

  5. java开发学历要求_学Java开发有学历限制要求吗?

    原标题:学Java开发有学历限制要求吗? 学习Java的热潮越来越高涨,除了转行而来的人,很多刚毕业的学生也加入到其中.很多人都觉得学习Java需要有一个高学历作为基础,一些专科生在学习之前会犹豫,他 ...

  6. 学java 开发会掉头_作为一个全新的开发人员,我会学到什么

    学java 开发会掉头 重点 (Top highlight) It's been five years since I learned to code and changed careers. 自从我 ...

  7. 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图

    初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...

  8. java开发面试复试_面试java开发,面试官会问哪些问题?

    作为一个当初从学校刚毕业找工作而被面试饱经摧残的小白,到现在的java开发从业人员,中间不可谓之不艰辛,当初的屡屡碰壁,工作受挫,一直到现在我仍然认为那是我人生中不可或缺的一段经历. 关于面试的艰辛这 ...

  9. java开发cs项目_本硕机械转行cs(java后端开发)上岸之路

    秋招转眼就结束了,将近一年的努力,总算给了自己一个比较满意的结果.写下这篇贴子记录自己的转行以及秋招经历. 其实在转行初期,就无数次幻想着秋招结束,然后写一篇长长的经验贴的那种满足感.下面我尽量把我知 ...

  10. java 开发人员工具_每个Java开发人员都应该知道的10个基本工具

    java 开发人员工具 大家好,我们已经到了2019年的第二个月,我相信你们所有人都已经制定了关于2019年学习以及如何实现这些目标的目标. 我一直在撰写一系列文章,为您提供一些知识,使您可以学习和改 ...

最新文章

  1. Python独领风骚,AI热情有所降温|2020 年技术趋势解读
  2. 谷歌程序员犯低级错误?少打一个字符引发重大 Bug,致大量 Chromebook 无法解锁...
  3. 基于windows 2012部署oracle 12.1.0.2 rac历险记
  4. git 在 A 项目中引用 B 项目
  5. cnetos6,centos7添加新网卡,系统不识别的解决办法
  6. 第八章:软件包的安装与管理
  7. Head First设计模式读书笔记五 第六章 命令模式(单例略过)
  8. oracle12图书馆,Oracle图书馆管理系统
  9. tensorflow学习(一)——有关tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别
  10. 通过rsync备份静态文件
  11. 坐标旋转次序 欧拉角定义 左乘 右乘
  12. 个人整理的免费的Bootstrap模板
  13. 盘点世界十大软件外包公司排名是哪些公司
  14. ئاندرويىد تېلېفۇندىكى ئۇيغۇرچە
  15. 关于Java基础部分知识的综合应用之成员调度系统的项目
  16. “酸甜苦辣”说华育(我一个学员的学习心得)
  17. 制作 .Img 镜像文件
  18. 做ppt课件直播(课堂直播)使用云课堂直播软件的教程
  19. 刷机总是出现missed hello_金立-GN3002L 无法开机,怎么能解锁刷机呢?
  20. 黑苹果EFI合集,拥有1000多种机型,总有一款适合你,不断更新中!

热门文章

  1. java生成图表_java实现将数据生成图表至excel导出
  2. 水箱液位计算机控制系统设计,水箱水位PLC自动控制系统的设计_吕宁.pdf
  3. 影响科学圈的那些计算机代码
  4. unreal ue4 虚幻 websocket Server websocket服务 插件使用及下载 非官方自己写的
  5. 【语义分割】--SegNet理解
  6. JavaScript基础之语法
  7. 窄带包络解调python实现_对数据包络分析法DEA的再理解,以及python 实现
  8. 2022-09-13 mysql列存储引擎-POC-查询数据错误追踪
  9. 用通俗的语言解释贝叶斯公式
  10. lnmp一键安装包linux,lnmp一键安装包下载地址