(九)
我辞别了小李,过了马路,进了咖啡店。
小童早就已经到了,我们俩点好了吃的,小童说:
“恒华大学的那个赵教授(见《语言学家》),你还记得不?”
“当然记得啦,他现在过得怎么样了?”
“挺好的,他今天给我打电话了,还特意提起你了呢!”
“哈哈,这老头挺有意思的。”我笑道。
小童喝了口咖啡,说:
“上回咱们俩帮了他,这回他帮咱们俩找了个好差事。”
“什么事?”
“咱们市郊区最近新发现了一个战国古墓,正要发掘,那边需要公安局的人帮着维持下,还需要记者现场跟踪采访,赵教授就向他们考古队推荐了咱们俩,这个考古项目是由恒华大学考古研究所考古队负责的。”
我们俩正说着,服务员上菜了,把我点的罗宋汤端了上来。
“有什么好处啊?”我随口问道。
“每天有100的补助啊”
“就这么点啊。”我喝了一口罗宋汤,说。
“据说这次出土的东西,可能会很重要,有可能震惊整个考古界,并且可能会改变很长时间以来我们对一些事情的看法。”小童说。
我拿了片面包,放了点果酱,说:“有这么厉害?什么东西啊?”
“据说是战国时期的一些竹简。”
“有意思。”我咬了口面包,想了下,觉得还真不错。
“比上次从香港弄回来的那批(指“清华简”,详见百度百科)还轰动?”我问小童。
小童的那块面包已经咬了一半了,听了我这句话,嘴就停住了,说:
“你也懂这个?”
我得意起来,道:
“那是啊,我是谁嘛。你没看到我点的吃的吗?罗宋汤、生煎包、意大利面、土耳其烤肉,土洋结合,我肚子就是杂货铺,什么都有!”
小童笑着看着我,说:
“那赵教授推荐你,还真是找对人了!”
我喝了口汤,对小童说:
“对了,我最近遇到一个案子。”我就把整个田雨自杀的这个事情给小童讲了,包括我的分析和想法,当我讲到最后的时候,我说:
“其实我本来想告诉你这是个无意义的案子,就是跟你随便聊聊,但是刚才我说完最后一件事的时候,我忽然明白了,我知道是怎么回事了!”
小童皱着眉头,说:“你让我想想,你这个案子有点复杂。”
我让小童冥思苦想,自己一边喝汤,一边吃意大利面。我的面吃到一半的时候,小童说:“你说是怎么回事吧,我没想明白。”
我用叉子叉着盘子里的面,说:“你知道不知道杯弓蛇影这个成语?”
“知道啊,怎么了?”
“如果让你恶心一下现在吃面的人,你会怎么办?”
“你是说,告诉吃面的人,他吃下去了一个虫子?”
我赶紧把面推到旁边,说:
“意思就是这个意思,其实田雨这个案子,和这个类似。”
我看小童还没明白,我就解释道:
“田雨只有一台电脑,而电脑里的代码都是加过密的,并且电脑里没有存在过未加密的代码。实际上,我最初的推论是正确的,田雨就是用自己的脑子,人工把代码加密的,他这么做,就是为了让别人无法解密。而他主动替小李把小李的那部分也做了,目的是为了让整个项目的所有逻辑只控制在他一个人手里,其他人不但没有参与进来,而且在真正需要的知道的时候一点头绪都没有。在加了密之后,田雨自己又死掉了。这就导致了这样一种情形:没有破译的方法,写这些代码的人又死掉了,这样代码里的秘密到底是什么,世界上就不会再有人知道,成了一个永远的迷。田雨临死前把代码提交给公司,而公司由于重新编写成本太高,时间又来不及,田雨的代码虽然加密了,但是可以用,所以还是采用了田雨的代码。这一点也应该是田雨生前预料到的,因为田雨多次指责过公司的做法是拆东墙补西墙,只要是能将就着用,就不会再做新的。就这样,公司在田雨代码的基础上,又做了二期和三期,甚至以后还可能会做四期或者更多,这个项目实际上养活了这个小公司。”
我喝了一口咖啡,继续说:
“这些都是田雨生前设计好的,公司会有更多的人来参与这个项目,但是这个项目中始终存在一个不确定因素:就是加密的代码里面到底有什么,这是一把始终悬在他们头上的达摩克利斯之剑。而老板和销售人员,不会为了消除这个隐患而赞同重新把代码写一遍,因为在田雨提交代码的时候,他们只要把代码交付给客户,就可以立即得到客户的回款。如果选择重新写一遍的话,不光时间上他们会等不及,而且眼看就到手的钱,他们也舍不得松手。得到钱之后,他们也不会去考虑逐步消除这个隐患,因为这个隐患在他们目前看来实在是微不足道的,影响不了什么。他们想着立即再做二期、三期,来赚更多的钱。这个项目就这样被越做越大,可能会真的推广到市里、省里或者更大的范围,这都是有可能的。但是实际上这个隐患也越来越大,他们为这个隐患而撒的谎和付出的代价也越来越大。直到某一天,这个谎实在太大了,实在撒不下去了,纸里包不住火了,他们吹出来的气球爆炸了,这样,凡是卷入到这个事件里的人,都逃脱不了干系,那时候,可能付出的代价就不仅仅是我们现在说的人力和物力这么简单了,而可能就是生命的代价了。”
我顿了一下,小童立即问:
“可是即使是这样,这也只是一个隐患,而并不是一个事故啊,仅仅是有点加密的代码,怎么会导致事故呢?你说的到最后会发生的气球爆炸指的是什么呢?代码里面病毒爆发?”
我说:“田雨如果只是简单地写个病毒,那么他报复不了几个人。我推测实际上他的代码里面一点病毒都没有!只有这样,公司才会采用他的代码,并且在他的代码上,继续一层一层地盖高楼。当楼房盖到很高的时候,当楼房需要给许多人住的时候,当楼房需要面对媒体和社会公众视线的时候,有人提出:这个楼房的地基是什么材质的?结果我们才发现,这个楼房根本就没有地基的图纸!根本就不知道地基是怎么盖的!你说这个楼房会有人去住吗?这个楼房的结局可想而知。而到了那个时候,这个楼房已经非常高非常大了,并且牵扯着非常多的人的利益,但是这个楼房是一定要拆毁的!”
小童又问:“你说的这个过程,应该是一个漫长的过程啊,你怎么知道在这个过程中,公司一定不会去投入人力和物力,来重写田雨的代码,替换掉这个不稳定的地基呢?”
我喝了口咖啡,笑了笑,说:
“起初我也是这么想的,我感觉田雨的这个报复是不成立的,因为只要公司老板在最后出事之前的随便某一个时刻,稍微下一个决心,抽出点人力物力,重新把田雨的那个工作再做一遍,就可以消除这个隐患了,如果这样的话,田雨的报复就失败了,田雨就白死了。可是现在我发现:这些只是我们这些袖手旁观的人的想法,我们对公司的了解,还是没有田雨深。”
我顿了一下,留给了小童十几秒的思考时候(跟丁友田学的,见《语言学家》),继续说:
“田雨算准了公司不会这样做!并且事实也恰恰证明了田雨的想法:公司没有选择重新做一遍田雨的工作,而就是为了省事和方便,采用了田雨的代码。不光在这一次采用了田雨的代码,而且还继续在田雨的代码的基础上,去做了二期和三期,而且还有继续做下去的意思。”
我喝了口咖啡,润了润嗓子,继续说:
“为什么是这样呢?因为公司着眼于目前的利益,感觉这只是代码加了密,还是能够用的,所以就没有在意这些事。就这样项目越干越大,真正等到了需要修改田雨代码的那一天,他们就会发现,修改的成本已经太大了!即使是公司倾家荡产,也无法修改了!这就是公司的思维:他们永远不会为了一个未来的目标而放弃眼前的利益。重写代码、牺牲眼前利益的事,在他们看来是无意义的。否则田雨不会因为这些事与公司的老板多次争吵。”
我说:“公司的老板可以容忍田雨提交的代码略有瑕疵,但是他们不能容忍田雨要干的工作不能给他们带来现实利益。田雨最后就是看准了这一点的,所以他做出来了一个有隐患但是能带来现实收益的东西,而老板毫不犹豫地吃下去了,这个就是导致最后悲剧发生的种子。”
小童嘴里念叨着:“真是太匪夷所思了,太匪夷所思了……”
小童又问:“那按照你说的这个意思:田雨的报复真正实现的条件,必须是这个项目推广到很高很广的层面,就是真像那个徐总说的,推广到了市里省里,这样才会有舆论监督,才能到了阳光下,才可能出现大楼被拆毁。可是按照你说的这个意思,这个小公司这么不正规,整天拆东墙补西墙,它怎么会做大呢?这个项目怎么可能推广下去呢?”
“我估计田雨生前也想过,我当初认为这个事情是无意义的,也是因为没想明白这一点。”我看着在门口满脸倦容的服务员,对小童说:
“很多事情没想明白,就是因为你是个局外人。你说如果项目做不大的话,田雨还需要报复他们吗?当然不需要了,因为如果还是个小公司、小项目、小成本、小收入,那么他们天天为温饱发愁,日子过得一点都不如意,这不就是上帝的惩罚吗?根本就不需要田雨动手啊。”
我指着那个服务员,对小童说:“其实他心里怎么想的,我们很难知道,尤其是他在这站了将近二十四小时之后,他的心态,只有同样经历的人才能想象得出来。我们一直以为这个公司这样的做法是不对的、不规范的,这样做下去不会做大,但是实际上呢?恰恰相反,它在逐步地变大。”
小童还是很不理解地说:“即使是你说的这样,不过事情从田雨自杀发展到现在只是几个月的时间,这一段时间的确是按照田雨想象的去发展,但是这只是一个开始啊,未来要是真正发生田雨预料的事情,那需要非常长的时间啊!那需要经历非常多的事啊!田雨仅仅靠着一个对公司发展的直观推测,就把自己的命都赌上了?他靠什么来保证公司会按照他的设想一直做下去?如果公司不是那么固执呢?只要出一点差错,那结果可能就不一样了,那么田雨不就白死了吗?”
“这一点我也想到了,我们可以做一个简单的试验:证明我的推理,回答你的问题。”我看着小童说:
“我们可以立即去公司,把我们今天想的和推测的,都源源本本地告诉公司,并且强烈建议公司立即替换掉田雨的代码,你说公司会采纳我们的建议吗?”
小童有点犹豫了。
我说:“公司不但不会采纳我们的建议,反倒可能会认为我们另有目的!”
“你怎么这么确定?你又没去试过!”
“这个还用试吗?田雨生前不是一直在试吗?”
(《混淆的代码》结束,下一个故事:《八仙过海》,原本的顺序下一个故事应该是《逆靖本谜案》,之后是《玩具店之夜》,现在调换下顺序,把《八仙过海》放到前面。)