打开网易新闻 查看精彩图片

演示会安排在周五下午,研发楼三层的小会议厅里。投影幕布刚放下来,空调就开始嗡嗡响,冷风带着一股塑料味。

我坐在最后一排,电脑没接线,手边只有一杯凉透的茶。

台上挂着系统发布会的蓝底横幅,右下角写着陈昊的名字。我的名字没有出现,连参与人员一栏也被抹得干净。

李海峰站在台侧,西装袖口压着一圈细汗。他看了我一眼,像是在确认一件工具还在不在。

“王工,你上来操作一下。”

会议室里有二十几个人,研发部、产品部,还有几位公司领导。陈昊坐在主机旁,胸牌擦得很亮,脸上没有笑。

我走上台,把鼠标拿起来。登录界面跳出后,系统忽然卡住,进度条停在百分之七十三。

陈昊低声说:“可能是缓存问题。”

他连点几下,页面直接退回桌面。后排有人翻了翻资料,纸张摩擦声细细碎碎。

李海峰皱眉:“王工,你熟悉底层,处理一下。”

我看着屏幕上那串报错代码。不是缓存,是部署包里少了一个关键文件。这个问题,昨天晚上我已经在群里提醒过。

陈昊侧过脸,眼神里有羞愧,也有一点说不出的防备。他抿了抿嘴,没再看我。

李海峰朝我走近半步,声音压得很低:“今天场合重要。”

我把鼠标放回桌面,拍了拍手上的灰,向后退开。

“这是领导主导的,我只负责打杂。”

话落下,台下安静了几秒。有人低头看手机,有人抬眼看李海峰。

陈昊坐直了,脸上的血色一点点退下去。李海峰盯着我,目光沉得像会议室外的阴天。

我没再说话,拿起自己的水杯走下台。杯底磕到桌角,水洒了一小片,没人伸手来擦。

01

散会后,李海峰没有叫住我。人群从门口挤出去,陈昊落在最后,抱着那台笔记本,经过我身边时停了一下。

“王工,刚才那个故障……”

“你不是负责人吗?”

我抬头看他。他二十七岁,比我儿子大不了多少,眉眼却有种不合年纪的疲惫。

陈昊把话咽了回去,手指在电脑边缘轻轻敲了一下,转身追上李海峰。

我回到工位,电脑右下角弹出权限变更提示。项目仓库、测试服务器、内部文档,全都显示无权访问。

我又试了两次,结果一样。

旁边的孙姐把椅子往外挪了挪,像是怕我看见她的屏幕。小周抱着文件从过道走过,见到我,脚步明显快了。

部门群里很快发出通知,说系统演示出现技术问题,后续由项目负责人统一处理。那几个字看着客气,意思却明白。

我去找人事,人事让我先找部门领导。去找部门领导,秘书说李总在开会。等了半个小时,门里没有声音,门外却换了三拨人。

下午五点,我的门禁卡也刷不开了。

保安认识我,低声解释:“系统那边做了临时调整,明天应该能恢复。”

我点点头,没让他为难。走出办公楼时,太阳落在玻璃幕墙上,亮得刺眼。手机震了一下,是赵敏发来的消息。

“今天还回来吃饭吗?”

我回了一个字:“回。”

到家时,赵敏正坐在餐桌边算账。她把超市的进货单摊开,旁边放着计算器,屏幕上的数字跳来跳去。

王晨在房间里背英语,门缝里透出一线白光。书桌上的台灯亮着,墙上贴着高考倒计时,还有四十六天。

赵敏听见动静,抬头看我:“演示顺利吗?”

我脱下外套,挂在玄关的钩子上。袖口沾了点灰,怎么拍也拍不干净。

“出了点问题。”

她看了我一会儿,没有追问系统,只问:“公司会不会扣钱?”

“还不知道。”

“门禁怎么回事?”

我换鞋的动作慢了下来:“权限暂时停了。”

赵敏把计算器按停,屋里只剩王晨翻书的声音。

她压低声音:“王强,你跟李总认个错,有那么难吗?”

“不是认错的事。”

