我离开了Coverity

在写这篇博文的时候,我已经不再是 Coverity 的员工了,我已经在今天下午向公司正式辞职。

走出公司的大门,我觉得一身的轻松。这是我几个月以来第一次感受到加州美丽的阳光,AT&T Park 到处是欢笑的人群,他们是来看巨人队的棒球赛的。我第一次发现他们的面庞是那么的美,那么的友善。湾里的海水也格外的蓝,水面上船帆招展,一幅恬静自然,其乐融融的景象。我就像是一个刚从 Alcatraz(恶魔岛)释放出来的囚犯。我已经很久没有欣赏过这样的风景了,虽然我每天都从这风景中走过。

进入 Coverity 之前,我就在 glassdoor(一个让员工评价自己公司的网站)上面看过给它的评价,只有 3.2 颗星,只有 44% 的员工愿意推荐朋友去那里工作。评价者们写到:“管理队伍非常不成熟”,“不重视自己的员工”,“高层总是互相打架”,“每个星期都有人莫名其妙的被炒鱿鱼”,“过劳工作,工资太低”,“工程师非常聪明,可是不受尊重”,“你不再是一个人,你是一个数字”,“对新人不友好”……

可是就在六个月以前,我认定了 Coverity 拥有我想要探索的技术,而且想当然地对自己说,也许给差评的都是销售人员,或者他们自己有问题?而且往加州飞一趟面试也不容易啊,单程就是 7 个小时。所以尽管如此的恶评如潮,还是加入了这个公司。现在我如愿以偿了,Coverity 的产品里确实有一些不错的地方,我很快的把它们都“偷学”过来了(虽然他们压根没教过我)。Coverity 实现了几个我设想中的点子,从而让我眼光的正确性得到了免费的证明。

然而我也逐渐地看到,glassdoor 的评价者们对公司的每一条批评,都一一的兑现了。管理层的高压,以及对自己的身心健康的考虑,是我离开 Coverity 的真正原因。就在离职之前,我因为头痛请了两天假。回到公司的时候领导很不高兴,把我叫去办公室,说:“你请假两天。我想起这两天还付给你工资,那个心痛哟……” 我的 PTO 之前一天都没有用过,从早忙到晚紧紧张张的,给你们创造了多少价值。现在我身体不适请了两天假,你居然说心痛那几百块钱!

这是一个既有高技术含量,却又极其吝啬而压榨的公司。Coverity 的软件技术难度非常之高,工程师的水平必须得高于普通程序员才能胜任这里的工作。有多少人会做这样高级的静态分析软件呢?极其稀少!好些员工都有博士学位。可是这些极其聪明的人,却并没有得到他们应该得到的待遇和尊敬,他们过着非常不轻松的生活。他们的工资并不比其它公司打酱油的普通程序员高。而且每个人的头顶上,都仿佛有一双眼睛在随时盯着,督促着你干活。

你一天工作了多少个小时,每个任务的“估计时间”,你花在任务上的“实际时间”,全都使用一种叫做 Jira 的软件进行记录。正如评价上说的,你确实只是一个数字。你的工作效率按照(实际花费时间 / 任务估计时间)这个比例来简单的判断。这个数字越大,那么你的效率就越低。看你工作效率的时候,领导才不会管你到底做的是什么事情,也根本不看你的代码,所以就算你水平很高,他们也完全不知道你代码的质量。开会时 manager 会不断地提醒你,这个用来衡量你工作效率的黄金公式,提醒你要做“top performer”,因为他们只愿意留下 top performer……

这句话潜在的含义就是在警告你,如果超出时间过多,你随时会有被解雇的危险!我发现每个任务的“估计时间”都被故意设置得非常短,它是由完全不写代码的 manager 和 architect 设定的。有些问题本来需要好多天的,也被设成4个小时,8个小时的样子,所以几乎每个任务都无法在估计时间之内完成。那怎么办呢?为了不显得笨,你就只有加班加点。每个人都工作到很晚,然而为了显得自己是称职的员工,几乎没有人敢把实际花费的时间记录在 Jira 里面,因为这样按照公式,你的 performance 就下去了。所以就算你熬夜完成任务花了14个小时,你也只敢记录8个小时作为“实际时间”,跟估算时间扯平。甚至记录比8个小时还少的时间,这样显得自己很聪明…… 殊不知,这正好中了管理层让大家拼命干活,尽可能免费压榨劳动时间的诡计。

