前言

这是一篇亲身经历的真实记录,事情发生在2010年。狗血剧情一再上演,使我的程序员生涯变得跌宕起伏,也从中学到了很多。

在写这篇文章之前,我还专门去查了这家公司的资料。有如下事实:

1.官网已经打不开了。

2.天眼查上可以看到公司有4项失信信息,均为2015年之前法院判决的偿债通知而未履行。

我心中一阵感慨,但愿前东家一切安好。往事如烟,却一切历历在目。

画大饼驱动的梦想

公司当时研发的是智能家居设备,兼容可视对讲和家电控制。而我在公司从事家电控制研发这一块。研发总监大刘是一个很技术厉害的人,工作非常拼命,起早摸黑,每周工作6天半。后来才知道,老板和大刘之间是有股份承诺的。所以大刘拼了命给公司干活,也是图有个较好将来。大刘带领一帮同事苦苦干了一年多,产品逐渐出来了。

股份无法兑现,研发总监出走

产品已经弄的差不多了,研发总监自然就要向老板讨要承诺的股份。此时不讨,更待何时?难道还要等产品稳定,研发总监没有价值的时候讨吗?最后的结果自然就是谈崩了。这是很自然的结果。公司不是老板一个人的公司,要给股份可以,股份从哪里来?其他股东同意吗?这些都是一个很大的问题。总不能让老板一个人把自己的股份转让给技术总监,老板也不愿意。最终的结果就是研发总监离职。

上一个刚走,下一个就来

在深圳,最不缺的就是人才。上一个研发总监刚走,下一个研发总监马上就进来了。而且来头要比上一个更厉害,是华为港湾出来的研发副总。这么厉害的大牛进来,当然不是光靠工资就能请来的。老板当时就有承诺,产品做到一定阶段就会兑现相应的股份。

找出产品一个“致命缺陷”

新总监进来之后,就要对产品进行测试和制定后续研发策略。当时进行压力测试的时候,发现产品的串口发送数据常常会被冲死。数据量一大,就会异常。我们反复测试,一直找不到这个原因在哪里。我当时也是很费解,为啥之前产品测试都是好好的,但是新的研发总监进来之后,产品就出现了这样的问题。当时代码已经交给新的研发总监,然后再出版本给我们的。

产品推倒重来,再上路

因为解决不了这个串口的问题,公司高层开了很多会议来论证,判定是这个设计的方案有问题。我们当时嵌入式设备采用的是Linux系统,讨论的结果就是Linux系统的串口驱动有问题,无法解决。需要把Linux系统去掉,然后裸跑,做到代码每一步都可控。这就意味着软件要推倒重来。就这样,新总监带着我们,又一顿猛如虎的加班操作,经历大半年的吐血努力,新的产品慢慢又做出来了。

一行代码的过错

新产品出来之后,就要进行测试。其中我负责的一项工作,是与上一代产品做对比测试。经过测试对比,我们这一代产品,在串口的数据吞吐方面,确实大大优于第一代产品。但这个再一次勾起了我的疑惑,Linux驱动应该是成熟的,怎么会有这么低级的问题呢?于是我想办法拿到了上一代产品的源码,从Linux的内核开始追踪,一直追到串口驱动。我竟然有了惊人的发现,串口驱动被修改了,加入了随机延时的功能!

这个随机延时是怎么实现的呢?

就是每次调用驱动的时候,就去取0~10的随机数,如果结果命中3,则会延时若干毫秒。这一发现差点惊瞎了我的狗眼,难怪上一代产品会出现间歇性被数据冲死的现象。当时,我仿佛明白了好多事情。

瞎猜测

当时我作如下的猜测:

1.给别人擦屁股,是最辛苦而没有价值的。新的研发总监也不愿意给上一代产品擦屁股,只有自己创造一代产品,才有资本和老板谈判。

2.产品的驱动确实是被修改了,这个我和原版的驱动做过对比。但是谁改的呢?至今无从考究。

我知道这件事之后,虽然觉得老板很可怜:因为这么一个小问题,导致产品重建,消耗了大半年的功夫。这大半年的时间的成本是巨大的。但我一直没有对任何人说过这件事,直到今天把它写出来,忽然内心畅快了许多。

股份,还是股份

我们中国人做事情的思维习惯是这样的:我刚进来还没有做出业绩的时候,我什么都不说;一旦我做出业绩了,我该要的就一定要得到,不然就鱼死网破咯。产品做的差不多了,研发总监就屁颠屁颠的去找老板邀功,讨要股份。结果,,,还是你想的那个结果。哪里有什么股份,打工的向东家要股份,99%的老板都是认为不合适的。工资已经给你了,凭什么还要给你股份?

不给股份,再见

研发总监和老板谈不笼,迅速辞职,剩下一帮惊得目瞪口呆的程序员。他们异口同声的说出了这么一句世界上无人能翻译的英文:WQNMBD,之后纷纷辞职。然后,就没有然后了。

总结

这篇程序员生涯回忆录,说的有点玄乎,但是句句真实。相信很多人在职场,都碰到过很多这样的狗血事。这样的事还很多,如果大家想要和我探讨,欢迎和我联系。