“那是什么事?”她把进货单一张张收起来,“你今年四十九了,外面有几个公司还愿意要你?房贷、补课费,哪一样不用钱?”

我看着桌上的账本,封皮已经磨得起毛。赵敏在社区超市做了很多年会计,家里的每一笔开支都记得清楚,连我买烟的次数也不会漏。

“陈昊是李总外甥。”她说,“他刚进公司没多久,正等这次机会转正。你在会上把话说成那样,他以后还怎么待?”

我没接话。

这件事我早就听人提过。陈昊入职一年多,能力不算差,但总跟在李海峰身后。项目资料、汇报顺序、演示名单,最后都由李海峰拍板。

赵敏见我不说话,声音更轻了:“你就不能让一步?”

“我让的还少吗?”

她手里的纸停住了,过了一会儿才说:“家里不是公司,不能什么都按道理算。”

房间里传来椅子挪动的声音。王晨大概听见了,脚步在门后停了停,又回到书桌边。

赵敏把一碗热汤推到我面前:“先吃饭,别让孩子看出来。”

汤面浮着几片葱花,热气碰到我的眼镜,很快蒙上一层白。我拿起勺子,舀了一口,里面没有盐。

第二天上午,我被叫到李海峰办公室。

他办公室靠着落地窗,墙上挂着公司成立十周年的合影。陈昊站在他身后,像是刚被叫进来,手里还捏着一份报告。

李海峰没有看我桌上的权限通知,只把一杯茶推到旁边。

“昨天的事,影响不好。”

“系统为什么出错,报告里写得很清楚。”

“我不是来谈代码的。”

他靠在椅背上,语气平稳:“陈昊需要这次转正机会。项目成果已经报上去了,临时改署名,会影响整个部门。”

我看向陈昊。他低头盯着那份报告,封面上只有一个名字。

“他能不能转正,和谁写了代码,是两回事。”

李海峰抬了抬眼皮:“年轻人总要有机会。”

“那我的机会呢?”

他端起茶杯,吹开水面上的浮沫:“你是老员工,底子在,不会因为一次项目就没饭吃。”

这句话说得像安慰,落在耳朵里却很轻。轻得连分量都没有。

我站起来,没碰那杯茶。陈昊忽然抬头,像有话要说,最后只是往旁边让了一步。

走到门口时,李海峰又叫住我。

“王工,别把关系弄僵。”

我回头看他,墙上合影里的每个人都在笑,只有照片边缘的灯光有些发黄。

“关系不是我先弄僵的。”

回到工位,我收拾了自己的水杯和几本技术手册。桌面上的灰尘被杯底压出一个圆印,旁边还留着昨天洒下的半点茶渍。

02

权限停掉后,我每天仍按时到公司,只是不再进研发楼三层。门卫见到我,会把登记本往前推一点,话却比从前少了。

我被安排到一间闲置的小会议室,桌上没有内网电脑,只有一台不能连接项目库的旧机器。人事说这是临时安排,没说临时到什么时候。

我没有急着找李海峰理论。那天演示结束后,我忽然明白,嘴上争得再快,也不如把东西摆出来。

我从抽屉里取出一个移动硬盘,又向财务申请了旧设备使用记录。申请单递上去时,负责登记的小姑娘看了我几秒,问我是不是要离职。

“暂时没有这个打算。”

她点点头,没再问。

我把硬盘接到旧机器上,里面保存着几个月前的本地版本。公司规定项目资料不能私自带走,但我负责底层架构,开发期间每周都会做离线备份,文件一直放在个人工作目录里。

目录打开后,时间一栏密密麻麻。最早的一版,是去年十一月十七日凌晨两点十三分。

那时系统还只有一个空壳,登录、权限、数据分流,都是我一个模块一个模块搭起来的。后来项目组扩大,陈昊开始负责部署和联调,报告里的分工也慢慢变了。

我点开一份旧说明,里面写着核心接口由我完成。再打开现在的汇报材料,同一处已经变成陈昊负责设计。

名字改得很自然,像有人把一件旧衣服翻了个面,针脚还在,穿的人却换了。

我又查了几个版本。越往后看,越多地方出现同样的变化。

