华为员工中年危机

来源:互联网 发布:pca算法推导 编辑:程序博客网 时间:2024/04/29 00:46

前几天看到报道讲,华为要劝退很多35岁以上的交付工程维护人员,40岁以上的以上的程序员。国内的程序员现阶段很大程度上是一个青春饭,科技公司需要员工能加班加点拼命干,年纪大了,家庭事情多了,身体不行了,自然容易被公司淘汰。

从公司角度来讲,公司不是福利机构,现在手机和互联网行业竞争非常激烈,大家都是在被对手赶着往前走。但对个人来讲,这确实有些太残酷了。我在很多论坛上面也看到,很多程序员35岁以后,都感到非常迷茫,因为到了40岁,很多大公司的门就对你关闭了,很多招聘要求上面直接写着年龄要求40以下。

其实你看看国际上面的一些技术大咖,Lucene、Nutch 、Hadoop等项目的发起人Doug Cutting,JAVA界的大咖Doug Lea,都是老大年纪的人啦,还在写程序。年轻人写程序拼的是体力,中老年写程序拼的是经验。做程序看上去是个简单的活儿,年轻人培训培训就能干,但是有创造性的思维,和能够做卓越的技术领头人是需要经验的,当然这不一定是世界级别的。很多优秀的开源框架不是来自中国,绝大多数是来自美国,为啥呢?做程序不是一个简单的事情,它是一个很容易开始的工作,但是做到杰出,有创造性,非常非常的难。2000年初,在美国刚刚开始工作的时候,有个同事之前在Bea(当时是个知名公司,产品超越了IBM,后来被IBM干掉了)工作,他说他看到很多40多岁的程序员在里面工作,感觉自己太年轻啦。我也去面试过纽约的金融巨头Morgan Stanley,面试官说他们那里有很多40多岁的程序员。后来,我才明白为啥那些地方还需要40多岁的程序员,因为他们的产品质量要求极高,高质量的产品当然就是高利润,他们进入的是一个良性循环。

做程序员20年了,做技术管理也有10几年啦,美国的程序员见过,国内的程序员也见过,因为种种的原因,国内高质量的程序员比美国要少很多,程序员不是一个青春饭,和老中医一样,是可以凭经验和创新吃饭的,当然这种创新不一定是世界级别的,就和老中医也有知名度不同的,优秀的程序员可以抵上几十个一般水平的程序员,优秀的程序员需要懂很多知识,需要有优秀的技术能力,沟通能力,学习能力和业务理解能力。CAD,医疗软件,管理软件很多都是跨多学科的,必须懂多方面的知识,而且创新不是空想出来的,是经过大量的实践和思考才得到的。

造成国内程序员生命周期短的原因是多方面的,有程序员个人原因,也有公司和市场原因。我先谈谈个人原因吧,我遇到的很多程序员不是因为喜爱编程而做程序的,是因为听说当程序员工资高过来的。我一直认为优秀的工程师一定是有着内在的强大驱动力的,有着对程序的热爱,有着追求完美的心的,这样的人即使没有机会,他也会去创造机会,如果有了机会,就会立即燃烧起来。我领导过的软件工程师里面,这样的人很少,很多人就是打一巴掌,往前走走,你让他去多学习些东西,你问问他学一点儿,你不问,他就不学习了。之前网上看到一个故事,一个工作10年的人去面试,面试官讲他只有1年的经验,只是把1年的事情,又做了9年。团队里面告诉大家需要把代码写的优雅些,即使不是自己写的代码,也应该积极去理解,很少见到人能够做到。我一直提倡大家做有产品思维和测试思维的软件工程师,你不罚他钱,他还是出很多低级的BUG。你跟他讲写代码之前,最好要想想怎么去测试,不要出现大段的IF-ELSE逻辑嵌套,这样可读性非常差,跟大家讲,明白了没有呀,明白啦,提交代码看看,还是老路子。开个技术讨论会,积极发言的就一直那么几个人,其他人好像和他们没有关系似的。当然,我们的公司也不是什么国内一流的技术公司,应该是2流公司吧,因为一流人才也不会流动到我们这样的创业公司。

公司层面上面也是有原因的,很多互联网公司是业务驱动的,技术被老板逼的每天加班加点,根本没有时间学习,提升自己,这种情况在外包公司尤其厉害。很多外包公司只是要求产品的短期完成,并不关心产品的长期发展,自然不会去关心代码的可维护性,持续发展性。对于一个有自己系统的,需要持续发展的互联网公司,这以后可能会带来致命的问题。我之前有个同事,去了一家比较知名的做票务的互联网公司,老板业务能力非常强,拉来了很多业务和融资,但是产品经常出问题,因为公司的软件平台经过几轮人的手,没有谁能够掌握全部了,遇到问题只能修修补补,公司虽然有业务和钱,但是也没有能力支撑重新开放系统,也就导致后来的不死不活。还有一个同事之前在驴妈妈干过,他们曾经2套人马,一套维护旧系统,一套开发新系统。要写出扩展性强和易维护的代码,对程序员要求很高,也可以促进程序员技能的不断提升,软件开发可以使用更少的人,对于公司来说也是一件好事。

大的公司一般分工很细,外包公司更是如此,每个员工只是流程当中的一个螺丝钉,除了少数做系统架构的人,绝大多数人对系统都没有整体认识。之前面试过一个在携程做测试的人,工作了2年,只是测试一个固定流程,而且还是使用工具来做测试,完全就是一个搬砖的角色。华为的这篇文章当中,被迫离职的人出去以后失落感很强,发现小公司根本不需要他们这样的人,也给不了他们那么多钱。其实很多在大公司呆久的人,都是在经历温水煮青蛙的事情。之前,我还看到过一篇文章’ 创业公司为什么要慎用大公司的人’,小公司需要的是技术全面的人,大公司需要的螺丝钉的专才。

