Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

5.12. 软件行业绩效管理

5.12.1. 什么是绩效管理

绩效管理是管理者保证员工的工作活动和结果与组织目标保持一致的一种手段和过程。它是通过识别、衡量和传达有关员工工作绩效状况和水平的信息,并作出相应指引来使组织的目标得以实现。 我们听到更多的是“绩效考核”:绩效考核是绩效管理的基础和手段,也是绩效管理的必经阶段。没有经过绩效考核阶段是不可能到达绩效管理阶段的。

5.12.2. 为什么绩效管理

达成目标:绩效考核本质上是一种过程管理,而不是仅仅对结果的考核。它是将中长期的目标分解成年度、季度、月度指标,不断督促员工实现、完成的过程,有效的绩效考核能帮助企业达成目标。

挖掘问题:绩效考核是一个不断制订计划、执行、检查、处理的PDCA循环过程,体现在整个绩效管理环节,包括绩效目标设定、绩效要求达成、绩效实施修正、绩效面谈、绩效改进、再制定目标的循环,这也是一个不断的发现问题、改进问题的过程。

分配利益:与利益不挂钩的考核是没有意义的,员工的工资一般都会为两个部分:固定工资和绩效工资。绩效工资的分配与员工的绩效考核得分息息相关,所以一说起考核,员工的第一反应往往是绩效工资的发放。

促进成长:绩效考核的最终目的并不是单纯地进行利益分配,而是促进企业与员工的共同成长。通过考核发现问题、改进问题,找到差距进行提升,最后达到双赢。 绩效考核的应用重点在薪酬和绩效的结合上。薪酬与绩效在人力资源管理中,是两个密不可分的环节。在设定薪酬时,一般已将薪酬分解为固定工资和绩效工资,绩效工资正是通过绩效予以体现,而对员工进行绩效考核也必须要表现在薪酬上,否则绩效和薪酬都失去了激励的作用。

人员激励:通过绩效考核,把员工聘用、职务升降、培训发展、劳动薪酬相结合,使得企业激励机制得到充分运用,有利于企业的健康发展;同时对员工本人,也便于建立不断自我激励的心理模式。

5.12.3. 绩效管理的分类

绩效管理可分为两大类,一类是激励型绩效管理,侧重于激发员工的工作积极性,比较适用于成长期的企业;另一类是管控型绩效管理,侧重于规范员工的工作行为,比较适用于成熟期的企业。 但无论采用哪一种考核方式,其核心都应有利于提升企业的整体绩效,而不应在指标的得分上斤斤计较

5.12.4. 绩效管理面临的问题

绩效管理是人力资源管理的一项核心职能,对于人力资源管理来说是非常重要的。然而新型产业绩效管理面临一系列问题,传统的绩效考核手段并不适用,随着绩效管理工作的实施,发现难以推广,各种阻力重重,很多问题对于人力资源部门一筹莫展。很多企业采用生拿硬套方法,使用传统方法考核技术人员,这样仅仅是对于公司做了交代(我们已经实施了绩效管理),但这样绩效管理无法长久,最后不了了之。

  1. 软件开发无法量化

  2. 程序员水平问题

  3. 怎么考核脑力工作者

  4. 变化总比计划快,指标分解被打乱

技术人员的绩效管理已经超出人力资源部门能力范围,需要多部门的不断深入,方能有效地支持企业的整个运营。

KPI之所以广受欢迎,就是因为“你选择衡量什么,你就得到什么”。问题在于,有许多种KPI指标任你选择,选到适合自己的真不太容易。领导层如果选了错误的KPI,就意味着员工会执行错误的指令,后果显然很严重。

站在员工的角度,KPI无非就是:

  1. 在指定的时间段内,我要完成哪些任务;

  2. 这些任务,我分别要完成到什么程度;

  3. 根据完成了哪些、各自完成的程度来拿钱。

说得再简单一点就是,完成了KPI拿钱拿奖励,完不成爱干嘛干嘛。提前完成再贡献,就显得没有意义。

KPI从最大程度上提高了效率,却也是一把双刃剑。

其一,有些事情值得去做,但在存在一定风险,且无法测量,也因此无法制订KPI。没有写进激励机制,那创新就显得困难了些。

其二,没有人对最项目的终结果负责,每个人只对自己经手的过程负责。