代码没变,注释没变,提交时间没变,只有成果归属被重新排列。原本属于我的部分,被放到了陈昊名下。陈昊做的部署模块,也被写成整体方案的主要贡献。

我把页面放大,盯着那几行字。眼睛干得发涩,便起身去洗手间。

水龙头里的水断断续续,洗手池边有一圈没擦净的白垢。我低头洗了把脸,抬眼时看见镜子里的人,头发比上个月又白了一些。

手机在口袋里震动,是赵敏。

“晚上别忘了买鸡蛋,王晨说想吃西红柿炒蛋。”

我回了句:“知道。”

她很快又问:“权限有消息吗?”

“没有。”

那边沉默了片刻,发来一句:“别再和领导硬顶。”

我把手机扣在洗手台上,等屏幕暗下去,才重新拿起来。

晚上回家,王晨正在客厅背单词。他看见我手里的菜袋,顺手接过去,发现里面只有鸡蛋和西红柿。

“爸,今天加班吗?”

“没有。”

“那怎么这么晚?”

“路上耽误了。”

他没再问,把菜放进厨房,转身回房间。书桌上的资料摞得很高,最上面那本数学练习册被翻得起了毛边。

赵敏在灶台边打鸡蛋,锅里油已经热了。她没有回头:“我听邻居说,公司最近要裁人。”

“她听谁说的?”

“随口一说。”

蛋液落进锅里,发出一阵细响。赵敏拿铲子拨了两下,锅边的油溅到她手背上,她缩了一下,没出声。

我从橱柜里拿出碗,放到她旁边:“权限还没恢复。”

“你打算怎么办?”

“先把材料整理出来。”

“整理出来又能怎样?”

她关小火,抬头看我:“你要是被辞了,王晨怎么办?”

“他照常高考。”

“你说得轻巧。”

赵敏把西红柿倒进锅里,声音变得发闷:“孩子补课的钱,房贷的钱,哪一笔是照常就能过的?”

我看着锅里的红汁慢慢漫开,忽然想起演示会上那条停住的进度条。百分之七十三,像是卡在一个不上不下的位置,往前需要有人接手,往后也没有路。

“我没做错。”我说。

赵敏没有回答,只把火关了。她把菜盛进盘子,盘底碰到桌面,发出一声轻响。

第二天,我又去了那间小会议室。旧机器启动很慢,风扇转起来后,桌上的纸页跟着颤。

我把本地版本、提交记录、测试日志一份份打印出来。打印机缺墨,字迹有些发灰,最关键的日期却还看得清楚。

中午,陈昊站在门口,手里拿着两瓶水。

“王工。”

我没有抬头:“有事?”

他把水放在桌角:“李总让我来问,你是不是在整理项目材料。”

“公司让我写说明,我总得知道自己做了什么。”

陈昊看了看那些纸,喉结动了一下。

“昨天的故障,我会处理。”

“你处理不了。”

“我可以学。”

他说得很快,像是怕我抢走后面的话。过了几秒,他又低声说:“项目不能停。”

我终于抬头看他。他的脸色比演示会那天好些,眼底却有一圈没睡好的青色。

“项目停不停,不由你我决定。”

“王工,事情已经这样了。”

“所以呢?”

他握住瓶身,塑料被捏出一道凹痕:“大家都在看。”

“看什么?”

“看你会不会把事情闹大。”

我笑了一下:“我只是在整理记录。”

陈昊没再劝。他转身要走时,我注意到他右手腕上戴着一块旧表,表带边缘磨得起毛,和李海峰常戴的那款很像。

我低头继续看材料,没把这点相似放在心上。

下午三点,李海峰的秘书送来一张通知,要求我下周前提交项目责任说明。通知上没有写停职,只说暂缓参与后续工作。

我把纸折好,压在一摞打印件下面。

收拾文件时,移动硬盘里跳出一个照片文件夹。那是项目启动时拍的合影,背景是李海峰办公室的墙。

照片里,李海峰站在中间,陈昊在他左侧。靠窗的位置还站着一个女人,穿着浅灰色外套,头发挽在脑后,手里拿着一只白色茶杯。

