接下来我要讲的,是一个因果关系的故事。
想我堂堂孙行者,曾因大闹天宫被压在五指山下。没有前因,就没有后果。无风不起浪,说的就是这个理。要解释这因果关系,就要讲到一个名叫五十岚真的男人。五十岚真的工作正巧就是“调查事情的起因”。
五十岚真独自吃着午饭。咱们的故事就从这里开始。这天,办公室十二点的铃声刚刚响起,五十岚真就起身前往附近一家名叫“釜屋”的锅饭地下餐厅,点了一份午市套餐。这时的五十岚真已有四十岁。
五十岚真已经到了孔子所说的不惑之年,但跟年龄也没什么关系,他本来就是个不惑之人。他总能理性、客观地看待问题,选择最优解并且高效行动。这些特点在他四十岁之后没有丝毫改变。
两个月前,五十岚真刚过了生日。三十岁的时候,他和一个晚于他进入公司的女人结婚,不到两年就离了婚。当然,离婚时五十岚真内心毫无波澜。他的前妻正是受不了他这种严肃呆板、只会理性思考的性格,才提出离婚。
这个人严肃呆板到什么程度呢?举个例子。有一次妻子的娘家寄来很多蔬菜,五十岚真认为家里没有可以存放蔬菜的地方,而且那个季节的蔬菜特别容易打蔫,与其放坏,不如趁早全部扔掉。
妻子提议分给邻居,可五十岚真还是不肯点头。“邻居总是很晚才回来,而且每次都提着便利店的购物袋,恐怕不会开火做饭。这样做只会给人家添麻烦。”
“可是这些菜还可以吃,我可舍不得扔掉,太浪费了。”
“我觉得为蔬菜伤感没有任何意义。蔬菜没有感情。不管是被吃进肚子消化掉最后化作粪便,还是被直接扔掉,对蔬菜来说,没有任何不同。”
“你不觉得情感比效率更重要吗?”
咱们的五十岚真是怎么回答的呢?他当然会说“我不这样认为”。他一向行事认真,绝不敷衍了事,更不逢场作戏。“人际关系给社会和经济造成恶劣影响的例子可不少。”他甚至会说,“资本主义的优势就很容易被伦理和人际关系妨碍。”
“什么意思?”
“市场本可以通过利益、需求和供给的平衡完美运转,却因为混杂了太多同情和偏袒而失效。”
妻子无法理解他把资本主义和蔬菜混为一谈的思维模式,最终决定离婚。自那以后,五十岚真就开始了独居生活。
正如诸位所见,五十岚真虽然头发稀疏、神情淡漠,但看上去比实际年龄年轻。可能因为他总是姿势端正、腰板挺直。
接下来,咱们说回锅饭餐厅吃午饭这一幕。这个故事的镜头随时可以转换,现在就能把场景从离婚前拉回到锅饭餐厅。五十岚真坐在吧台,座位对面的墙上挂着一台电视,正在播放午间新闻。
那是前些天发生的一起案件。一个十多岁的少年在家举起锤子杀害了母亲,又把邻家的少女砸成重伤。节目里很多人竞相发言,交织着各种各样的信息。“据说这孩子从高中一年级开始就拒绝上学,晚上还会发出怪叫。”“据说孩子妈妈管教严格,平时不许孩子看电视或看漫画,孩子小学时就给他看《广辞苑》,说什么‘这就是漫画书哦’。”“据说孩子爸爸下班之后就待在自己的房间,只顾玩什么斗蟋蟀。据说是让蟋蟀打架,一千二百年前从中国传过来的。”
真是一场“据说”的风暴。每当有凶残的案件发生,媒体就会拼命探究原因。如果发生了更加极端的暴力案件,他们甚至会把犯人的生平、兴趣、人际关系、案件发生前的奇怪言行全部搜集起来,像脱轨的列车一样执着,完全刹不住闸。
再怎么追查动机和导火索,也没办法挽回已经发生的案件结果,但完全置之不理也不行。“罪犯的心理阴暗面”这种说法也颇为滑稽,“阴暗面”说到底只是个隐喻,“探访阴暗面”仿佛是一场深入黑暗溶洞的探险,只为了满足人们隐隐作祟的好奇心。
要问看新闻的五十岚真有何想法,以上便是。
当然,有人相信“找出原因就可以防止类似案件再次发生”。但五十岚真清楚,普通人对犯罪原因另有所图。
人们会拿罪犯特殊的一面跟自己比对。“我家对孩子管教不那么严格,所以不会发生这种事。”“太好了,我老公从来不斗蟋蟀。”“我没给孩子看过恐怖电影。”人们把自己排除在犯罪原因之外,以获得心安。大家图的不就是这个吗?
犯罪的原因越离奇古怪,越得人心。如果犯罪条件奇特,自己命中的概率就会大大降低。
人们最喜欢的调查结果大概是这样的:犯人之所以变得这么恐怖,是因为饲养了一种叫巴布亚深山锹形虫的昆虫。这种昆虫的触角能诱使人作恶。这样一来就简单多了,只要不养巴布亚深山锹形虫就没事了。
大家都在期待这样的调查结果。
人们总爱问:“该怎么办?怎么做才能太平?”说明书和指南才应运而生。
不知不觉,电视里已经报道起别的新闻。
就是那起公寓囚禁母子案。
什么?没听说过?不会吧!
一名中年男子在公寓里圈养了一对母子。对,他们套着项圈和锁链,所以说是圈养也不为过。
怎么会在大家眼皮底下发生这种恐怖案件?
先别管那么多,总之要记住——有个男人剥夺了一对母子的自由。
这才是开启所有真相的钥匙。
“程序出现漏洞的原因大致有两种。”午休结束,五十岚真从锅饭餐厅回到公司会议室,对坐在桌子对面的程序员说。
“我说,快点说完行吗?”女程序员毫不掩饰不耐烦,看了几次手表,歪歪扭扭地靠在椅子上。
这里是东京都内一座三十五层高的办公大厦的第十层,说好听点这里环境干净整洁,其实更像无菌医院,死气沉沉。
会议室里摆放着几张桌子和可移动式隔板,可以同时进行多场会议。
女程序员只想快点回到自己的电脑屏幕前,毕竟负责的单元测试就要截止了。工作日加班到深夜,周末无休,都没有时间和男朋友打电话,连自己的形象也顾不上,很久没去理发,每天的妆容也马马虎虎。
“原因大致有两种。一种是粗心大意,一种是先入为主。”五十岚真淡淡地说道。他戴着眼镜,颇具严谨认真的学者风范。
为什么非要挑这种忙碌的时候,慢悠悠地跟自己讲导致程序漏洞的两种原因?女程序员无论如何也无法理解。她觉得自己像是一台机器人,只能“哦”了一声,随声应付。
“粗心大意,就是因为马虎犯错。比如把该输入‘1’的地方输成‘2’,看反不等号的方向等。再举个简单的例子,把‘佐藤’喊成‘齐藤’,也是粗心大意。”
“就算是粗心大意,被人喊错姓氏还是挺伤心的吧。”女程序员兴味索然地附和,“你不这么觉得吗?污稀烂先生。”
“我姓五十岚。”
“啊,一不小心说错了。”
对于这种挖苦,五十岚真似乎毫不在乎。截止日期让程序员忙得团团转,她自然不会对负责质量管理的五十岚真抱有好感,五十岚真不讲变通的个性也总是惹别人生气。过后她一定会跟同事炫耀:“所以啊,我就狠狠挖苦了他一番。”不过咱们的五十岚真认为,如果这样可以让对方满意,也不无益处。
“先入为主是负责人误把错认为对。还用刚才的例子,并非不小心把‘佐藤’喊成‘齐藤’,而是一开始就以为她是‘齐藤’。先入为主犯的错,跟粗心大意犯的错完全不同。”
“嗯,可能是吧。”女程序员又确认了一次时间,轻微地抖着腿,伸手去拿桌上的纸杯。她的腿越抖越厉害,整个身体都开始剧烈震颤,脸颊也抖动起来。脸上的皮肤如橡胶一般向四周延展,霎时间又缩回来,变成了另外一张脸——眼睛细长,皮肤光滑,嘴里还有一条来回翻腾的舌头。
看到这一幕,一向沉稳的五十岚真也不由得瞠目结舌。不过,女人的脸又剧烈抖动着,很快变了回来。
“可又能怎么办呢?粗心大意也好,先入为主也罢,我已经搞出这么个漏洞。说声‘对不起’,可以了吗?”
五十岚真晃了晃他那张冰冷的面具脸。“不找出错误的真正原因,就不能妥善处理问题。”
在咱们这个因果关系的故事里,五十岚真可是个贯穿始终的重要角色。因此,他必须把“问题的原因”挂在嘴边。当然,这就可怜了焦头烂额的女程序员,“漏洞出现的原因和处置方法”这样的长篇大论,不得不由她来做听众。
不过,她也只是按既定剧本走罢了。她是这个故事的听众,代表你们、替你们坐在那里听五十岚真演讲。这是她的角色设定。
“如果出错是因为负责人粗心大意,就有必要调查为什么没有人注意到这个粗心的地方。”
“可谁都有粗心大意的时候吧。”
“确实,大家都有粗心大意的时候,对此也没有有效的预防措施。所以我们应该坚持‘粗心大意宽大处理,违反纪律严肃惩治’,只有这样,社会才能平稳运转。可现实中总有很多相反的例子。总之,要把粗心出错引起的损失控制在最小范围内,同时必须详查粗心大意的原因。”
“粗心大意的原因不就是粗心大意吗?”
“不能如此断言。人犯马虎很可能是受到环境的影响,比如睡眠不足。”
女程序员扑哧一笑:“如果这也可以当作借口,全世界的程序员就什么都不怕了。”
“睡眠不足是诱发出错的重要因素。有调查显示,NASA航天飞机坠毁的主要原因之一就是负责发射的相关人员睡眠不足。这和酒精一样,会导致大脑皮层的功能退化。也就是说,熬夜工作等于醉酒工作。”
“那你去和客户讲讲,让他们多给我们点睡眠时间呗。”
“这也不失为一种正确的处理方式。”五十岚真冷静地说,“接下来还需要查清楚,为什么这个粗心大意造成的程序漏洞,没有在测试阶段发现。”
“测试?”
“谁都会粗心大意,但在测试阶段,漏洞理应被检测出来。如果是先入为主引起的失误,就要用不同的处理方式了。”
“先入为主也要有原因吗?”
“说回刚才的例子,有人错以为‘佐藤’是‘齐藤’。假设佐藤的衣服上绣着名字的注音‘SATOU’,但衣服的线头脱落了,字样看起来变成了‘齐藤’的注音‘SAITOU’。如此一来,我们就会明白,线头脱落是先入为主的原因。”
“像后背号码那样把名字缝在衣服上,一定很引人注目。这个名字会让人印象更深吧,怎么会反而记不住。”
“我只是举个例子。”
“我知道。”
“除此以外,还需要调查先入为主的影响范围。是只有一个人把‘佐藤’错认为‘齐藤’,还是别人也有同样的误会。如果绣在衣服上的字是原因,那么其他人先入为主的可能性也很大,有必要抱持这样的怀疑。”
“你的意思是,要挨个确认:不好意思,请问你是否先入为主地把‘佐藤’认成‘齐藤’吗?”
“没错。这就是质量管理的工作内容。”五十岚真点了点头,“如果因为先入为主导致了程序漏洞,就需要调查所有受先入为主影响的人群,以及先入为主的具体内容。再举个例子,如果是因为设计说明的写法模糊导致先入为主,就必须找出所有相同写法的设计说明一一调查。”
女程序员又开始抖腿。
果然,她的面容再一次发生变化,肌肤细腻得发光,表情也变得妩媚妖娆。忽然,从她的背部冒出一根巨大的针状物,像鞭子一样来回甩动,末端分成两叉。她如同一只蝎子,舌头翻滚着:“哎呀,真是麻烦你了,讲了这么多有用的知识。可你说了这么多,其实是在调查前一段时间公寓安保系统的漏洞吧?”
“是的,上个月十三日发生的故障。”
最近,很多大厦开始使用统一的系统来管理楼内的电梯、火灾报警器、自动喷水灭火器、监控探头等设备。五十岚真所在的公司就致力于开发这类系统。
“我已经把程序改好了。”女程序员摆动着毒尾巴。
五十岚真若无其事地看向自己手边的资料。“火灾报警器无故鸣叫。”
“我已经在报告里写过了,这种情况很少发生。”女程序员毫不遮掩想要尽快结束对话的心情,“这只是罕见的个例。”
听着对方的回答,五十岚真不动声色。一旦追问程序漏洞的产生原因,系统工程师和程序员就爱回答“这只是罕见的个例”,要不就是“我也没想过会发生这种事”,大部分都不是谎话。
大多数重大系统故障,确实是由罕见的个例引发的。
“虽然这种情况很少发生,但还是发生了。明明不是防灾演习,火灾报警器却响了。”
“那是因为程序出错,打开了防灾演习模式。”
当然,程序不会出错。程序只会机械地运算和判断。出错的是编写程序的方法。
只要管理员按下“防灾演习”按钮,程序就会启动防灾演习模式。这时候火灾报警器会鸣响,电梯会暂停在最近的楼层,有时候自动喷水装置也会启动。
“也就是说,没有人按下防灾演习的按钮,但程序误判成了防灾演习模式。”
“可是……”
“我想知道这次程序做出误判的具体路径。”
“那是两年前做的系统。那时候我还年轻呢,还在跟前前男友交往。我可记不得那时候做的程序。”
“那你还记得你的前前男友吗?”
女程序员目不转睛地盯着五十岚真,好似在观察一种奇妙的生物。“喂,污稀烂先生,你是在跟我开玩笑吧?”
“首先,我不会开玩笑。其次,我姓五十岚。”
女程序员叹了口气,说:“我不记得了。刚才也说了,这是两年前做的程序。你还记得自己两年前的今天吃的早餐吗?”
“吐司、火腿、生菜、煮蛋或者煎蛋。”五十岚真脱口而出。离婚之后,五十岚真的早餐从没变过。
女程序员惊讶地张大了嘴巴,背后那条蝎子尾巴翘起来,轻轻地摇摆着。“你不会连晚餐也记得吧?”
“可以看下手账吗?我还可以告诉你四年前吃的晚餐。”五十岚真翻起公文包来,这让女程序员更吃惊了。
“喂,总而言之,我可不记得什么两年前的程序,不好意思啊。给故障牵强地找个原因,报告给上司,对你们质量管理部来说可能是件大事,但我还有更重要的事要忙。”女程序员继续道,“坦白说,质量管理部就是个找借口的部门吧?不过是为了交代顾客,给他们一份所谓的调查报告。程序一行都不会写,凭什么在这里和我唠叨?还是说你是来帮我的?调查漏洞能帮我把错误抹去吗?”
“也有这种可能。”五十岚真的双眼皮眼睛藏在眼镜下,像一个深邃而不近人情的摄像头,“通过这次调查,也许会发现导致本次故障的,不是你个人的错误。”
“比如呢?怎么发现?”
“如果找不到对程序判断条件上的明确描述,就不能说只是你个人的问题。”
“设计说明上可没有描述。”
“就算这是因为你而造成的程序漏洞,这个漏洞也应该在当初的测试阶段被发现。”
“可是,如果要测出这个罕见的个例,测试量会是现在的十倍。你觉得这做得完吗?”
“必须做完。”五十岚真回答。
程序员不可置信地做出一副反胃的表情。
“喂,五十岚先生。”女程序员不知何时离开了座位,一点一点逼近五十岚真,直到完全缠绕在五十岚真的身上。
她虽然十分美艳娇俏,胳膊的皮肤却像鳞片一样粗糙。刚才若隐若现的巨型蝎子尾巴,妩媚地画着柔美的曲线,慢慢缠住五十岚真的身体。尾巴的分叉像两把举起的镰刀,轻轻碰触着五十岚真的脸颊。
五十岚真心想,这是蝎子精。《西游记》里,蝎子精使尽挑逗诱惑的法术,拐走了唐三藏。自己怎么会知道这些,五十岚真歪着脑袋想,但他不会想明白。
蝎子尾巴灵活地靠近五十岚真的脖颈,提起他的衣领,缓缓解开领带结,刷的一下扯下领带。只见五十岚真的领带优雅地飘扬在空中。
“你要是真的对因果关系那么执着,换我来问你个问题吧。”
“什么问题?”
“假设哦,有个孩子死掉了,是自杀哦。这个孩子明明什么错都没有,却一直遭受校园霸凌,但他忍耐下来了。马上就要毕业了,他想,再忍忍就过去了。但是有一天在街上,他一走神,砰,不小心撞到一个成年人。”
“他们认识吗?”
“不认识,是个陌生人。这个被撞到的成年人很生气,说:‘走路不长眼睛吗?’正巧他心情不好,但孩子受不了这样的谩骂,觉得活着总有无穷无尽的苦难,就自杀了。”
五十岚真还是不明白为什么她忽然诱惑自己。
他当然不会明白的。他也想不到,自己存在于一只猴子讲的故事里。
“所以啊,我想问问,因果先生,不近女色的玄奘大人,到底谁才是罪魁祸首?是霸凌他的孩子们,还是破口大骂的成年人?”
“是霸凌他的孩子们。”五十岚真没有犹豫。
“但成年人的谩骂直接导致了孩子的自杀,对吧?”蝎子尾巴发出放荡的笑声,“换一个简单的问法。第一个人往水杯里注水,注到水面和杯口持平。第二个人只往水杯里滴下那么一小滴水,水却溢出来了。你说到底是谁让水溢出来的?这当中的因果关系该如何界定?”
就在这时,五十岚真的手机响了。接通电话,是质量管理部的女文员。“五十岚先生,科长好像有急事找你。”手机这头,蝎子尾巴捡起她刚才扯下的领带,在五十岚真的脑袋上把玩。五十岚真挂掉电话,扭过头来,发现女程序员已经坐回了原来的椅子,身上的妖气消失得无影无踪。
“忽然有点急事,我必须回去一趟。”
女程序员终于迎来了解放,坦率地长舒一口气。
“下次有机会再来继续调查。”
“还有下次?不是吧?要是因为两年前我和男友分手,焦虑不安、注意力涣散,导致产生了漏洞,该怎么办?”
“是前前男友,对吧?”
“这么说,你还要继续调查我们分手的理由吗?”女程序员很气愤。
“嗯,是的。”
“那这样,火灾报警器的故障,都怪到那个跟我分手的男人头上吧。”
五十岚真刚回到质量管理部,科长就对他说:“五十岚,我想拜托你做一项新工作。”
“新工作?是部门调动吗?”
“不是调动。想让你去一趟证券公司,调查一件事。”
“证券公司?发生系统故障了吗?”五十岚真迅速在脑中搜索和公司合作的证券公司,不外乎菩萨证券和TRIPLE证券这两家。
“是菩萨证券。”科长说,“你可能也看新闻了。九天前,菩萨证券下了一张错误订单,短短二十分钟损失了三百亿日元。”
“二十分钟,三百亿日元?”到底是怎么回事。
“对方觉得我们开发的系统有问题,想把责任推给我们。所以我要你去调查清楚。”
五十岚真正为如何回应而苦恼,见科长斜着眼瞄向自己的脑袋。
“怎么了?”
“没事,只是没想到你也会做这种事啊。”
“这种事?”五十岚真疑惑地伸手去摸,才发现自己的领带竟缠在头顶上。一定是刚才那只蝎子精做的好事,竟一直没发现。
“在脑门上缠领带不是一项传统的搞笑表演吗?哎呀,不过一本正经的你缠起领带来,总让人觉得别有深意啊。”
五十岚真慌忙取下领带系好。就这样,五十岚真开始调查二十分钟损失三百亿日元的原因了。
好嘞,欲知后事如何,且听下回分解。