长此以往,KPI 让那些充满报复与野心的员工激情消耗殆尽。

5.12.5. 绩效管理的误区

绩效管理强调组织目标和个人目标的一致性,强调组织和个人同步成长,形成“多赢”局面;绩效管理体现着“以人为本”的思想,在绩效管理的各个环节中都需要管理者和员工的共同参与。

在我看来国内企业绩效管理归为,员工考核,很多人认为企业存在的问题是员工工作不积极,没有责任感。我认为这样的企业首先应该自我反省。什么样的企业文化,产生什么样的员工。

5.12.6. 绩效管理与职场博弈

软件开发领域自动化不但可以减少人力成本,也为企业节省开支。例如自动化运维,可以让自己半夜少起来几次,多睡几个好觉。自动化测试,解决枯燥重复又重复的操作。

但我错了,实施自动化后果没有预料到。

在於尔虞我诈的部门斗争却人没有任何好处,自动化导致你的部门人数减少,在与其他部门竞争中失去了优势。

做大你的部门很重要,更有利于职业发展,有了人,大量的人,你就可以做更多的事,权力也随之扩大。否则你面临的是被其他部门兼并,吞噬,这就是职场的游戏规则。

不要追求完美,工作做到80%到此为止,任何事都留有余地。

你不能将你所有的能力都展现出来,需要逐步过渡,缓慢释放。例如绩效考核你不能总是拿A,一旦出现B,那么企业会认为你出问题了,如果你C会把你打回原形。

如果你始终给公司的印象是A(满分),那么公司就会习以为常,认为你还能做到A+,甚至 A++ , 你将没有改善空间。

工作不能做得太好,例如自动化非常完善,故障少,但公司看就不顺眼了,拿那么高工资,整天没事干。

运维是一个最让人不理解的工作,也是最不可思议的工作,下面给出几个场景,看看你是否对号入座:

你的工作做得很好,长时间都没故障,搞的大家都以为你没事情做,天天无所事事,公司找你谈话,甚至考虑是否要保留这个职位,为公司节省人力成本。

你的工作做得很好,一向平安无事某一天突然出现一个故障,这个故障突如其来,你埋头处理手上的工作,你的电话一个接着一个,几乎所有部门都在质问你,怎么能出现故障,你摊上事了,你摊上大事了。

你的工作每天都有大量的故障主要处理,疲于奔命救火,出现故障每个部门都很淡定,他们知道过一会就会处理好,大家已经习惯了。你做的工作大家都看在眼里,老板看你每日忙碌工作非常赏识你。你经常半夜爬起来处理工作,老不说这样的员工才是好员工。常常会因为你解决了重大故障而通报表扬

这些场景在我多年的工作中都遇到过,我曾经因为工作做得太好被约谈然后辞退,聘用薪水更低同事替代我的位置。

让故障在可控的范围内发生,未必不是好事,这叫刷存在感。

如果你觉得还不够,可以认为制造点事情出来,然后再摆平。

这就是长期员工跟企业博弈结果。

5.12.7. 怎样做绩效管理

绩效管理应以软件开发为主线,贯穿软件开发过程中,而不是软件开发以外一项工作。绩效管理不能影响正常的软件开发,不应让绩效管理成为技术人员的负担。 让绩效管理融入开发工作,成为软件开发过程中的一个环节。 绩效管理应该由技术部门自行实施,人力资源部门协助。与其挖空心思怎么样考评员工,不如建立一个积极上进的团队。所以我们应该以团队建设为主,而不是考核为主。

实施绩效管理是为了更好的实现:达成目标,挖掘问题,分配利益,促进成长,人员激励。实现上述目标,我们不一定非使用“关键绩效指标(KPI:Key Performance Indicator)”,还有其他的考核方式。 KPI是在国内应用最广的,但我觉得也是最不适用于技术人员考核的方法。平衡计分卡(Balance Scorecard, BSC)操作起来太繁琐。360°评价体系,真的浪费人力成本。 最后一种目标管理MBO(Management by objectives) 我认为优于其他几项,但仍需要改造,我们只需要借鉴一部分精华即刻。

  • Contributors (贡献)
  • Objective (目标达成)
  • Teamwork (团队合作)
  • Constraints (约束)
  • Defect (缺陷)
  • Review (审查)