曾经有一个人就是精确地记录了时间,最后他被解雇了。Mark 是一个波兰来的同事,是个 senior engineer,人非常友善而且聪明,同事们都喜欢他。可是这个人太敬业了一点,他桌上摆着一个国际象棋对弈用的那种计时器,上面有两个钟,用两个按钮来切换计时。Mark 用它把每个任务的时间都兢兢业业地记下来。在交替处理两个问题的时候,甚至还利用这个计时器的切换功能,分别记录时间…… 然后忽然有一天,他从公司人间蒸发了。我们收到一封来自 manager 的 email:“今天是 Mark 的最后一天。如果你们对此有什么问题,来问我好了!” 看这口气,我们哪里敢问问题。后来同事们议论说,显然他被炒了鱿鱼,连跟我们说再见的机会都没有。我想跟 Mark 保持联系,也许还可以打听一下到底发生了什么事情,发了一封 email 询问他的个人联系方式,结果无法投递,因为他的内部 email 立即就被停掉了。

这个公司一星期一大会,一天一小会,要你报告前一天完成了什么,今天准备做什么。仿佛生怕你就偷懒了。这就是他们所谓的“Agile”管理模式,其原理就像是操作系统一样,把人作为可以任意调用和替换的“进程”,并发执行。很可惜,这种管理模式,加上过劳赶工,无法清晰地思考,造成了软件质量的低下,bug 多得不计其数,而且难以修复。

最令我惊奇的其实是 manager 的言语里随时透露出来的威胁口气,仿佛随时都在质疑员工的工作态度和积极性,随时都在检查员工是否工作够了时间,随时都在琢磨要炒谁的鱿鱼。这是极度的不自信,仿佛他们不相信有人真的愿意为他们工作,随时都在对员工察言观色,生怕一下子走人了没人来给他们修补 bug。所以公司里总是感觉一种人人自危的气氛。感觉这怎么不像是一个高科技公司,而是麦当劳呢?比麦当劳还小气。

我经常发现好几个工程师晚上工作到八,九点。一个同事因为住的远,6点就冲去坐 Caltrain,可是过不久我就发现他屏幕上的 VNC 在动,我能清晰地看到他在继续工作,直到很晚…… 呵呵,我为什么知道这些呢?因为我也工作到很晚!

整个公司处于一种压抑的气氛之中,很少见到人们的笑脸。有少数的人总是嘻嘻哈哈,可是那些都是 HR,Sales,…… 我不觉得他们的笑声中存在真诚的喜悦。

当我辞职的时候,HR 对我说:“随便你到湾区哪一家公司,都是差不多的情况。” 但我不相信这就是整个软件行业的情况,否则软件行业就是新的奴隶社会。我相信,世界上还存在有良心的公司。

2015年更新

有人看了这篇写于 2013 年的文章,质疑我的说法,说自己用过 Coverity 的产品,质量其实不错,哪有那么多 bug。确实 Coverity 有相当不错的 C 和 C++ 分析产品,然而那些都是很多年以前慢慢的,静心积累起来的技术。在 2012-2013 年为了拓宽市场,我们工作的重心是 Java 分析产品。这个产品是在我加入之前,由其它工程师在近一年时间之内,在 manager 的高压,威逼甚至咆哮之下赶制出来的,所以留下许许多多的 tech debt 和 bug。我工作的那几个月,完全就是在修补前人留下来的各种让人头痛的 bug。

另外,Coverity 的创始人 Andy Chou 这个人对我其实不错,可惜即使作为创始人,他当时似乎并没有掌握公司的实权。据公司早期员工口述,Coverity 本来是个不错的公司,自负盈亏。可是在一次经济危机的时候遇到了困难,所以第一次引入了 VC 投资,随后就被 VC 控制了。VC 进入之后,公司的 VP Engineering 被忽然的,非常不人道的解职。在新上任的 VP 领导下,公司完全变了样,最后成了我所描述的样子。

现在 Coverity 已经被 Synopsys 收购,然而据我调查,工程团队的领导班子并没有变,还是原来那两个 manager。不过我还是祝愿在 Synopsys 的领导下,这个公司的管理会有所改善。创始人 Andy Chou 赚了点钱,已经不再管理这个公司,开始做天使投资人。在被 VC 控制的日子里,他应该也没少忧虑,我希望他在将来的日子里快乐自在的生活。在 Coverity 我遇到了实行高压的 manager,非常讨厌的自大狂,但也遇到了一些友好的同事:Aaron,Dzin,Eric,…… 我希望他们一切都好。