上一篇文章讲了程序员的晋升。我提到有一个程序员技术很好,但是因为他在晋升过程中不够重视,所以晋升失败了。关于这个问题的一些评论让我发现有些程序员似乎对晋升的理解过于简单化,认为“如果你做了你的工作,你就应该晋升”,就像代码的运行逻辑一样。如果失败了,说明领导有问题,公司有错。 不过,事情显然要复杂得多。我认为,面对程序员的晋升,至少应该弄清楚以下几个问题。 直属领导是否有义务“保证”程序员晋升成功? 答案很明确:没有。 说白了,程序员都是成年人,升职之类的事情就应该由他们负责,其他人不应该当保姆。称职的直属领导可以给下属足够的职业指导,帮助他们为晋升做准备。但是,直属领导既没有权力也没有义务“保证”升职成功。 为什么直属领导不能决定程序员的晋升? 有句话说:你不知道你的下属做了多少事,有多少能力吗?为什么“难”他晋升? 这句话的第一部分是正确的。直属领导要清楚下属做了多少,能力如何,否则就是无能。但是,下级程序员的晋升一定不能由直属主管来决定,否则如何平衡不同直属主管的评价标准呢?同一家公司,A队P7和B队P7的技术水平明显不同。外人会怎么想? 我的一个朋友在带队的时候要求非常严格。大家素质都很高,很有追求,也很团结。但一场意外事件毁了这一切:一名成员询问其他团队的职级和待遇,却发现“我们老板对我们太苛刻,要求太多,我们吃了不少苦头”——因为他询问了团队团队里没有领导,晋升很松散。 所以一般来说,直属领导对程序员晋升的决定会带来很多问题。退一步说,如果直属领导说了算,那HR是不是白搭了? 如何“拉平”不同团队的队伍 一个常用的方法就是依靠统一的能力模型,这基本上是成熟的大公司必备的。 随机搜了一个大厂的能力模型,仔细一看,发现即使是研发工程师,考核的也不仅仅是写代码的能力,还要考虑质量(包括学习、提炼能力、沟通、谈判能力)能力、执行力等)、知识技能(包括风险识别与控制、业务能力、项目策划能力等)、客户导向(成本分析、项目管理能力等)、领导力(团队影响力、能力导人、知识传播能力等)。 所以,标准的晋升流程真的不是用PPT来“难”程序员,“逼”工程师锻炼嘴巴,而是要求程序员不能有明显短板,技能集基本齐全,这可以提高组织和协作效率。 会不会不公平?惯于。只要胜任力模型和晋升机制是开放的,暂时不会改变,程序员就可以提前做好准备——某种程度上,这也是一种专业性的体现。 成绩好但没有晋升,这正常吗? 很正常,很正常。业绩虽然是晋升的重要考量因素,但绝不是充分条件。 为什么?因为业绩是工作成果的衡量标准,职级是能力的衡量标准,两者并不完全重叠,不能混为一谈。 普遍的情况是,由于员工在过去一段时间加班较多,或者赶上了市场爆发的好时机,工作表现确实有了很大的提升。而员工的能力(决策判断能力、协调能力等)并没有相应提高,甚至停留在原地。如果此时升职,员工可以掌握更多的权力,调动更多的资源,但可能会带来更多的麻烦,也会让其他“不懂绩效”的同事感到不公平:某某的能力和排名不一样。它不匹配。 如何解决这个问题?一般来说,必须达到两点。一是严格遵守能力模型和职级制度,确保公平公正;二是奖金与工资分开。奖金是对业绩的肯定,工资是对能力的认可。事实上,许多成熟的公司今天仍在使用这种方法,因为它很有效。不幸的是,我见过很多小公司,因为舍不得发奖金,硬生生把创业变成了兼职。这样的悲剧应该尽量避免。 如果你对推广有其他的看法,或者有独特的心得,欢迎留言告诉我。
