程序员考核的五大死因(上)

程序员作为企业开发力量的最核心资产,无疑得到公司从上至下的一致关注。开发是个智力密集型产业,程序开发的特点是,付出相同时间的情况下,两个开发者之间的产能会相差十几甚至几十倍。软件开发人员向来以“不容易考核、工作不容易被量化”而著称。本期,我们重点分析程序员考核的“死因”及对策。

典型的程序员考核的产生

分析考核死因之前,我们先看下它是如何出生的。某天,公司老板突然想到件事——我不懂研发,而研发对我公司这么重要,怎么办?念一及此,老板不禁有些紧张,马上叫来HR开会,安排本月人力资源部分的工作重点,那就是“研发人员考核”,务必贯彻到位、立即执行。深谙老板意图的HR,回工位立刻上网卖书,从如何考核、KPI实务到平稳计分卡策略一应俱全,书到手之后连夜“抄书”赶制考核体系,整理出“研发人员考核方法”。第二天,HR把此考核方法交给研发总监并告知“老板要考核你们,这是考核办法。具体指标和KPI请部门自己制定,本周未之前报给人力资源部。我们会汇报给总裁。”研发总监拿着连撰写制度的人都没明白的“办法”找到项目经理:“老板要考核我们,这是考核办法。你团队成员具体指标和KPI你自己定,明天下班之前汇总给我。”项目经理找到了程序员:“老板要考核你,这是考核办法。你自己的指标和KPI你自己定,今天中午之前给我。”程序员迷惑地问:“目标不是公司制定的吗?”

很多考核就这么荒唐的开始了……

很快考核变成了每月项目经理给组里的程序员打次分。

于是,老板很满意:“我终于可以放松了,以后我们靠考核制度管理研发人员。我们从此摆脱了‘人治’时代!”

HR也很满意:“我不用明白研发是什么,更不必了解程序。我只要他们知道,我可以扣他们的钱就行了,还是用他们自己制定的指标。”

其他人都不太满意……

不久之后,公司就会发生程序员离职率升高的现象。被考核者,诸如:程序员、项目经理、研发总监都走光之后,考核就这么死了!

 

接下来,谈谈程序员考核的五种死因及对策。

考核只以事件为核心

公司没有利润就不能生存,研发项目的进度很多时候决定着公司的利润。所以很多考核是把项目无限拆分到程序员层面,这样的考核只以事件为中心,关注事件是否做成,而不关注人和人的发展。只以事为中心的考核把程序员当成了生产线上的机器,有投入(高工资)就要有产出(高质量的代码),程序员被当成了标准件,即没必要有太多成长(因为做的都是相对重复的工作),也不能时常发生故障(经常加班也不能请假)。

有些程序员自号“IT民工”与这种考核体系的存在有很大关系。

这种考核体系可以维持短期内的高效率,长期执行会导致整个系统的崩溃。很多公司人员不断更替,根本无稳定可言,一部分原因是执行了或者实质上执行了只以事件为核心的考核。

专家支招:

张大志(Leo):承认程序员也是人,尊重人的个性是考核的基础。注重培训,在项目压力大时侧重结果,在有Buffer的情况下关注程序员技能的提高和个人的发展是解决此类似问题的核心方法。在项目周期的不同阶段对考核方法进行调整的复合式考核方式,更能让企业向目标前进,也能保持程序员的热情。

胡争辉:换个角度从结果考虑,举一个最常见的例子,四个人合作种树,A挖坑,B种树,C填土,D浇水。如果考核只以事件为核心的话,那么当B没有种树时,C依旧填土,D依旧浇水。从考核来说A、C、D三个人都得了满分,就算B得了0分,平均分也该有75%,超过60%及格线了,但是种树这个任务却没有完成。所以对于只以事件为核心的考核来说,不仅让程序员感觉不到团队,而且程序员也不会为团队考虑。在这种情况下,考核就要调整为既包含个人要完成的事件,也要体现个人对团队全局的理解。

(本文刊登于2009年9月号《程序员》杂志)

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

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

相关文章

du -sh 如何找到最大的文件夹_小白必看!手把手教你如何在linux上安装redis数据库...

首先我们要清楚redis是什么?redis是一种非关系型数据库,它与MySQL的这种关系型数据库不同,MySQL是将数据存储在磁盘中,而redis是储存在内存中。一般很多公司都是使用MySQLredis两种数据存储方式,这样可以提高性能&…

Linux删除特殊字符文件

1.删除带“-”的文件名的方法使用-- (2个横杠)#touch -- -%F-%T#rm -- -%F-%Trm: remove regular empty file -%F-%T?使用绝对路径并TAB特殊文件名#rm /root/-%F-%Trm: remove regular empty file /root/-%F-%T?2. 删除包含其它特殊字符的文件对于含有…

机器学习之线性回归 损失函数、代价函数、目标函数