我盯着她看了很久。

李兰。

二十七年前,她在厂区门口等过我,也在雨里把一把伞塞进我怀里。后来各自离开,听说她去了外地,之后便没再见过。

我把照片放大,女人的脸被窗光遮去一半,仍能认出来。

她怎么会出现在李海峰的办公室里?

我翻看文件属性,照片拍摄时间是两个月前。没有别的说明,也没有人提过她。

我合上电脑,窗外正下着小雨。雨水顺着玻璃往下流,把对面楼的灯拉成一条条模糊的线。

我告诉自己,这不过是一次巧合。

03

责任说明是在周一早上送来的,薄薄两页纸,标题却压得人胸口发沉。

我被安排在小会议室里签字。窗外有人搬运设备,金属架子碰在一起,声音一阵紧一阵。

第一页写着系统演示故障,第二页写着项目负责人应承担的管理责任。我的名字被放在最后,像一根钉子,等着落下去。

人事专员把笔推到我面前:“王工,先签收,不代表认定。”

“签收我可以签,内容我不认可。”

她看了眼门外,压低声音:“您别把话说得太满。”

我在签收栏写下名字,又加了一句,责任认定需依据完整开发记录。笔尖划过纸面,墨水有些发散。

中午,陈昊来找我。

他没进门,只站在门框边,手里捏着一份修改后的技术说明。外面有人走过,他便把声音压得很低。

“王工,能不能先别把事情闹大?”

我抬头看他:“谁在闹?”

“项目现在已经报上去了。”

“所以我该签下这份责任说明?”

陈昊摇头:“不是这个意思。”

他走进来,把报告放在桌上。封面上的项目负责人仍然是他,下面附着几页技术分工。

“演示故障是我没处理好。”他说,“但不能影响部门进度。”

我看着他:“你知道核心模块是谁做的吗?”

他的手指停在纸边,过了好一会儿才说:“大家都有参与。”

“我问的是核心模块。”

“这东西不是一个人完成的。”

这句话说得没错,可他避开的地方也很清楚。我把本地记录推过去,屏幕上是最早的接口设计和测试时间。

陈昊看了一眼,脸色变了变。

“这些是旧版本。”

“旧版本也是版本。”

他抬手按了按眉心,像是连续几天没睡好:“王工,您在公司这么多年,应该知道材料怎么写。”

“我只知道做过什么,就写什么。”

陈昊沉默下来。会议室里有一股旧纸张的味道,窗台上的绿萝叶尖积着灰。

过了片刻,他说:“我只是负责部署。”

话一出口,他自己先愣住了。

我盯着他,没有接话。他像是意识到说多了,立刻补充:“部署这一块也很复杂,不是简单上传文件。”

“我知道。”

“我没有说您没做。”

“可报告里不是这么写的。”

陈昊嘴唇动了动,最终没把话接下去。他拿起那份报告,边角被他捏出了褶皱。

临走前,他忽然问:“您认识李总的妹妹吗?”

我看着他:“为什么问这个?”

“没什么,听人说起过。”

“她叫什么?”

陈昊低下眼:“李兰。”

这个名字从他嘴里说出来,我心里像被什么轻轻碰了一下。不是疼,只是旧地方忽然有了回声。

“认识。”

“很熟吗?”

“年轻时候认识。”

陈昊没有再问,转身走了。他出门后没有立刻离开,脚步停在走廊尽头,过了半分钟才消失。

我重新打开责任说明,把页面放大。那几行被改过的文字,突然看得比刚才更清楚。

晚上,李海峰发来消息,让我第二天参加技术审查。他只说公司要把问题查清楚,没说我的权限是否恢复。

赵敏听见手机响,站在厨房门口问:“是不是有结果了?”

“要审查。”

“那就把材料准备好,别再顶撞。”

她说完,又回头去看王晨。孩子正在房间里背题,台灯照在窗帘上,映出一块安静的亮色。

我把手机放在桌上,继续翻那份报告。最后一页的署名栏里,只有陈昊一个名字。

04

技术审查安排在三天后。通知发下来以后,部门里的人开始有意无意地绕开我。

