【IT168 专稿】 人才是一个软件开发团队拥有的最宝贵资源,但如果开发主管不能妥善地建立相对科学的薪酬和绩效管理体系,那么留住人才并良好地发挥他们的创造力就只能是一个难圆的梦。是不是只要高薪就可以留住人才了呢?事实证明高薪是一个好的办法,但是不可能长期发挥效用。因为人员除了通过打工赚钱之外,更需要一种在团队中被认可感和公平感,或需要一种可以通过不懈努力获得职业生涯发展的预期。如果仅仅是拿出钱来拍拍脑袋分给大家,而不是用一套统一且不断完善的管理体系对工作绩效进行衡量,然后根据考核的结果进行分配,那么发钱的结果很可能不是获得员工的满意和忠诚,而是带来更多的内部矛盾,或造成项目团队成员的人心更加离散。
近日,有一份调查问卷问到在软件开发中最常遇到的管理难题是什么?其中前列的一项是:最困难的工作是开发人员的绩效考核。回想起从去年10月份起,笔者作为软件开发经理接管了一个五十多人的开发团队。在此过程中,我深深的感受到软件开发人员的绩效管理的确是一件非常折磨人的工作。绩效管理说白了就是怎样把考核结果跟晋升、加薪、奖金、评优、转岗、裁员等问题挂钩,但前提是必须要有效地对团队成员进行绩效考核。在本文中笔者分享了在软件开发中绩效考核的心得和体会,并探讨KPI的实施步骤和流程。
在刀尖上跳舞的开发绩效管理
国内的软件企业多数均缺乏一套规范的软件开发人员价值评价体系,虽然不少企业有实行绩效考核,但多数流于形式。归纳起来,软件开发人员的绩效考核主要存在以下几个方面的问题:
(1)缺乏有效的考核工具,考核往往敷衍了事
由于缺乏有效的考核工具,再加上软件开发人员的工作目标难以量化,工作成果难以衡量,结果有些开发团队的绩效考核仅仅是针对软件开发人员的工作态度;或有些过于注重对工作结果的考核,忽视了对过程的考核而导致了工作过程的不可靠;或有些将考核工具设计得繁杂无比,使到项目主管在运用考核工具时显得无所适从,往往敷衍了事。
(2)没有重视工作分析,考核类别/指标设计不科学
考核类别/指标在整个考核过程中是重要一环,却常常被人忽略。有效的考核类别和指标应是根据工作而来的,因为工作岗位说明书的内容就是绩效考核的要项,所以考核类别和指标应是明确的、且能衡量的。但让人遗憾的是,目前大多数软件开发团队的绩效考核的考核类别和指标设计得并不科学,原因是工作分析还未受到普遍的重视。
而由于绩效考核指标设计的不科学,使到考核结果起不到应有的作用。主要体现为:①考核类别和指标设计不合理甚至没有标准,而只能是凭一种主观印象或感觉;②是以不相关的考核类别和指标来对被考核者进行考评,极易导致不全面、不客观、不公正的判断,结果是在其它表现差不多、工作任务也都完成的情况下,往往工作量大、工作难度高的岗位上的员工没有被评为优秀。
(3)评价标准没有量化,评价者主观偏差大
目前,在软件开发过程中,许多开发团队在工作分析上并没有很好的解决估算和度量的问题,使到评价标准不但没有一个可以客观量化的评分标尺,而且往往定性内容过多,有的更只是文字性评语。结果是评价者可以随意给个分数或者考核结果,有时难免会渗透一些个人的感情因素在里面。这样的后果是可操作性太差和主观性太强,使到"绩效"考核变成"人缘"考核。
例如,同样是"优、良、合格、不合格"等标准,不同的考评人对这些标准的理解会有偏差。同样一个员工,对于某项相同的工作,甲考评人可能会选"良",乙考评人可能会选"合格"。个人偏见误差大,考评人喜欢或不喜欢(熟悉或不熟悉)被考评人,都会对被考评人的考评结果产生影响。从而有失公允、公正和公平。并且,考核标准有千篇一律的倾向--不论是资深技术成员还是普通技术成员,往往都用同一个标准去评价,没有顾及人才有级别差异的客观现实。
什么是KPI绩效考核工具
(1)什么是绩效考核?
绩效考核通常也称为业绩考评或"绩考",是指针对开发项目团队中每个成员所承担的工作,应用各种科学的定性和定量的方法,对各成员行为的实际效果及其对项目的贡献或价值进行考核和评价。绩效考核是项目管理不可或缺的一部份,它是一种周期性检讨与评估员工工作表现的管理方式。有效的绩效考核不仅能确定每位员工对团队的贡献或不足,更可在整体上对项目的人力资源管理提供决定性的评估资料,从而可以改善开发团队的人力资源机能。例如,通过提高员工的工作绩效,不但可激励士气,也可作为公平合理地奖罚员工的依据。
因此,绩效考核的目的不是单纯的为了考核员工是否合格,而是为了更好地激发员工的潜力,帮助员工更好地自我发展,当然也是帮助项目主管更有效率地进行项目管理。另一方面,绩效考核也是为了找出工作绩效问题的所在,有针对性地解决问题,使员工更快更好地发展进步。一般来说,绩效考核的方法有许多种。目前非常流行的有四种:KPI(关键业绩指标)、360度考核、BSC(平衡计分卡)、MBO(目标管理法)等。
(2)KPI关键业绩指标
目前在软件开发团队中绩效考核大都采用KPI方法,包括许多CMMI认证的企业。KPI也称关键业绩指标(Key Performance Indicators),是指考核完成某项任务、胜任某个岗位所具备的决定性因素,是基于岗位职责而设定与员工工作任务密切相关的衡量标准,体现出以工作岗位关键因素为重点的考核思想。它是一种可量化的、被事先认可的、用来反映团队目标实现程度的重要指标体系。
因此,KPI的考核指标不是一般的绩效指标,而且是对业绩产生关键影响力的那部分指标。一般来说,如何界定哪些是属于关键性的绩效指标,哪些是属于一般性的指标,要根据每个具体的软件开发项目的目标进行层层分解才能得到。换句简单的话说,就是KPI指标是软件开发过程中项目目标的分解化、具体化和内化过程的结果。因为一个项目成员从事的工作行为可分为有效的工作行为和无效的工作行为,实行KPI就是要员工找到哪些是有效的工作行为,而且要求按照有效行为进行自我引导和约束,防止对项目绩效无效的行为出现。例如,在进行KPI考核时,从每个岗位的考核指标中选取3-5个与员工本阶段工作密切相关的重要指标进行绩效考核。确定KPI考核指标主要有三种方法,即标杆基准法,成功关键分析法和策略目标分解法。
关键绩效指标一般不能单独使用,因此在许多开发团队的考核方法中,有的是将KPI(关键绩效指标)和MBO(目标管理)相结合,有的是将KPI(关键绩效指标)和BSC(平衡计分卡)相结合。当然,也有的开发团队会单独使用KPI关键指标,但需要注意的是在单独使用时衡量的是员工的能力与素质,而不是工作业绩。例如,在做综合评价的时候会起到一定的作用,适合年度的或阶段性的员工能力素质考评,但不适合于短期目标实现情况的考核。
如何实施开发人员KPI绩效考核
(1)明确KPI考核目的
绩效考核指标设计的首要原则是绩效考核指标必须要紧密结合考核目的,软件开发人员的绩效考核指标的设计也不例外。因此,确定KPI的考核目的是至关重要的,但往往被人们所忽视。因为考核的目的不同,考核所采用的指标类别和评价标准也有所区别。如果要考评开发人员过去特定一段时间的工作表现,且考核结果将用于加薪、发放奖金、红利等奖励,考评指标类别应该是主要为业绩指标和行为指标;如果考核目的为员工前程发展,且考核结果将用于教育培训、能力开发、升迁、调动等人力资源规划与配置,考核指标类别应要包括业绩指标、能力指标和行为指标。而且,各种指标之间的权重也要因考评重点不同而相应变化。
(2)确定KPI关键绩效指标
确定关键绩效指标是KPI体系建立是核心部分,不同的项目团队需要不同的KPI指标,因此需要找出对本次软件开发项目具有重大影响的关键绩效指标。因为影响项目绩效的因素有很多,但KPI方法是只衡量对软件开发成果有重大影响的哪部分。因此,在选择时应优先考虑有明确计算方法和数据来源、或在财务报表中已存在、并且有较大影响力的指标做为关键绩效指标。关键业绩指标的选择方法有很多,包括KPI矩阵法、敏感性分析法、关键成功因素法,或综合多种方法以达到优势互补。
同时,对不同的人员和工作岗位在业绩考核时的指标也要有所区别。例如,软件开发团队人员一般分为项目经理、开发人员、测试人员等。项目经理的业绩指标主要有:开发周期、项目计划完成率、费用控制、团队士气指数等;开发人员的业绩指标主要有:项目计划完成率、项目流程规范符合度、设计的可生产性、设计成本降低率等;测试人员的业绩指标主要有:测试问题解决率、运行质量、计划完成率、测试过程规范符合度等。
(3)生成业绩合同,考核指标要落实到具体岗位
选定关键绩效指标后,就需要将指标层层分解到开发过程中的各相关人员,具体可以通过访谈或分析历史资料,并不断沟通反馈的方法进行,要保证指标分解后的有效性、和指标的可测性。因此,业绩合同是指项目各成员都与上级就应实现的工作/业绩订立的正式书面协议。它定义了开发团队内各成员的主要考核目标和关键业绩指标的设定,确定各主要考察内容的权重,并且参照历史业绩及未来策略重点设定需要达到的标准,最后还可以决定合同受约人的薪酬与非物质奖惩。
一般来说,业绩合同组成部分应包括:KPI类别、KPI指标、权重比例,并且要有实际完成业绩与预算业绩的量化方法,和依各考核内容的权重来计算综合分数的方法。业绩合同中目标值的设定要求符合实际的、可达到的,同时具有一定的挑战性的原则,但也要体现激励作用。最后,业绩总分可与薪酬、升迁等激励政策密切挂钩。
(4)要明确以绩效改进为目的,不以奖惩为考核目的
最后,要明确绩效考核的目的在于指引开发团队完成软件开发的目标和计划。因此,在设计绩效考核时,应从激励的角度出发,使各成员明确实施绩效考核是以完成工作目标为主要目的,要保证员工都在有挑战的状态下积极工作。所以,在实施绩效考核时应要以促进员工的工作绩效改进和提升效率为目的,而不是以奖惩为考核目的,或使员工对绩效考核产生抵触情绪。