公司维护自身的发展需要经历新陈代谢的过程,这是自然规律,另一方面,对被迫退下来的人员又显得非常残酷,是一个非常难解决的困局,有没有一个鱼和熊掌兼得的办法呢?我在软件行业做了20年有余了,看到听到也经历过很多不同的软件团队,我感觉现在技术研发的方式存在很大的缺陷。现在的研发模式很多是大兵团作战模式,分工过于细化,其实很多时候人都是空闲状态的,而且因为过于细化,每个人对全局没有概念,很多时候沟通的成本会非常高,而且很多错误都是在沟通上面产生的。根据我多年的软件开发管理经验,在沟通协调导致的错误会有90%以上,而且很多时候可能是致命的错误。这种大兵团的研发模式看似更加专业化,看上去很美,但实际上却问题很多。在这个体系当中,每个人的创造性是被压抑的,长期下去就成了机械运转的机器,根本无法发挥团队当中个人的创新力。一个看似100%完美的技术设计方案,还是会有问题的,而这种问题在研发体系当中一层一层传递下去,因为底层的机械执行特质,很难发现方案当中的问题,实际上很多优秀的产品都不是一次设计成型的,都是经过反复演化的。大兵团作战方式,为了保证任务传递的准确性,必须有很多很多的技术文档来支持。现实情况是,很多需求可能还没有到测试阶段,就发现需要调整了,这种大挪移的沉重做法很难适应现代的产品的快速生命周期特质。我们知道特种部队在现代战争当中的作用越来越突显出来,特种部队小而精悍,有以一当十甚至当百的能力。其实软件开发领域敏捷开发的提法已经很久了,但实际上我还没有看到一个团队是执行真正到位的。敏捷开发的实现不单单是学习它的理论的问题,就和你把特种部队战法教给一些普通的士兵就成了特种部队了吗?敏捷开发对人的单兵素质要求很高,这种体系是建立在人的素质的基础上的。我感觉大公司今后的研发应该探求这方面的路线,减人增效,应该给公司的员工创造成为全才的机会,其实全才并不代表不专,就像软件研发,很多东西是有想通性的,不是孤立的,当你打通了任通二脉,功力是大大提升的。我一直在团队里倡导做有产品思维和测试思维的程序员,程序员应该有不断追求又专又全的心态,这样的团队在团队沟通成本上面是大大降低的,而且开发可以帮助产品发现问题,大家可以互相学习,开发因为懂了测试,软件开发产生的BUG减少了很多,这样的团队当中,每个人的积极性能够被激活起来。因为我们的一些程序员懂自动化测试,离职以后找到了更好的工作,现在自动化测试已经成为趋势,懂测试懂开发的人就成了香饽饽,人的潜能其实是很大的,事实证明多件工作是可以同时做好的。当然实现这种团队的难度是很大的,人员培训是非常重要的,当一个人在公司里面可以不断的学到新的东西,不断的提升自己,他就把自己的目标和公司的目标完美结合在了一起,得到了双赢的局面。我有一个朋友是做底层控制开发的,应该是和华为交换机差不多,他也觉得大公司在底层开发上面灵敏度不够,也在推进一种工具化的快速开发透明化模式。具体这个领域我也不是专家,但我非常认同的观点,因为我在软件行业看到了这些问题。如果以后打公司能够提供员工更多的成为全才的能力,那么技术人员的生命周期将大大延长,也就不会出现现在这种困局了。

其实实现这个目标还是很难的,这就像民主和集中怎么来平衡,敏捷会制造混乱,规划会抑制团队的创造性和主观能动性。这种平衡的艺术是对技术管理者的智慧的大大的考验,强将手下无弱兵,虽然难,但不是不可能实现的。创新其实就来自于我们不满足现状,积极的去打破现状,开拓新的思路。要实现这种目标需要注意下面几个方面:

1.    人员的选拔,这种团队需要个人的能动性很强,其实谷歌也一直把这种主观能动性当做一个很重要的选人指标,需要有不断学习的决心和愿望。员工必须有强烈的愿望去参加技术研讨,积极参与进去,而不是旁观者。

2.    公司需要提供员工这种机会,对于刚入职场的新人,做一些常规的执行任务是非常必要和正常的,成为全才的前提是你先做好一个螺丝钉,千里之行始于足下。职业刚刚开始,就大谈创新,多数是不可信的(当然也有个别例外,实际上这些人在学校就已经经历很多了,严格说也不是新人)。

3.    公司需要有很好的培训机制,磨刀不费砍柴工,像谷歌这种大公司都是提供员工自己的学习时间和培训机会的,而不是一味的加班加点。其实我感觉现在很多公司对员工的方式,都已经是在拼命压榨员工的剩余价值的感觉,把公司的利益高高的放在第一位,而不顾员工的利益,这种企业以后一定会被人用脚来投票的。

居安思危,公司不是福利机构,公司需要发展,个人努力,公司怎么会有钱给大家发呢?要实现双赢是双方需要努力的,看看欧债危机吧,每天去公司打打酱油,如果公司长久下去,也就是这个结果。为啥以色列小小国家,科技那么发达,因为可以居安思危,有危机感,我一直觉得人需要活到老学到老,没有永远不倒的大树,看看几年前的银行和现在的银行,保持自己的竞争力才是根本。公司需要保持竞争力,个人也是需要的。如果总是做千篇一律的工作,不要舍不得,犹豫不决,只能让你越陷越深,每个人都是有选择的自由的,不要等你老了才发现,你已经没有选择了。

 

1 0
原创粉丝点击