以前有人拿着代码来问问题,哪怕只是一个小接口,也会顺手敲我的门。现在他们宁可在群里反复讨论,也不肯来这间会议室。

我把能找到的记录都整理出来,按时间排成几摞。打印纸边缘割过手背,留下细细一道红痕,我用纸巾擦了擦,继续往下翻。

下午四点,手机响了。

号码没有备注,归属地是本市。我接起来,对面沉默了两秒。

“是王强吗?”

女人的声音不高,尾音有些发虚。

我站到窗边:“你是?”

“李兰。”

外面正在下雨,雨点砸在空调外机上,细碎得像有人在敲门。

二十七年没听见这个声音,我一时没有说话。她也没催,只在那头轻轻吸了一口气。

“你现在方便吗?”

“有事直说。”

“我想见你一面。”

“我们之间,应该没什么可谈的。”

“是陈昊的事。”

我看着桌上的报告,纸页被窗缝里的风吹得轻轻翻动。

“他怎么了?”

“技术审查结束以后,我想和你单独谈。”

“现在不能说?”

“电话里说不清。”

她停了一下,又补充:“我不会影响你的工作,只想把陈昊过去的一些事告诉你。”

我握着手机,手心慢慢出了一层汗。

“你和他是什么关系?”

“我是他母亲。”

这句话没有什么特别,却让我想起项目合影里那只白色茶杯。李海峰办公室的窗光,陈昊低头时的侧脸,还有照片拍摄日期。

“你为什么找我?”

“审查结束后再说。”

电话挂断了。

我在窗边站了很久,直到玻璃上的雨痕变得模糊,才把手机放回桌上。李兰没有说出过去是什么,也没有解释为什么偏偏在这个时候联系我。

回到家,赵敏正在阳台收衣服。她听见我开门,手上的衣架停了一下。

“谁打的电话?”

“李兰。”

衣架碰在晾衣杆上,发出一声轻响。

赵敏低下头,把一件衬衫重新抻平:“她找你干什么?”

“说陈昊的事。”

她没再动作。阳台外,楼下小饭馆正在收摊,油烟味顺着风飘上来,带着葱和辣椒的味道。

“陈昊能有什么事?”她问。

“她说审查后见面。”

赵敏把衣服叠好,放进篮子里:“别去。”

我看着她:“为什么?”

“你现在最重要的是工作,别再添麻烦。”

“她说的是陈昊的过去。”

“过去和你有什么关系?”

这句话说得太快,像是早就准备好。她自己也察觉到了,抬手把耳边的碎发别到后面。

我没有马上回答。

晚饭时,王晨从房间出来,端着水杯站在餐桌旁。他看了看我和赵敏,没坐下。

“妈,外地学校的志愿表要交了。”

赵敏给他夹了一筷子菜:“先吃饭,明天再说。”

“老师说明天必须交。”

“那就按之前的填。”

王晨看向我:“爸,你不是说让我自己选吗?”

我手里的筷子停在半空。赵敏把碗往他面前推了推,声音明显重了一点。

“先吃饭。”

王晨坐下,却没再动筷。桌上的汤放凉了,表面结出一层薄薄的油花。

我想起赵敏刚才那句问话,心里有个地方慢慢沉下去。她一向不喜欢李兰,二十三年里几乎没主动提过这个名字。

可她听见陈昊时的反应,太快,也太安静。

第二天早上,我接到技术审查通知。李海峰让秘书转告我,审查期间不要单独联系陈昊,也不要把材料发给其他部门。

我问原因,秘书只说是统一安排。

出门前,赵敏站在玄关给王晨整理校服领子。她看了我一眼,没问审查,也没问李兰。

我拿起公文包,手指碰到里面那张照片。女人站在李海峰办公室窗边,脸被白光切去一半。

“我晚上可能晚点回来。”

赵敏点头:“知道了。”

王晨低着头换鞋,鞋带系了两遍才系紧。他把志愿表塞进书包,纸角露在外面。

我走到楼下,回头看了一眼。赵敏还站在门口,手搭着门把,没有送出来。

05

技术审查那天,会议室比演示会更安静。