损失函数(Loss Function)定义在单个样本上,算的是一个样本的误差。比如: 其中0-1损失函数: 感知器损失函数: 平方和损失函数: 绝对损失函数: 对数损失函数: 代价函数(Cos…

bzoj4950(二分图最大匹配)

[Wf2017]Mission Improbable Time Limit: 1 Sec Memory Limit: 1024 MBSubmit: 105 Solved: 49[Submit][Status][Discuss]Description 那是春日里一个天气晴朗的好日子,你准备去见见你的老朋友Patrick,也是你之前的犯罪同伙。Patrick在编程竞赛上豪赌输掉了一大笔钱,所以他需…

git 远程仓库管理 分支创建、管理、查看、切换

作用: 区分生产环境代码以及开发环境代码研究新的功能或者攻关难题解决线上bug 特点: 项目开发中公用分支包括master、dev分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支分支dev是用于开发的分支&#…

大学生活应该这样度过之参加一个社团让自己溶入团队——《程序员羊皮卷》连载(11)

《程序员羊皮卷》当当购买地址:http://product.dangdang.com/product.aspx?product_id20691986 互动购买地址:http://www.china-pub.com/196049 1.3参加一个社团让自己溶入团队 有人曾经问我“学校里的什么活动和工作中的项目管理比较类似&#xff1f…

Hadoop Hive概念学习系列之hive的数据压缩(七)

Hive文件存储格式包括以下几类: 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。 SEQUENCEFILE,RCFILE,O…

java 加锁_Java并发之synchronized深入

一句话总结synchronized:JVM会自动通过使用monitor来加锁和解锁,保证了同时只有一个线程可以执行指定代码,从而保证了线程安全,同时具有可重入和不可中断的性质。一.synchronized的作用使用synchronized修饰方法或者代码块时&…

激活函数之 Sigmoid、tanh、ReLU、ReLU变形和Maxout

Sigmoid函数 Sigmoid函数计算公式 sigmoid:x取值范围(-∞,∞),值域是(0, 1)。 sigmoid函数求导 这是sigmoid函数的一个重要性质。 图像 代码 # -*- coding: utf-8 -*- """ author: tom """import numpy im…

Python查看、修改pip install 默认使用的pip库

一、更改 Python 的 pip install 默认使用的pip库 【方法】只需要将对应python脚本的路径添加到系统环境变量Path中较前的位置即可,这样就可以获得优先级。 1、打开终端,可以通过指令 pip show pip 查看默认使用的pip包: 2、现在&#xff…

cmd 找到8080对应进程_多进程概括

多进程图像操作系统记录进程,并按照合理的次序交替推进(分配资源,不断调度),提高CPU利用率和程序执行速度,这就是操作系统的多进程图像。当操作系统启动时,多进程图像就出现了。 在linux内核源码main.c文件中&#xff…

机器学习接口和代码之 KNN

官网地址:https://scikit-learn.org/stable/modules/classes.html#module-sklearn.neighbors class sklearn.neighbors.KNeighborsClassifier(n_neighbors5, weights’uniform’, algorithm’auto’, leaf_size30, p2, metric’minkowski’, metric_paramsNone, n…

Eclipse中安装Ext插件(Spket IDE)

在网上找了很多资料,这里重新整理一下。 Spket IDE是目前支持Ext 2.0最为出色的IDE。 它采用.jsb project file 文件并将继承于基类和所有文档的内容嵌入到生成代码提示的. doc中。由于Spket只是一个单纯的编辑器,没有其它格式的支持(如CSS&a…

职业程序员培养之道

作者:粘新育 任甲林 来源:希赛网  http://www.csai.cn 2004年06月28日软件开发是以人为核心的过程,对人的依赖性远高于传统的硬件生产企业,为了保持开发能力的稳定性,一方面需要定义软件过程,以过程为枢纽…

MongoDB启动

详细见大神链接 链接: https://blog.csdn.net/chenpuzhen/article/details/90642147.

Go 语言编程规范

1. gofmt 命令 大部分的格式问题可以通过 gofmt 来解决,gofmt 自动格式化代码,保证所有的 go 代码与官方推荐的格式保持一致,所有格式有关问题,都以gofmt的结果为准。所以,建议在提交代码库之前先运行一下这个命令。 2…

python去噪音_python中的噪声是什么意思

你的序列均值为零吗? 方差随时间变化吗? 值与延迟值相关吗? 你可以用一些工具来检查你的时间序列是否为白噪音: 创建一个折线图。检查总体特征,如变化的平均值,方差或延迟变量之间的明显关系。 计算汇总统计。对照序列中有意义的连续块的均值和方差&a…

pycharm 离线安装插件

插件离线下载地址: http://plugins.jetbrains.com/ 1、下载插件:http://plugins.jetbrains.com/ 2、安装插件: settings -> plugins -> install plugin from disk,然后重启IDEA即可。

为机器学习占地16

是将若干个学习器(分类器&回归器)组合之后产生一个新学习器。弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < 0.5)。 集成算法的成功在于保证弱分类器的多样性(Diversity)。而且集成不稳定的算法也能够得到一个比较明显的性能提升。 …

VC DLL学习

1 用VC创建DLL动态链接库1.1 创建dll项目1.2 为dll项目编写源文件头文件dllDemo.hextern"C"_declspec(dllexport) intSum(inta,intb);//加法函数。extern"C"_declspec(dllexport) intMax(inta, intb);//取较大值函数extern"C"_declspec(dllexpor…