各位程序员朋友,跟我一起思考一个问题,老板给程序员涨薪和晋升,看的是程序员的技术能力?还是程序员通过技术知识给公司变现的能力?
小A和小B是两个程序员,小A年轻一些,小B经验丰富一些。小B平常酷爱技术,在开源社区有很多贡献,博客文章深受大家喜爱,公司里的程序员都认可小B的能力。小A刚刚毕业,技术能力一般。
小A日常工作中发现有的接口报错文案含义不清晰,所以他整理了这些报错文案,跟着负责售后运营的同学逐一核对了一下。把其中一些报错文案修改成了客户比较容易理解的文案。因为小A调整了这些文案,所以相关的售后客诉工单量显著下降,售后运营团队甚至节省出1~2个人力。按照售后运营的平均工资换算一下,小A给公司节省出了每个月两三万块钱的成本。
你觉得小A做得事情,是一个技术含量很高的事情吗?
那你是老板,你该奖励谁?
但同时小B积极组织技术分享,帮助团队里的其他同学共同提高技术能力,你觉得老板该奖励谁?
老板不会因为你技术牛逼就奖励你,只会因为你技术牛逼能给公司赚钱才奖励你。
你在一个业务团队里,提升操作系统领域的高深技术知识,跟提升你打羽毛球的能力一样,这是你的业余爱好,老板压根不关心。
如果有人把职场当成学校,觉得我技术能力达到一个层次,就应该上升到在一个级别,那就是彻底误会了职场。职场是赚钱场,不是学术场。晋升不是一种荣誉。
咱们程序员,是一种"专业技术人才"。这跟厨师对于饭店,教师对于私立学校,医生对于私立医院是一样的。在全世界各种类型的企业里,管理专业技术人才,都是一门专门的学问。
因为专业技术人才的发展,跟企业赚钱的核心目标之间,存在一个夹角。专业技术人才最核心的工作是提高自己的技术能力,他提高了技术能力以后,可能低成本地迁移到别的公司去。一个程序员一开始在一个互联网金融公司工作,他跳槽跳到了一个搞教育的公司。难度大不大?显然是不大的。而一个产品经理如果从互联网金融行业换到教育行业,就基本等于要重头再来了。
虽然这个夹角是个小夹角,但是随着程序员能力变强,这个夹角就会导致程序员的利益和公司赚钱的利益距离越来越远。我上一家公司就发生过这么一件事,产品经理给程序员提需求,程序员拒绝实现,说"这个需求没有技术挑战,对于我个人技术成长不利"。
所以所有公司对专业技术人才的管理,都特别强调"业务sense"。说的就是让专业技术人才向公司赚钱的核心目标靠拢。
前几天有人问我,程序员走专家路线晋升有没有可能。我的答案是只会越来越难。
因为互联网发展了这么多年,基本上已经没有什么特别复杂的技术难点是只有你会别人不会的了。你会别人也会,别人会你也会,大家彼此差距很小。如果现在一个程序员说"我很强但是我领导不提拔我",我觉得他大概在吹牛,因为现在这个时间节点,已经很少有程序员的技术能力比别人强到能明显区分出来的地步。
而且业务发展到现在这个阶段,也很少有哪个业务是因为技术核心卡点导致赚不到钱。
一个业务发展的不同阶段,对于程序员的特点要求是不同的。
在业务发展初期,最需要的程序员是从事过同一行业的程序员。因为他们知道这个行业里有哪些"坑",重用这一类程序员可以让业务早期快速发展。
还有就是能吃苦肯加班的程序员。
反正这个阶段的要求核心就是一个字:"快"。谁更快,谁就更能赚到钱。
业务发展第二个阶段,基建已经搭起来了,业务发展越来越多变,需求点越来越奇怪,导致代码很难维护,变成屎山。
这个时候对程序员的要求就是架构能力强,谁能让代码更松耦合,需求上线更灵活更快,谁就能给业务赚更多钱。
或者此时业务赚钱的壁垒是某一项关键技术,没有这个技术就赚不到钱。这个时候就需要某一个方向的专家了,专精方向的程序员更受欢迎。
再往后,技术债务积累,线上系统连做到连续稳定运行都很难了,非常影响公司赚钱。这个时候公司就急迫的需要擅长质量管理的程序员。
业务继续发展,产品经理能赚钱的点子都想的差不多了,系统重构的也差不多了。这个时候就比较需要业务方向的程序员,他能从技术实践的角度去思考一些赚钱的点子,能给公司赚到更多钱。
或者是擅长性能优化的程序员,能把硬件资源的成本减下来,也能帮公司赚钱。
我所描述的顺序不是固定的,别在具体细节上跟我抬杠。我想表达的核心是,公司需要人才的特点,是与公司面临的市场环境紧密相关的。
我记得前几天有一个人在我的帖子下留言,抱怨职场不公平,说高层有人随便修改晋升规则。
从来没有任何一个具体的人,为了故意恶心你而修改晋升规则。修改晋升规则,是围绕着老板想赚钱这个核心目标,对市场变化作出的反应。
你要是把职场想成学校,那你就大错特错了。别人去年考了100分晋升了,我今年也考100分,为啥不给我晋升?是因为公司去年需要物理人才,今年需要化学人才。或者公司已经有一个物理人才,不需要第二个了。
你们有没有想过一个问题,为什么研发的职级序列是从1-2开始,而产品经理从2-1开始?为什么研发的年终奖是三个月,而产品经理是6个月?
这是因为从岗位职责上来说,产品经理的岗位要比研发的岗位更靠近给公司赚钱的核心目标。研发是靠自己的技术能力给公司赚钱,而产品经理的职责就是直接给公司赚钱。
一个校招生程序员加入公司,老板扔给他一个需求。他的任务就是把需求文档翻译成代码,他需要做什么创造性的思考吗?不需要。
一个产品经理校招生加入公司,领导扔给他一个任务,"你把某个页面的漏斗率提升3%"。他得自己去琢磨,没有人教他。他要是问他的老板具体该怎么做,老板就会觉得这不是我交给你的任务吗?你怎么又原封不动扔回给我了?
产品经理要为公司赚钱展开创造性的思考。
劳心者治人,劳力者治于人。创造性的思考才是更有价值的工作。
这篇文章所描述的一切,都是从老板想挣钱,这个核心目标推导而出的。这就是为什么我管它叫"第一性原理"。