桌上摆着我的本地记录、测试日志和几台旧设备。几位技术负责人轮流核对时间,陈昊坐在最边上,手里没有拿笔。

我把最早的接口设计调出来,说明每一次变更的原因。有人问得很细,从数据库结构问到异常处理,我都一项项回答。

陈昊负责的部署部分也被单独列了出来。那一段确实由他完成,服务器配置、上线脚本、回滚流程,都是他的工作。

我没有把他的部分抹掉。

审查持续了三个多小时,最后一位负责人合上记录本,说核心架构和主要功能由我完成,演示故障与部署环节有关,责任需要重新划分。

这句话落下后,李海峰的脸色变得很难看。

下午,公司发了新的项目说明。我的名字重新出现在主创人员一栏,陈昊的部署贡献也被保留。关于演示事故,暂不作个人处分,后续继续核实。

我站在打印机旁,看着那张纸从机器里慢慢吐出来。名字回来了,胸口却没有轻松多少。

陈昊走过来,停在两步之外。

“王工,恭喜。”

“你的名字也在。”

他低头看着纸面,手指在裤缝边动了一下:“我知道。”

“知道就好。”

他想说什么,最后只是点头。那张年轻的脸上没有喜色,像是刚从一场没赢也没输的争执里出来。

李海峰没有再见我,只让秘书通知我,明早九点参加管理层会议,讨论项目后续和个人责任。

我把材料装进包里,离开公司时天已经黑了。门口的保安换了班,新来的不认识我,核对证件用了很久。

手机在下楼时响起。

是一个陌生号码发来的短信。

“王强,我是李兰。别回公司,来老厂区后面的咖啡店。我在那里等你。”

我站在台阶下,重新看了一遍短信。那家咖啡店我知道,原来是厂区食堂,后来改成了小店。

我没有告诉赵敏,只在家门口停了几分钟,才把手机收起来。

咖啡店里没什么人,玻璃门上挂着水珠。李兰坐在靠墙的位置,面前放着一个棕色文件袋。

她比照片里瘦,头发剪到了肩膀,眼角多了几道细纹。看见我,她站起来,椅脚在地板上拖出刺耳的一声。

“坐吧。”

我坐下,没有碰桌上的水。

“你到底想谈什么?”

李兰把文件袋推到我这边,手掌按在封口处,没有立刻松开。

“陈昊。”

“我已经知道他是你儿子。”

她抬头看我,眼神晃了一下:“你只知道这个?”

“他是李海峰的外甥,也是项目署名者。”

“这些我知道。”

“那你想说什么?”

她没有回答,先把文件袋打开。里面是一张折过很多次的纸,还有一个旧信封。纸边已经发黄,折痕压得很深。

我看见那张纸上的日期,手指停在桌面上。

二十七年前。

李兰把纸慢慢摊平,又从信封里拿出一封信。信封正面写着我的名字,字迹陌生,却很稳。

“这是孕检单。”她说。

我没有伸手。

“这封信,是陈建国留下的。”

咖啡机在柜台后面响了一声,店里的灯光白得发冷。李兰把两样东西推到我面前,声音轻得几乎听不见。

“陈昊是你的儿子,他至今毫不知情。”

我看着那行日期,眼前像蒙了一层灰。二十七年前,我二十二岁,刚和李兰分开不久。

“你为什么现在告诉我?”

“因为你马上要做选择。”

“什么选择?”

她把信压在孕检单上:“明早九点,管理层要等你决定,是公开追责,还是接受共同署名。”

我盯着她:“陈昊知道吗?”

“他不知道。”

她说完这句,立刻垂下眼。文件袋里的纸页露出半截,边缘已经被人摸得发软。

我的手机又响了一下,是赵敏发来的消息。

“我已经到楼下了。”

窗外的雨停了,街边积水映着招牌的红光。李兰没有催我,陈建国留下的信压在她掌心下,像一块迟到了太久的石头。

明早九点,董事会等我选择公开追责,还是接受共同署名。赵敏也已经到了楼下。

我无论开口还是沉默,都可能把陈昊、王晨和这段二十三年的婚姻,一起推上审判桌。