5.12.7.1. 开发模式

项目管理模式的软件开发团队,不理利于创新,会降低员工的积极性,员工没有参与感,将员工视为工时,一个部件,一个资源,任凭项目经理的调度,使用。员工的想法无法得到重视,仅仅是执行命令。 我更喜欢敏捷开发团队,我更喜欢全栈开发人员,让开发人员参与的软件开发周期的每个环节中,人力资源利用率高,让开发工作成为有趣的事,从被动接收任务分配,到主动参与其中。

5.12.7.2. 通过代码提交数量判断其在团队中的贡献

分析年,月,周每个队员的提交数量判断其在团队中的贡献。这是一个有说服力的数据,无人反对。做的工作多自然提交就会多。

需要注意,同级别比较,不能垮级别比较。贡献越多,对系统就越了解这是成正比的。也就更有机会得到晋升。

通过本周,本月报表与上周,上月的对比,分析员工工作状态。

5.12.7.3. 目标与达成

设置目标,确定达成目标的关键结果,这部分参考了MBO(Management by objectives)与OKR(Objectives Key Results)。

5.12.7.4. 通过提交日历查看员工的状态

提交日历可以一看出一周,一个月,一年的贡献。

5.12.7.5. 团队约束

团队的约束远大于规章制度的约束。

5.12.7.6. BUG率

BUG并不能说明什么,做的越多,BUG反馈就越多,它可以所作选项出现,我更关注的是reopen的次数。而不是队员的bug数量 很多人错误的将bug率计入考评,导致多做多bug, 少做少bug, 不做没bug。

5.12.7.7. 代码审查

我不建议专门抽时间做代码审查,我主张提交后即刻审查,分支合并过程审查。审查可能考核队员能力,责任心等等

5.12.8. 鱼骨图用于OKR

我使用鱼骨图做OKR,我认为这样更清晰。

5.12.9. 胜任力模型

很多公司将胜任力模型搞的十分复杂,其实我们只需要评测几个维度即可,我更喜欢雷达图,一目了然。

5.12.9.1. 雷达图用于胜任力模型

考核指标打分制,很多企业将考核项目打分例如1~10分,然后再计算总分,这个打分本身就不合理。 传统的绩效考核采用填表的方式,我认为这种方法应该淘汰了。

我更喜欢雷达图,通过雷达图打分,覆盖区域面积越大能力越强,同时可以一眼看出那方面能力不足。

图 5.1. 雷达图

雷达图

全栈开发能力评估只需关注维度:需求,设计,开发,测试,运维。

图 5.2. 全栈开发

全栈开发

5.12.9.2. 发现和解决问题的能力

我用四象限工具来评估员工的敬业度

			
               解决问题
                  ^
                  |
    能解现有决问题  |   主动发现问题
    但不能发现问题  |   主动解决问题
                  |
o----------------------------------> 发现问题
                  |
    不会发现问题    |   能发现问题
    也不主动解决    |   但不去解决
                  |
                  o	
			
			

右上:主动发现问题和主动解决问题是优秀员工

左上:能解现有决问题,但不能发现问题。这种员工不会主动找活干,被动等待你分配工作给他,分配的都能很好的完成。

右下:能发现问题,但不去解决。这种类型的员工喜欢在会议上刷存在感,提出问题但是无法解决问题。

左下:直接辞退

5.12.9.3. 学习能力评估

			
            学习能力
               ^
               | 
       B       |       A
               |
o----------------------------> 工作所需技能
               |
       D       |       C
               |
               o	
			
			

A:自我驱动学习,所学技能与工作高度匹配,为公司创造最大价值。

B:有自学能力,但是与工作相悖,仅仅学习自己感兴趣的技能,需要纠正。

C:吃老本,不学习新知识,当前掌握的知识可以满足工作需要,但是没有前瞻性。

D:既不学习也无法满足当前工作所需。辞退处理。

5.12.9.4. 价值观评估

			
            团队认同
               ^
               | 
       B       |       A
               |
o----------------------------> 企业文化(使命和价值观)
               |
       D       |       C
               |
               o	
			
			

A:个人的方向与公司的方向高度匹配。

B:认同团队,但是不承认企业文化。

C:承认企业文化,但是不认同这个团队。

D:不认同团队,也不认同公司的文化。辞退处理。