程序员作为企业开发力量的最核心资产,无疑得到公司从上至下的一致关注。开发是个智力密集型产业,程序开发的特点是,付出相同时间的情况下,两个开发者之间的产能会相差十几甚至几十倍。软件开发人员向来以“不容易考核、工作不容易被量化”而著称。本期,我们重点分析程序员考核的“死因”及对策。
典型的程序员考核的产生
分析考核死因之前,我们先看下它是如何出生的。某天,公司老板突然想到件事——我不懂研发,而研发对我公司这么重要,怎么办?念一及此,老板不禁有些紧张,马上叫来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月号《程序员》杂志)