马云说员工离职的原因林林总总,但基本上可以归结为两点:钱,没给到位;心,受委屈了。这些归根结底就一条:干得不爽。这篇文章咱就来看看程序员会因为哪些不爽而跳槽——与钱无关的那些哦。
2B领导
为什么把“2B领导”放在第一位?
因为相当一部分人离职,是因为他们觉得领导很傻B、不专业、不称职、不配领导自己,在这样的2B领导治下,干活让人绝望。
2B领导通常不把程序员当回事儿,认为程序员就像机器,只要按吩咐干活儿就行。他们通常不尊重程序员和程序员的劳动。比如他们可能会说这些让人难堪、窝火、愤怒的话,丝毫不考虑程序员的面子。
“又请假?活干完了吗?”
“我觉得这个需求简单得很,一天搞定。”
“干不完就加班,通宵也得搞定,明天一定要上线!”
“干活不动脑子啊!”
“这肯定是你改出来的Bug!”
“活都没干完,还一下班就走,一点儿责任心都没!”
“你昨天怎么没来加班啊!”
“咋这么不让人放心呢,这么简单的事儿都搞不定!”
“没见过你这么笨的家伙!”
有的领导喜欢给程序员扣屎盆子。
比如网站新版上线后,购物车功能不正常,要添加的商品超过4个就崩溃,上级领导问起,2B领导就会说:“购物车是张三负责的,估计什么地方没注意,我下来马上找他确认。”
比如上级领导问项目为什么延期,2B领导就会说:“张三、李四效率太低还不愿意加班,卡在他们那儿了。”
还有的领导,就是个传话筒,上级领导说网站要改版一个月后上线,他一口就应承下来,答应一个月后上线。然后转过身来就吩咐这帮苦逼的程序员:“领导要求一个月内必须搞定,大家辛苦点儿,加班加点也要搞定。”
你有没有评估过可行性啊亲,最起码应该问问这帮程序员啊亲!
还有的领导天天都表现得像更年期的祥林嫂一样,一天能跑过来问你十次:“阿猿,怎么样,什么时候搞定?”
还有的领导老怀疑你不干活,经常假装走过你身边,瞄瞄你的显示器,然后问:“嗳你干嘛呢?”
还有的领导自己很轻松,天天早早下班不说,临走了还给你来一句:“我先走了啊,各位辛苦。”
还有的领导自己的事儿也推给别人干,“张三,帮我写个月报。”“李四,帮我汇总一下项目状态。”“小三,我明天去客户那里交流,你帮我做个介绍项目的PPT。”“阿媛,告诉大家今天加班。”“小刘,告诉王五让他晚上盯着服务器,美国那边要演示,千万不能出问题。”“小四,打电话问问小三为什么到现在还没来。”……
还有的领导只关注你的错误,你犯错了他们就会揪着不放。你干得好,他们就认为是理所应当,上级领导表扬时,丝毫不提程序员们的贡献。比如你提了一个可以避免90%进度问题的过程改善方案,他向领导汇报时居然一句也没提到你。比如公司都知道项目被卡在Win7 64位驱动蓝屏上,老板也知道了,你解决了这个问题,老板表扬你们团队,领导居然不提你的名字……
还有的领导,总是让你自己去解决应该由他解决的问题。比如你告诉他“电脑太慢,编译一次Android系统要10个小时”,他就让你去想办法,诸如晚上编译、添加-j4参数什么的。比如你要开发iOS应用,老板不舍得配Mac电脑,他就让你去装黑苹果,还限期搞定。比如你告诉他需求三天两头变,希望他想办法改善这种状况,他就会说这都是不可避免的——开发应该拥抱变化……
还有的领导,分不出谁能干谁不能干,甚至有时会很亲近那些偷奸耍滑的家伙。
一个不合格的领导,会把一个团队带向深渊,有追求的程序员会一个一个走掉。
死水文化
如果一个团队缺乏朝气,死气沉沉,大部分人得过且过,当一天和尚撞一天钟,那也很难留住有追求的程序员。
比如你看到公司的认证服务器采用的方案是“一个线程处理一个客户连接”,这种方案很难应对高峰期的大并发访问,找架构师讨论是否该用NIO或者MINA来重构一下,人家都不愿意搭理你……
比如你觉得公司的商品搜索服务每次都返回所有结果,而手机上一页只能显示10个,当结果超过200个时解析就会很慢,超过1000时简直就不能忍受,你去找实现搜索服务的哥们,他告诉你说“需求没提,别管它”,你去找开发手机客户端的哥们,他告诉你“先这样吧,要实现分页查询又得改接口又得改逻辑,太麻烦了”……
比如你在用公司的Android客户端时发现商品展示页面,翻页多了程序会崩溃,猜测可能是图片占用内存太多出现了OOM错误,可是负责客户端的哥们儿说,“用户绝对不会像你那样一直翻页的”……
当大家对代码和产品没有追求没有感情觉得怎么着都成时,追求完美的你,就会感到格格不入,这样半死不活的团队,你是不愿意待下去的,除了离职,还有别的选择吗?
猪队友
有些领导没办法识别团队中坏了一锅汤的那粒“老鼠屎”,这会让兢兢业业勤勉上进的其他成员感到不公。
不怕神一样的对手,就怕猪一样的队友。
绝望的产品
当你遇到这样的产品:方向不明、市场不明,号称要跟随市场脚步,找不到自己的定位和核心竞争力,各种乱改需求,程序员们像堂吉诃德一样可笑的战斗,我的while(true) 啊……
路越走越漫长,看不到一丝光亮,心越来越绝望……break,必须的啊。
不受重视,被严重边缘化
有时你自己觉得有才有能力,却总被安排打下手,深深觉得不受重视,有一种英雄无用武之地的感慨,此时也有必要考虑换个能发挥你长处的地方。士为知己者死,千里马需要伯乐。在不对的地方跟着不对的人,很难做出对的事情,自己也很难由此成长起来。
不被尊重
公司不尊重人,领导不尊重人,看不起下属,内心不屑鄙夷,动辄横眉冷眼呼来喝去,甚至把程序员当牲口用,给你头上蒙个黑布罩就想让你拉一辈子磨。他只当你是一颗小石子,用得着就捡起来,用不到一脚踢飞。这样严重缺乏基本尊重的环境,敏感、自尊的程序员是绝对无法忍受的。
发展空间
团队里没有高手,连个切磋的人都没,何等寂寞。遇到问题没人能搞定,何等无奈。
你只要完成上头交待的任务就行了,你的技术之路如何发展,你在公司的职位和等级怎么晋升……从来没有人找你谈过,也没有人真的关心你。
你只要干好你手头的那块工作就好了,其他的你不要管。
你只要熟悉这项技术就好了,每次分配任务都根据你现在掌握的技术来定,你只能干你能搞定的活儿,不给你接触新技术的机会。当你决定要用一个新技术来实现某个功能时,领导就会告诉你完成任务是最重要的,冒险是不允许的。
要知道,很多程序员之所以愿意做开发,就是有强烈的学习兴趣,愿意不断挑战自己。失去学习和锻炼的机会,在这里待着还有什么意义呢?
要知道,每个程序员都希望自己的竞争力越来越强,眼看着只能拿个锤子敲一辈子钉子,谁能压抑住野草一样生长的忧伤与绝望?
薪水倒挂
有的领导很奇葩,宁愿花更多的钱请新人,也不给老员工涨工资,以至于同样的工作经验,新来的人工资居然比老员工高一大截,这叫辛辛苦苦兢兢业业的老员工情何以堪啊。
这不是钱的问题,而是领导的观念问题。
没有来由的加班
假如要配合某个市场节点,加班加点赶进度,这可以理解。
假如线上产品有重大Bug爆出,加班加点Hot Fix,这可以理解。
假如我是新人,还不能胜任目前岗位,加班加点能提升自己,这可以理解。
假如我负责的模块因为我的个人原因进度落后,可能导致项目延期,加班加点向团队看齐,这可以理解。
假如竞争对手突然爆出一个彪悍的功能,我们的用户大量流失,产品必须迅速跟上,加班加点挽回损失,这可以理解。
假如只是老板觉得看不见人加班心里不爽,这让人怎么接受?
假如领导总是错误估计工作量,导致每次都要加班加点为领导的轻率买单,这让人怎么接受?
假如领导安排任务时就把加班加点算计在内,这让人怎么接受?
失去激情,无法投入
当一个程序员的心已不在所做的事儿上,无法保持激情,也不能全身心的投入,整天懒洋洋的,干好干不好都不在乎了,那他也该和当下的工作说拜拜了。因为这种状态,消磨的是自己的生命,不愿蹉跎岁月的程序员,是无法接受自己这种状态的。
与BOSS关系紧张无法调和
有时程序员和老板或上级发生矛盾(比如经常性的在某些事项上分歧严重),经过努力也无法调和,那很可能会给他带来比较大的压力和不适,让他心生不公、委屈、厌倦、绝望,感到再也无法待下去了……
本文选自程序员电子版2015年6月B刊