[一分钟先生]倪邵峰:浅谈软件开发绩效
百合网手机开发经理倪邵峰
绩效作为公司考核员工的依据,其重要性不言而喻。管理者依据上级的目标并结合工作重点来制定绩效,然后根据下属应负的责任,将任务层层分解到责任人。如果绩效做得好,员工的业绩就会更好,员工就会获得更多的奖励,企业的凝聚力就更强了。
软件开发绩效的特点
相比其他行业,软件开发的绩效似乎并不好做。有一些客观的因素,如:工作难以统计与量化;软件各模块难易程度有时难以衡量等。尤其像敏捷开发这样,不断更新任务就更难以制定考核计划了。
软件开发绩效的效果不理想还有一些主观上的原因:
(1)管理者大部分时间忙于技术性的工作,而忽略了对员工的沟通和观察;
(2)很多管理者技术出身,技术上是一把好手,也许管理上并不擅长;
(3)人事变动频繁,新同事一时难以发挥出水平,使定好的目标达不到预期的效果。
如何做好绩效
1.定好目标
我在《 管理者应具备的能力与素质》一文中提到:判断目标的可靠度要用SMART法则,否则绩效目标不明确,就会因不同的解释而造成误导,使考核的效果大打折扣。
让我们来回顾一下SMART法则:
(1)目标是具体的(Specific)、明确的。管理者最重要是分清哪些是关键因素,指标要简洁明了,千万不可贪多贪全,而把无关紧要的内容纳入绩效。被考核者应明确、理解目标,并知道要达到什么样的结果。
(2)目标是可衡量的(Measurable),可量化的。绩效目标最好能用数据或事实来表示,过于抽象就无法衡量了。
(3)目标是可达到的(Attainable)。目标不能过高或过低,过高实现不了,过低没有意义。
(4)目标要与部门战略相关(Relevant)。部门根据自身发展阶段和战略重点来采取相应的考核办法。
(5)目标要有时间限制(Time-based),否则没有意义。
2.制定考核
我认为软件开发应该从进度、质量、难易度等方面进行考核。
开发进度按计划时间完成不扣分,推迟完成可以按照如下公式:该模块所占分值*[应完成天数\(应完成天数+推迟天数)]进行计算。
开发质量除了看编码是否规范,还要依据Bug所扣的分值。具体做法如下:把Bug根据优先级分为4个等级,A类是影响客户利益或不能执行重要功能的Bug,如用户的钱扣错了,公式错了等。B类是程序退出等错误。C类是界面的问题。D类是边边角角的问题。它们的分值设定为A:B:C:D=20:8:3:1。也就是出一个A类错误扣掉的分值等于犯20个D类的Bug的分值。扣掉40个Bug的分值就扣一个绩效考核分。
团队中有些工程师喜欢挑战难度大的工作,也许该模块工作量不大,也许很耗时间,但起到的作用却很大,因此,考核时要把模块难易度作为加分项加进去。有的员工遇到了难题,就会去请教高手的帮助,如果发现高手们在完成自己工作的情况下还能帮助他人,那么果断加分吧。
3.绩效评估环节
绩效分数先得员工自评,自评完了要管理者复核,管理者应注意评分要客观、公正,不要以关系好坏来评分;也不要以偏概全,把最近员工的表现作为评判的依据;也不要把员工某一项优点放大,而推测员工整体印象。
比较好的方法是平时多观察,多记录,以主观绩效为主,绩效考核为辅。由于软件开发的复杂性,即使再全面和科学的指标,也不一定能够公平准确地反映员工的真实工作状况。管理者将平时的关键事件记录下来,对员工执行情况进行跟踪。管理者在每个月末和员工进行分析,并指出员工需要改进的地方。这种基于长期考察和调整形成的绩效,往往比数字更准确。
总之,注意方法,多总结,尤其要根据实际情况制定考核方法。以上属于个人浅见,高手看后请多指教。