我被降薪,每天准时上下班,28天后领导找我谈话,我霸气反击!
楔子
周一早会,赵总站在投影幕前,声音不轻不重:“经营压力大,公司决定全员降薪。”技术部老员工周明从一万二降到八千,周围同事低着头,敢怒不敢言。他握着笔,没出声。散会后,有人叹气,有人骂娘,周明把通知折好放进口袋,心里只有一个念头——从今天起,我不吵不闹,但也绝不再为这个公司拼一分力。
第一章 降薪通知
周明坐在工位上,电脑屏幕亮着,他却一个字也看不进去。口袋里那张降薪通知折了又折,边角已经被指腹磨得发软。他伸手摸了一下,又缩回来,像是怕碰着什么烫手的东西。
天花板的灯管嗡嗡作响,和早会时赵总说话的语气一样平淡。他至今还记得赵总站在投影幕前,说“经营压力大,公司决定全员降薪”时,那张脸没有任何表情。整个会议室安静得吓人,二十多个人,没有一个人说话。空气仿佛凝住了一般,技术部几个年轻程序员把头埋得低低的,恨不得缩进衣领里。坐在周明旁边的老张,手背上的青筋鼓着,攥着笔,笔尖把纸张戳出一个小洞,却始终没有开口。
散会的时候,周明起身,椅子腿蹭着地面发出刺耳的声响。钱峰从门口探进半个身子,目光扫了一圈,最后定在周明身上:“周工,别想太多,公司现在难,过了这阵子就好了。”说话的语气像是在安慰,眼睛却亮得有些过分。周明没接话,只是把通知折好放进口袋,朝门口走过去。经过钱峰身侧的时候,他闻到一股烟味,混着劣质古龙水的气味,让人有些犯恶心。
下午的日程照旧,负责的项目模块没有新需求,周明把当天的数据检查了一遍,确认无误后,在日志里做了记录。他做这些事的时候,手脚比往日利索许多,目光专注,却再没有以往那种主动找活干的心思。以前他总会在下班前多看一眼下周的任务安排,或者把明天的准备工作提前做一些,甚至周末还会背着笔记本回家,研究新方案。那些日子好像突然模糊了,被人用橡皮擦擦去了一般,不留痕迹。
下班铃响,周明关掉电脑,把桌面收拾干净。水杯里的水倒掉,便签纸撕下来扔进垃圾桶,手机充电线绕好放进电脑包。他没有多停留,甚至没有和任何人打招呼,就径直走向电梯口。身后有人低声议论,他没有回头。
回家路上,周明在菜市场门口停下来,买了一袋排骨、两根山药和一把小葱。卖菜的大姐认识他,笑呵呵地说今天排骨新鲜,给孙子炖汤正好。周明笑了笑,付了钱,没有多说。他提着菜进门的时候,妻子林静正在厨房里洗碗,听见动静探出头来:“今天回来得挺早。”话说到一半,看见他手里拎着排骨,愣了一下,“又不是周末,买排骨做什么?”
周明把菜放到料理台上,脱了外套,在厨房门口站了一会儿。他本来想先吃饭再说,但看到林静手里的碗和围裙上溅的水渍,还是开了口:“公司今天开了一个会。”他的声音很平静,听不出什么情绪,“说是经营压力大,全员降薪。我的工资,从一万二调到八千。”
林静手里的碗停在半空,过了两三秒才慢慢放回水池里。她关掉水龙头,转过身,目光直直地望着周明:“降到八千?”语气里带着不太相信的意味。“你在这个公司干了七年,说降就降?”
周明没有回答这个问题。他伸手拿起一根山药,低头剥着上面的泥:“这个月房贷四千八,孩子的培训班两千三,还有物业、水电、车子的油钱和保险。林静听着,脸上的表情一点一点僵住了。她想说什么,又咽了回去,最后只是走过去接过他手里的山药,放进水池里冲洗:“我不是让你去找领导说说,之前不是也有过这种事吗,你去好好讲一讲,说不定能争取一下。”
周明抬起头,看着她的眼睛:“讲了又怎样?”他说,“降薪不是针对我一个人,技术部所有人都在名单上。我要是去吵、去闹,当场拍桌子,或许能让他们多给我留下三百五百,但以后他们怎么看我?我往后在公司还怎么待下去?”
林静的嘴唇动了动,眼底有些泛红:“可这不是三百五百的事,这是四千块。四千块够咱们家一个月的生活费了。”她的声音有些发颤,“要是公司一直不恢复你的工资,我们就得把孩子的培训班停了。明年孩子就要上小学,这个节骨眼上,我怎么跟他说?”
周明沉默了好一会儿。灯光从餐桌上空打下来,把他的影子拉得很长,又斜斜地映在地砖上。他伸手揽过林静的肩膀:“先吃饭吧,排骨炖一炖也要时间。”顿了顿,他说:“我不吵不闹,但我也不会再拼命了。”
他这句话说得很轻,却像钉子一样,深深扎进这个不大不小的厨房里。林静抬头看着他,像是要辨认一个陌生人那样,又像是终于重新认识了他一遍。水龙头又开始哗哗地响,排骨被放进砂锅里,咕嘟咕嘟地冒着热气。周明站在窗边,隔着玻璃望向楼下的小区路灯,那些灯光一盏一盏亮起来,像无数个普通得不能再普通的夜晚。他知道,从明天开始,他会准时上班,也会准时下班。他不再多干一分,也绝不少干一毫。他要让赵总看看,一个被降了薪的老员工,究竟是怎么应对公司这套做法的。
饭桌上,林静把排骨夹到他碗里,什么也没有说。但周明看到她多盛了半碗饭,在碗底压了一层土豆丝,那是他以前加班晚归时她常做的。他低下头,闷声吃了一口饭,忽然觉得今天的米饭格外香,也格外难咽。
第二章 第一天准时下班
第二天清晨,周明六点四十起床,比以往晚了二十分钟。林静已经在厨房里忙活,听见动静头也没回:“粥在锅里,鸡蛋煮好了。”周明应了一声,坐到餐桌前。他咬了一口鸡蛋,发现今天的鸡蛋煮得格外嫩,像是掐着时间捞出来的。他抬头看了一眼林静的背,没有多说什么,只是把鸡蛋整个吃完了。
到公司的时候,正好八点二十九分。周明刷卡进门,坐在自己的工位上,打开电脑,泡了一杯茶。以前这时候他总会先扫一遍邮件、翻翻昨天的进度,再顺手把同事遗留的问题处理掉。今天他没有,他只打开了自己名下的任务清单,把当天该做的事按顺序列好,然后开始动手。
上午十点,技术部例会。钱峰坐在长桌一头,笑呵呵地讲了一通“共渡难关”的话,目光扫过众人时,在周明身上停了一瞬。周明没有回避,也没有接话。他低头翻了翻手里的打印资料,该记录的记录,该签字的签字,散会之后第一个起身离开。
中午吃饭,几个同事凑在一桌,小声聊着降薪的事,有人叹气,有人骂骂咧咧。周明端着餐盘从旁边走过,没有加入。李想端着饭盒追上来,压低声音:“周哥,你真沉得住气。”周明夹了一筷子青菜,嘴里慢慢嚼,咽下去才说:“不沉住气还能怎样?拍桌子走人?走人之后房贷谁还?”李想张了张嘴,没再接话。
下午的工作并无特别。周明把自己负责的模块核对完,提交了一份测试记录,又检查了两处参数配置。做完这些,他看了看时间,四点五十。还剩十分钟下班。他给自己续了一杯水,回到座位上,把那份测试记录在电脑里归档,然后关掉所有窗口,桌面恢复干净。
五点整,办公室的灯还亮着。周明站起身,把椅子推回桌下,拿起外套搭在手臂上。他刚走到走廊口,钱峰的声音从身后响起来:“周明,这就要走了?”
周明停住脚步,转过身。钱峰站在主管办公室门口,手里端着一杯咖啡,脸上挂着一副似笑非笑的表情:“技术部这个月任务紧,大家谁不是待到七八点?你这刚降薪第一天,就这么准时走,影响不太好吧。”
他这话说得不轻不重,恰好能让办公室里剩下的人都听见。键盘声明显稀疏了一些,几道目光悄悄从显示器后面探出来。
周明看了看钱峰,语气很平:“钱主管,我今天的工作做完了。该测试的测试了,该记录也记录了,没有遗留问题。”
钱峰笑了笑:“我不是说你工作有问题。我是说,大家现在都在一条船上,谁多干一点,公司就能早一点缓过来。你在这个部门七年了,又是老员工,应该带个头才对。”
周明没有急着反驳。他低头看了一眼手里的外套,又抬起头:“钱主管,公司给我发的工资,是按合同写的数目发的。我做的活儿,也是按合同写的职责做的。合同没让我每天加班到八点,我也没有义务把公司其他人的焦虑扛在自己一个人头上。你要是觉得我工作没做到位,可以拿考核结果说话。要是只因为我不加班,就来说‘影响不好’——那我只能按合同办事。”
他说这些的时候,声音不大,但足够清楚。办公室里的键盘声彻底停了几秒。
钱峰脸上的笑淡了下去。他端着咖啡,站在原地,看了周明好一会儿,最后只丢下一句:“行,你按合同办事,那就好好办。”说完,转身关上了主管办公室的门。
周明没有再看他。他走出走廊,按下电梯。电梯门关上的那一瞬间,他轻轻呼出一口气,后背靠上轿厢壁,仰起头看着跳动的楼层数字。他忽然觉得自己心里那块沉甸甸的石头,没有那么压人了。
回家路上,周明拐进小区门口的水果店,买了一把香蕉和一兜橘子。老板娘说今天橙子新鲜,他又多要了两个。提着袋子走到楼下的时候,他看见自家厨房的灯亮着。林静穿着那件旧围裙,正站在窗前,像是在看什么。看到他走近,她转身离开了窗边。
周明推门进去,林静正在往餐桌上摆碗筷。桌上放着清炒藕片、西红柿炒鸡蛋、一锅紫菜蛋花汤,还有一条红烧鱼。这不是他们平常的晚餐标准。周明把水果放在茶几上,换了鞋,洗了手,坐到桌边。他看了看桌上的菜,又看了看林静,心里有点发涩:“今天怎么做得这么丰盛?”
林静坐下来,给他盛了一碗汤:“你昨天买了排骨,我今天做个鱼,营养搭配。”她顿了一下,垂下眼睛,“我想过了。你说得对,吵也好闹也好,解决不了根本问题。你在外头该怎样就怎样,家里的事,我先顶着,实在不行……再说。”
周明端着汤碗,热气扑在脸上,他一时说不出话来。这碗汤是温的,像极了他早上吃的那颗嫩嫩的煮鸡蛋。他低头喝了一口,觉得嗓子眼里有点堵,但他什么也没说,只是大口大口地把饭扒完,又把最后一块鱼肉夹到林静碗里。
窗外天已经黑透了,楼下车灯一明一灭,远远地开过去。周明放下筷子,望着窗玻璃上那一层薄薄的水汽,在心里对自己说:从今往后,八小时之内,他尽职尽责。八小时之外,他要把自己的日子,过得比谁都认真。
第三章 办公室里没有秘密
第二天早晨,周明到办公室的时候,电梯门刚打开,就听见茶水间里压着声音的议论。他没刻意听,但也有些字句飘进耳朵——“真到点就走”“钱主管脸都绿了”“你们说他是不是破罐子破摔了”。周明没有放慢脚步,径直走到自己的工位,放下包,打开电脑,屏幕亮起来,通知栏跳出一封新的部门邮件。
发件人是钱峰,标题带着感叹号,措辞严厉:“近期公司面临经营压力,个别同事的考勤状态已引起管理层的关注。希望大家保持危机感,不要在这个节骨眼上掉链子。技术部是一个整体,一个人的态度会影响整个团队的士气。”
邮件末尾没有点名,但谁都知道说的是谁。周明看完,脸上没什么表情,点了一下关闭按钮。又把邮件拖进了已删除文件夹。
上午的工作照常进行。周明把自己负责的模块又过了一遍,补了两条边界条件的测试用例,将结果写到共享文档里。十点钟的时候,隔壁工位的刘姐端着一杯枸杞水经过,停了半秒,压低声音:“周明,你看群里了没?”周明说看了。刘姐嘴唇动了动,似乎想说什么,最后只叹了口气,走开了。
中午吃饭的时候,周明没有去食堂。他带了一盒昨晚林静装的剩饭,坐在工位前,就着一杯温水慢慢吃。办公室里人不多,大部分人都下楼去了。阳光穿过百叶窗,在桌面上落下一道道平行的光纹。他吃到一半的时候,一个人影在他旁边站住了。
周明抬头,是李想。刚入职两年多的年轻人,坐他斜对面,平时话不多。此刻他端着食堂的餐盘,看了看四周,像是确认没有人在注意这里,才弯下腰,声音放得很低:“哥,你昨天晚上走的时候,钱主管没为难你吧?”
周明嚼完嘴里的饭,拿纸巾擦了擦嘴角:“没有。他让我按合同办,我按合同办了。”
李想又靠近了半个身位,声音更小了:“群里那条消息……其实是冲你来的吧。你真不怕吗?我听说降薪之后下一个动作可能就是裁人。你这样顶着他,万一被穿小鞋怎么办?”
周明看着他,年轻人额角有一层薄薄的汗,眼睛里带着紧张,也带着一点说不清的期待。周明没有马上回答。他拧开保温杯的盖子,倒了一杯水,递到李想面前:“喝口水。这事你别往前凑。”
李想愣了一下:“我不是往前凑。我就是……大家都在说。有人说你有骨气,也有人等着看你被收拾。我就想知道,你到底心里有没有数。”
周明端起自己的杯子,喝了一口,才慢慢开口:“我问你,你昨天几点走的?”
李想脸上有点尴尬:“八点多……也没什么事,就是看着别人没走,不好意思走。”
周明把保温杯放回桌面,声音不高不低:“你做的事干完了吗?”
李想点点头:“我的部分做完了啊,昨天下午就弄完了。”
“那就对了。”周明看着他的眼睛,“你干完了活,却不好意思走。你把这本该休息的两个小时,白白坐在工位上熬掉。你觉得这叫什么?这叫无意义的内耗。你熬走了自己的时间,脑子里只剩疲惫和情绪,第二天来了接着熬。你想想,这样下去,最后亏的是公司,还是你?”
李想张了张嘴,没有接话。
周明不再说下去,把空饭盒收进袋子里,系好,扔进桌下垃圾篓。然后转过身,打开电脑,继续整理下午的工作计划。他听到李想站在原地,过了一阵才慢慢退回自己的工位。
下午两点,赵总路过技术部,在走廊和钱峰说了几句话。周明坐在座位上,看见钱峰的表情带着明显的谄媚,一边点头一边朝周明的方向扫了一眼。赵总似乎没有往这边看,和钱峰说完,便转身去了会议室。
周明心里很清楚那一眼是什么意思。但他没有在意。他把自己今天要交的进度写进项目记录,又看了两页新技术的文档。下班前四十分钟,他把当天的工作收尾,给文件做好归档,又清理了一遍缓存。四点五十五分,他站起来,拎起外套,像昨天一样,稳稳当当地朝门口走去。
经过李想工位时,李想没有说话,只是抬了抬眼镜,飞快地扯了一下嘴角。那样子像是在说:哥,我看着呢。
周明没点头,也没回头。他走出办公区,按开电梯,在门关上之前,他听见办公室里重新响起的键盘声,比刚才密集了许多。他知道,那里面有些声音,会传得很远。而有些人,从今天开始,会开始想一些以前没有想过的问题。
电梯下行,楼层数字一格格跳动,他靠在轿厢壁上,忽然觉得今天的电梯比昨天快了一点。
第四章 妻子的一番话
周明到家的时候,天色已经暗透了。楼道里的声控灯坏了一盏,他用手机照着亮,摸出钥匙开了门。客厅里亮着一盏暖黄的落地灯,六岁的儿子小宇航已经洗漱好,穿着印着小恐龙的睡衣,正趴在沙发上翻一本画册。
林静从厨房探出头来,手里还捏着锅铲:“回来啦。洗手吃饭,我今天做了糖醋排骨,小宇航念叨一下午了。”
周明应了一声,把外套挂好,走进卫生间洗手。水龙头哗哗响着,他听见林静在厨房里喊:“你那个保温杯我放床头柜上了,明天记得带去公司。”
“好。”
吃饭的时候,小宇航坐在儿童椅上,夹起一块排骨,咬了一口,眼睛亮晶晶地看周明:“爸爸,今天怎么回来这么早?是不是以后都能陪我吃完饭了?”
周明愣了一下。他本来想说“以后都尽量早点回来”,话到嘴边变成了:“嗯,晚上工作做完了就回来。”
小宇航高兴地晃了晃小短腿:“那太好了!你之前老是九点十点才回来,我都要睡着了。”
林静把汤端上来,轻轻拍了拍小宇航的后脑勺:“好好吃饭,别光顾着说话。”
周明低头扒了两口饭,心里有点不是滋味。他这才意识到,以前加班成常态,儿子已经默认爸爸晚上“不该出现在家里”。降薪带来的委屈,他白天在公司没觉得有什么,现在倒被孩子这句话勾出了几分说不清的情绪。
吃完饭,周明主动收了碗筷,擦桌子。林静看了他一眼,没拦着。她把小宇航哄回房间,安顿好,关上房门,走出来看见周明正站在厨房门口,手里拿着一张电费单。
“这个月的,比上个月多了三十多块钱。”周明说,“冬天了,应该是开了取暖。”
林静接过单子看了看,放回冰箱顶上:“嗯,正常。上个月小宇航咳嗽,我在家开空调多了一些。”
两个人沉默了一小会儿,一起走到客厅。
林静坐下来,打开手机上的记账本,屏幕亮起来,一串密密麻麻的数字。她划了几下,把屏幕转向周明,声音平静:“周明,我跟你说个事。你降薪之后,咱们每个月的缺口差不多四千块。小宇航下学期的兴趣班学费,下个月要交了,一年六千八。房贷每个月四千二,物业水电车位加起来,一个月也得小一千。”她顿了一下,拇指在屏幕上轻轻滑过,“我算了一下,以咱们现在的结余,最多撑半年。半年之后,就得动存款了。”
周明看着屏幕上那一列列数字,没有说话。每一笔他都清楚。房贷是去年涨过一次利率之后开始的,每个月雷打不动。小宇航上幼儿园中班,学费加餐费加延时班,林静精打细算才控制在这个数。他自己的开销已经压得极低,每天地铁通勤,中午带饭,不抽烟不喝酒,连手机都用了三年多没换。
林静见他没说话,把手机放到茶几上,犹豫了一下,还是开口了:“周明,我说句你可能不爱听的。周一你回来跟我说降薪的事,你表现得很平静,我当时没多问。但我这几天一直在想,赵总那边……你要不要找个机会,去好好跟他说说?比如说说家里情况,说说你干了七年,没有功劳也有苦劳。说不定他一心软,就把薪水给你调回去了。哪怕只调回去一部分,也总比现在这样强。”
林静的声音不大,带着商量和试探,话里话外是那种被现实逼出来的小心翼翼。周明听得出她的意思:家里快扛不住了,去低个头。
窗外的风呼呼刮了一阵,又停下。周明坐在沙发上,手里转着那只旧手机,很久没有开口。林静也没有催他,只是坐在那儿,等他说话。
终于,周明抬起头,看着她,目光平静但认真:“林静,我明白你的意思,你也是为这个家着想。我不是不能低头。”他把手机放到茶几上,“我可以去买包烟,去敲赵总的门,跟他说家里有孩子有房贷,请他高抬贵手。这些话我张得开嘴。但是你想过没有,这次低了头,下次呢?这次降薪八千,我低个头,他恢复个一千两千的,那下个月再降呢?我再去求?咱们总不能一直靠低头过日子。”
林静嘴唇动了一下,想说什么,又忍住了。
周明接着说:“我这几天在公司没有闹,没有拍桌子骂人,我就是正常上班、正常干活、到点走人。我知道你怎么想的,你可能觉得我是在赌气。”他顿了一下,声音低下去,“不全是。我在想,咱们家的问题,不是我去求一次情就能解决的。我今年三十五了,在这个公司干了七年,我手里不是没本事,我缺的是把自己从那个坑里捞出来的决心。我把活儿干完,把时间省下来,最起码能把身体养好,能把脑子养清醒。我不信一个干活的人,会被逼到走投无路。”
林静安静地听完,眼圈微微发红。她低下头,用手指摩挲着手机边缘,过了好一阵,才轻声说:“我不是让你低声下气。我就是……怕你一个人扛着,憋出毛病来。白天你在公司是什么样,我也不知道。你回来又什么都不说。”
周明挪过去一点,伸手握住林静的手指。她手凉,指节微微发硬,是冬天洗菜洗出来的。他握紧了一些:“我不是什么都不说。我这不是在跟你说吗?只是以后的路,我想换一种走法。可能这段时间会紧巴一点,可能要过一段让人看笑话的日子,但我想试试,走一条不用靠求人才能过下去的活法。”
林静抬起头看了他一眼。灯光在她眼睛里碎成一小片暖意,她慢慢抽回手,擦了擦眼角,深深吸了一口气:“好。你这么说,我就信你。日子紧点就紧点,我在账目上再省一省。”她顿了顿,声音很轻,“但你得答应我一件事。”
“你说。”
林静看着他:“这段时间,别委屈自己。在公司吃了亏,别一个人闷着。晚上该几点回来就几点回来,别熬着。你要是哪天撑不住了,回来告诉我。咱们是一家人,天大的事,一起商量,行不行?”
周明看着她,过了两秒,点了点头:“行。我答应你。”
林静站起来,拉了一下袖口,面色重新恢复平时的利落:“我去给小宇航热杯牛奶,你也早点洗澡。明天早饭想吃什么?冰箱里还有鸡蛋,我做个葱花蛋饼。”
“都行。你做的我都吃。”
林静轻哼一声:“就会贫嘴。”她转身走进厨房,周明听见她打开了冰箱门,又停了一下,像是自言自语地说了一句:“日子总会好起来的。”
周明坐在沙发上,看着厨房透出的光,突然觉得今天从公司带回来的那点沉重,轻了不少。他掏出手机,打开备忘录,在空白页上写下一行字:“28天,不只是为了薪水。”
他看了几秒,又删掉了。
事情还没做成,先不用急着给自己立牌坊。
他关掉手机,去浴室洗完澡出来,走到小宇航房间门口,门缝里透出灯光。他轻轻推开一条缝,看见林静坐在床边,正给小宇航掖被角。儿子闭着眼睛,呼吸均匀,小嘴微微张着,半张脸埋在枕头里。
林静感觉到门开了,偏过头来,朝他做了一个“嘘”的手势。周明点点头,轻轻带上门。
他站在走廊里,客厅的灯已经熄了,只有玄关处留了一盏夜灯。他看着那点昏黄的光,忽然觉得,白天办公室里的那些风声、那些意味深长的眼神、那些压低了的议论,此刻离他都很远。他走回卧室,拉开被子躺下,手机放在床头。屏幕上有一条未读消息,来自李想:“哥,我今天也准时下班了。说实话,挺爽的。”
周明没有回。
他闭上眼睛,心里盘算着明天的工作安排。窗外风还在吹,但屋里很安静,身边床垫微微一动,是林静轻手轻脚地躺了上来。她翻了个身,声音含含糊糊地传来:“明天……你回来吃什么?”
周明弯起嘴角:“你做什么我吃什么。”
“那就绿豆稀饭吧。配拍黄瓜。”
“好。”
林静没有再说话,呼吸渐渐变得绵长。周明睁着眼,看着天花板上那一片模糊的暗影,想起白天在公司走廊里,钱峰朝他这边扫过来的那一眼。
他闭了闭眼,把那些画面压下去。
四天后,他请了前领导王工吃饭,想找他聊聊公司以前的事——那是后话了。
第五章 老熟人的公道
四天后的傍晚,周明约王工在城东一家家常菜馆见面。他下班后坐了三站公交过去,到得早,挑了个靠窗的位子坐下,点了两个凉菜,把菜单拍了张照发给王工。
王工很快回消息:“还是老规矩,你点啥我吃啥。”
周明笑了笑,把菜单递给服务员,又加了一道红烧鱼块,要了两碗米饭。等菜的间隙,他给林静发了条消息,说今天晚上跟以前的老领导吃饭,晚点回去。林静回了个“好”,又补了一句:“少喝点酒。”
菜刚上齐,王工推门进来。他比周明记忆里瘦了一些,夹克外套搭在手臂上,头发白了几根,但精神头看着还行。他在周明对面坐下,上下打量了两眼,开口第一句话就是:“瘦了。”
“没瘦,是换季掉了点膘。”周明把筷子递过去,“你最近怎么样?”
“就那样。在外面做了大半年,项目倒是接了,钱没以前好赚。”王工夹了一块鱼,吃了一口,“这家的鱼还做得挺地道。以前我在这边住的时候,隔三差五就来。”
周明知道王工说的是以前。王工在鼎盛科技干了十二年,从技术员做到部门经理,去年底走的,对外说是“个人发展原因”,但周明一直不太信。王工在公司那几年,赵总还没上来,后来赵总空降过来,跟王工有过不少工作上的碰撞。周明当时只负责自己那一摊,很多事看在眼里,没有问过。
两人一边吃一边聊了些家常,王工问他儿子上几年级了,又问林静工作忙不忙。周明一一答了。酒没有点,两人都喝热茶。
吃到一半,王工放下筷子,忽然问了一句:“你们公司最近在搞降薪吧?”
周明顿了一下:“你怎么知道?”
“做系统集成的圈子就这么大。”王工端起茶杯,语气淡淡的,“老赵那个做法,我太熟了。他不是头一回干这事了。前年他们给一个客户做数据迁移,成本超了预算,老赵也是用这个名义压了一拨人的奖金,当时还是我去跟底下人做解释。”
周明没说话,把一块黄瓜嚼完咽下去。
王工看着他,目光里带了一点认真:“你这次被降了多少?”
“八千。”
王工没露出意外的表情,反而点点头:“跟你预料的一样。他们挑人下手,不是挑最能干的,也不是挑最不能干的,是挑最好说话的。”他又夹了一块鱼,“你在公司待了七年,孩子在这边上小学,房子也在这边。他们算准了你跳不出去,才敢朝你开刀。”
周明握着茶杯,手指轻轻摩挲杯沿:“我跳不跳出去,那是我的事。”
王工看了他一眼,嘴角动了动,终是没接话。两人安静地吃了一会儿,周明才又问:“王工,你当时走,是不是也有别的原因?”
王工沉默了几秒,把筷子放下,靠在椅背上:“我知道你今天请我吃饭,不是光为了叙旧。”他轻轻笑了一下,偏过头,像是在掂量哪些话该说。
过了好一会儿,他才开口:“那个客户资源管理系统,你应该还有印象吧。”
“有。”
“那个系统上线之前,我发现有一个配置模块的权限漏洞。”王工抬手比划了一下,“普通账号,通过那个模块的旧接口,能查到内部系统的接口文档。我当时写了报告,把问题等级评了高,报上去了。老赵看完没批,说整改要加预算,让钱峰评估一下。钱峰隔了两天回了我一句:‘不影响核心业务,先放一放。’”
周明眉头微动:“那后来呢?”
“后来验收通过了,项目上线了,漏洞还在不在,我不知道。”王工的声音不高不低,“我走之前问过一次接手的人,他说钱峰把那条整改记录从清单上划掉了,标了个‘观察项’。”
“观察项。”周明重复了一遍这三个字。
“对。你在这行这么多年,你知道什么是观察项。”王工看着他的眼睛,“那就是还没出事,所以大家都不着急。等真出事了,再回头看,追责的名单上早就查无此人了。”
周明低着头,指腹在桌面那道茶渍上来回抹了一下,没有说话。
王工又说:“我跟你说这些,不是撺掇你去替我跟他们算账。我都不在那干了,过去的事我也不想翻。我就是提醒你一句话。”他顿了顿,“他们不是不知道问题。他们是装看不见。有些事不是没人提,是提了没人接,最后变成了提问题的人的问题。”
周明抬起头来:“这话怎么讲?”
王工端起茶杯,像是斟酌了一下措辞:“你想想,当初我那个报告,白纸黑字,问题等级写得清清楚楚。老赵批了‘已知悉’,钱峰给了‘评估中’,结果呢?评估了一年也没评估出一个字。可后来我被人提了一嘴,说‘王工在项目交付后还揪着问题不放,影响客户验收情绪’——你知道这话听着多离谱吗?但人家说得有鼻子有眼,还成了我不配合业务的证据。”
周明心里动了一下,没有接话。
王工把杯子里最后一口茶喝掉:“周明,你这个人,技术好,心也细,就是太好说话了。以前你在我手下,我还能替你挡一挡。现在我不在了,你自己得当心。你在公司干活,把手里的活干利索,比什么都强,多余的别背在身上。”他停了一下,声音低了一度,“有些事,你一个人扛不动。”
周明沉默了很久,才慢慢点了点头:“我知道了。”
王工看了看他,像是还想再说点什么,最后还是没开口。他重新拿起筷子:“这鱼凉了,吃吧。”
饭后两人在门口站了一会儿。路灯昏黄,风里带着一点秋末的凉意。王工把夹克穿好,拍了拍周明的肩膀:“以后有事,随时打我电话。我不在你们公司了,反而能帮你说两句公道话。你这个人什么都好,就是遇了事不吭声。记住了没有?”
周明笑了笑:“记住了。”
王工又看他一眼,没再多说什么,转身走了,背影消失在街角。
周明站在原地,把手机掏出来,看了一眼时间,二十一点出头。他给林静发了条消息:“回来了,给我留门。”
林静秒回:“好。绿豆稀饭在锅里,你自己盛,咸鸭蛋在冰箱,今天刚买的。”
周明收起手机,站了一会儿。他想王工刚才说的那个系统。其实他对那个系统不算陌生,当年他参与过那个模块前期的需求梳理,知道那里头有哪些接口,也知道哪些地方当初做得仓促。有些细节,他脑子还记着。
他慢慢吸了一口夜风,心里那句原本散漫的念头,第一次落到了实处——该找个时间,把这些年经手过的旧项目文档翻出来看一看。不为别的,就当给自己留个底。
他转身朝公交站走过去。街上行人不多,路灯把他的影子拉得老长,但步子比来时稳一些了。
第六章 他们忙他们的,我走我的
降薪的事过去了一个多星期,周明的日子反倒过得比之前清爽了。
每天上午九点前进办公室,打开电脑,处理邮件,把手里该推进的几个模块逐条过一遍。下午该开会开会,该改文档改文档,做到五点四十分,收拾杯子关电脑,起身走人。不迟到,不早退,分内的活一样没落下。
同事们从最初的窃窃私语,到后来渐渐习惯了。偶尔有人看他拎包站起来,会半开玩笑地问一句“又要走了”,周明回一句“活干完了”,也不多解释,推门便出去了。
这天下午四点,钱峰从赵总办公室出来,拍了两下手掌:“各位,今晚项目上线前最后一轮联合测试,所有人留下来,通宵盯完。我已经让前台订了外卖,大家辛苦一下,等项目稳了,我请你们吃大餐。”
办公室里安静了两秒。有人小声问了一句:“今晚要到几点?”
“项目什么时候稳定,咱们什么时候走。”钱峰语气不容商量,“这是赵总定的,核心系统迁移,不能出岔子。”
没人再吭声。工位上响起几声疲惫的叹气。
周明坐在靠窗的位置,看了一眼自己电脑屏幕。他负责的接口模块下午三点半已经跑完了一轮完整自动化测试,结果全部通过,日志也存了档。他看了一眼日历,今天周三,项目上线的日子是明天上午十点。
他把流程单翻出来,逐项核对了一遍,确认自己名下的事项没有遗漏,然后打开邮件,给钱峰和项目组抄送了一封邮件:接口模块联测通过,无阻塞问题,建议可进入发布准备阶段。
五点四十,周明关了电脑,拔掉充电器,把本子放进包里,拉上拉链。
坐在对面的小马看他要走,眼睛睁得溜圆:“周哥,你今晚不留?”
“我负责的部分没问题了,留着也是干坐着。”
周明把椅子推回桌下,站起来,朝门口走去。
他刚走到走廊尽头,身后传来钱峰的声音,带着压不住的火气:“周明!你这就走了?”
周明停下脚步,转过身。钱峰几步从办公室追出来,脸涨得通红,嗓门不小:“今晚什么日子你不知道?全组人都留下,你一个人先走,万一你那块出点问题,算谁的?”
“我那块出不了问题。”周明语气平静,“下午三点半跑完的测试,结果正常,日志已经存了,邮件我也发你邮箱了。”
钱峰被噎了一下,但脸上过不去,声音又抬高了两分:“你是技术组老人了,能不能有点担当?项目上线是头等大事,你早走一个小时能怎么着?出了事你负责啊?”
周明站在原地,神色不变:“我现在走,是因为我该干的都干完了。你要是觉得我不该走,你把我找出来一个需要我留着的理由——我现在就回去干。”
钱峰张了张嘴,没接上话。
“钱经理,”周明低头看了一眼手表,“你要是没别的事,我先走了。明天上线,有问题随时打我电话。”
他没等钱峰再开口,转过身,背脊挺直,脚步不紧不慢地朝电梯门走去。
走廊声控灯灭了一盏,他的身影在昏暗里顿了一下,又亮起来。
电梯门关上之前,他听见钱峰在走廊那头嚷了一句:“你走了出事算谁的!”声音被门缝夹扁,碎成模糊的尾音。
周明没听见似地按了一楼。
那天晚上,项目组灯火通明。外卖堆了一桌,凉了也没人顾得上吃。前半夜一切正常,到凌晨两点十分,监控大屏上忽然弹出一片红色告警——数据迁移进程在第17号节点崩溃,事务回滚失败,部分索引失效。
钱峰揉着眼睛盯了十分钟,脸色越来越难看。
值班的小王低声说:“钱经理,这个节点是……昨天临时加的索引优化模块,您说时间来不及,没走单独的测试流程那个。”
办公室里安静了好几秒。
所有人的目光都落在钱峰身上。
钱峰嘴唇动了动,没说话。半天才挤出一句:“赶紧回滚,调日志,看看能不能恢复。”
“恢复不了。”小王看着屏幕,“这个模块和主流程耦合太深了,回滚会把前面四个小时迁移的数据全部清掉。”
空气像凝了一层薄霜。有人偷偷看了一眼旁边亮着“离线”状态的周明的账号图标,心里那杆秤不知不觉晃了一下。凌晨两点半,周明刚翻身睡下。
手机震动了一声。他眯着眼看了一眼,是同事小马发来的消息:“周哥,上线出问题了,钱经理让他负责的模块把数据迁崩了,现在回滚不了。”
周明把手机扣在床头柜上,闭了几秒眼,又睁开。他没有回消息,只是翻了个人,给林静掖了掖被角。
第二天早上七点,周明到公司时,前台桌上的外卖袋子还没收。茶水间里零散坐着几个熬了通宵的人,眼下一片青黑,看见周明进来,有人低声喊了一句:“周哥,你昨天走得早,真走对了。”
周明没接话,走到自己工位,打开电脑。邮件里躺着一封凌晨三点多钱峰发来的通知:“因上线过程中出现异常,今日上线时间推迟,所有人待命处理。周明,你负责的模块如有相关影响,请及时响应。”
周明看完,合上电脑,起身去茶水间倒了杯热水。
路过会议室时,他透过玻璃看到钱峰弯着腰在看一份打印出来的日志,头发乱糟糟的,眼袋重得像是挂了两个沙袋。周明没有推门进去,也没有停下来看笑话,只是端着水杯从门口走过去了。
他回工位坐下,打开那封邮件,回复了一行字:“了解。我负责模块已确认无关联,数据异常属于17号节点索引优化模块问题,与我负责范围无关。如需协助排查,我可以抽时间看看。”
按下发送键,他看了一眼窗外。阳光正好,照在对面楼顶的广告牌上,那上面的字亮闪闪的。
他把水温吹了吹,慢慢喝了一口。
第七章 我不再替你的焦虑买单
上午十点,公司的空气里还飘着一股隔夜的咖啡味。周明正在看一份技术文档,钱峰推门从会议室走出来,径直走到他工位前,手里捏着一叠打印纸。
“周明,你过来一下。”钱峰的声音不大,但办公室的人都听得见,语气里带着一种一夜未睡后的压迫感。
周明放下鼠标,起身跟着他走进小会议室。门刚关上,钱峰就把那叠纸拍在桌子上:“昨天晚上的问题,你是不是提前就知道了?”
“我提前知道什么?”周明站着,没坐。
“17号节点的事。”钱峰压着嗓子,“你负责的部分就在那一片,你昨天走得那么早,是不是料到了要出事?”
周明看了他几秒,没有立刻回答。他低头看了一眼那叠纸,是昨晚的监控日志截屏,17号节点的崩溃记录被用红笔圈了出来。他伸手把纸拿起来翻了两页,然后放回桌上。
“钱经理,这份日志只记录了崩溃之后的东西。”周明说,“你要不要看一下崩溃之前的操作记录?”
钱峰一愣:“什么意思?”
“这个节点是上线前第三天临时加的索引优化模块,审批流程走了我的名字,但实际执行人是谁,你应该比我清楚。”周明说完,从口袋里掏出手机,“巧了,我这正好存了一份测试记录。”
他把手机屏幕转向钱峰,页面显示一封邮件。时间戳是昨天下午三点四十一分,标题写着“17号节点及关联模块测试结果(最终版)”,收件人栏里赫然有“钱峰”的名字。
“昨天下午三点半,我把所有能跑的用例都跑完了,结果正常,日志存档,邮件发送成功。”周明下滑屏幕,“你未读。”
钱峰的视线在手机屏幕上停留了几秒,脸上的表情没什么变化,但手指不自觉地蜷了一下。
“你拿邮件说事是什么意思?”钱峰的声音沉下去,“上线出问题,你是技术组老人,帮团队排查一下不是很正常的事吗?有必要这么斤斤计较?”
“排查没问题。”周明收回手机,“你早上那封邮件说‘必要时我来看看’,我回了‘可以协助’。但你要分清我该负责的事情和你该负责的事情。”
钱峰的手按在桌沿上,指节微微泛白。门突然被人从外面敲了两下,小马探进半个脑袋:“钱经理,运维那边打电话来问,具体是哪一批操作出的问题,让咱们给个结论。”
钱峰深吸一口气:“让他们等十分钟。”
小马缩回去,门重新关上。钱峰转过身,盯着周明,声音低下来,带着一种硬撑的平静:“周明,你昨天走,可以说是按合同办事。但今天这个局面,大家熬了一宿,你要是有点团队精神,就不该站在这儿跟我掰扯责任。”
周明没有躲他的目光:“团队精神不是用来替别人的疏漏打掩护的。”
钱峰的眉头拧成一个疙瘩,但张了张嘴,半天没接上这句话。周明拉开椅子坐下,打开自己面前的电脑,不紧不慢地说:“17号节点的事,我把我知道的整理一下,发你一份。该我配合的我配合,不该我背的我不背。你要是觉得哪里不对,可以拿去跟赵总对。”
他敲了几行字,抬头看着钱峰:“我昨天说过一遍,你让我有留下来的理由我就留下来。你找不出来,我走了。现在我早上七点到公司,邮件在你邮箱里躺着,是我的问题我认,不是我的问题,你也别往我头上安。”
钱峰的目光在那台电脑屏幕上停了好一会儿。他终究没说什么,伸手抓过那叠打印纸,转身拉开门,走出去时脚步比进来时急了两分。
门没带严,走廊里传来几个技术员低声说话的声音。小马的嗓门隐约飘了一句:“周哥昨天那份测试记录发得清清楚楚,这怎么赖啊……”
周明没有出去接话。他把刚才整理好的说明文档保存好,将最终版发到了项目组公共邮箱。发送完成,他重新打开那杯已经放凉了的水,喝了一口,页面右下角弹出一条微信消息,是另一个部门的老同事发来的:“周明,刚才的事我听说了,你这招漂亮。”
周明回了一个不算热络的表情,把手机放下。
不到半小时,那次上线的异常定位出来了,数据崩溃的原因和17号节点新增模块的处理顺序有关,和加班或值班没有关系。技术组内部群里,有人在刷屏聊着昨晚的事,钱峰一直没有再出现。
上午十一点半,周明起身去食堂打饭。路过走廊拐角时,他余光看见钱峰正站在楼梯间,低着头打电话,手里还捏着那叠红笔圈过的日志纸,声音压得很低,像是在争论什么。周明没有停留,端着餐盘往前走。
午后的阳光从玻璃幕墙斜照进来,他吃完午饭回到座位上,桌面干净,水杯重新添了热水。他看了一眼日历,距离降薪那天,已经过了六天。六天前他对林静说,给他一点时间,他不靠吵架解决问题。
现在他认为自己正走在正确的方向上。他点开那份安全报告的初稿,继续整理。屏幕上的光标闪烁了片刻,他敲下了第一行新的段落。
第八章 一个人的夜晚
周六早上,林静把儿子的换洗衣物塞进一个帆布袋,弯腰拉上拉链,抬头看了周明一眼。周明正坐在餐桌边剥一个水煮蛋,蛋壳碎成几片落在纸巾上。
“你真不跟我们回去?”林静把那袋衣物拎到门口,“外婆上回还念叨你,说你瘦了。”
“这周有点事。”周明把剥好的蛋放进盘子,推到她那边,“你带小宝回去,我下个周末再过去。”
儿子从卧室跑出来,手里攥着一辆黄色的小玩具车,跑到周明腿边仰起头:“爸爸你不去吗?外婆家有好多好吃的。”
周明伸手揉了一下他的头发:“爸爸这周有作业要写,下周一定去。”
孩子似懂非懂地点头,被林静牵着出了门。门锁咔嗒一声落下,屋里的安静一下子涌上来。周明在餐桌前坐了一会儿,把那个蛋吃完,又喝掉半杯凉掉的牛奶,然后起身走到书房。
书房的电脑桌靠窗,桌面上还摊着一本翻到一半的技术手册。他打开电脑,等了片刻,屏幕上出现系统桌面。他犹豫了一下,没打开工作邮箱,而是点开一个名为“历史项目归档”的文件夹。
这个文件夹他存了很多年,从入职第二年开始,每一个接手过的项目都按年份和客户分门别类地放在里面。有些项目早已没什么人提,有些还挂在公司维护名单上,只是换了一拨又一拨负责的人。他按时间倒序排列文件,光标从一列文件夹名称上滑过,停在一个标着“客户业务系统-2021”的文件夹上。
他点进去,里面是当年和客户对接时留下的需求文档、架构说明、配置清单和沟通邮件。他随手打开一份服务器配置表,一行一行往下看。起初只是为了回忆,但看到第三页时,他停住了。
有一项关于第三方接口的认证配置,用的还是两年前那批临时证书。按照当时的计划,这些证书应该在三个月后统一更换,负责这件事的是钱峰。周明记得自己提过一次,钱峰说“知道了,到时候安排”,后来的事情搁置了,他也没再追问。
他又翻开另一份文档,是公司今年重点维护的那个客户系统的项目概览。两份文档放在并排的窗口里,他来回比对,发现那个接口配置竟然沿用了下来,没有更换过。而且不止认证证书,还有几处日志记录等级的设置也偏低,一旦出了问题,系统生成的日志可能根本不足以定位原因。
周明靠在椅背上,盯着屏幕看了一会儿,又把身子探向前,重新打开几个相关的子目录,逐一翻找。越往下翻,他的心越沉。有些问题算不上即刻爆炸级的故障,却像根根细小的锈钉,扎在一段没人维护的老路里,平时看不出来,走的人多了,迟早要出事。
窗外的天色暗下来。客厅里的挂钟响了一整点,他抬头看了一眼,已经过了六点。手机上有两条未读消息,一条是林静发的:“我们在外婆家吃饭了,小宝吃了两碗。”另一条是儿子发来的语音,他点开,听到奶声奶气的一句:“爸爸,我给你留了鸡腿。”
周明嘴角动了一下,按下语音回了一句:“帮爸爸吃完。”然后放下手机,又转向屏幕。
他把那些可疑的配置项一条条截取下来,按项目和风险等级分类,存进一个新的文件夹,命名为“核查材料”。又从邮件里翻出当年的往来记录,找到两封和钱峰相关的沟通信,截图保存,并把时间、事项、责任人一个个记在新建表格里。
做完这些,时间已经过了晚上十点。他起身去厨房倒了杯水,经过客厅时,看到电视柜上还放着林静早上忘了收的手机充电线,桌上摆着儿子没带走的那辆黄色小玩具车。他站了片刻,重新坐回书桌前。
他没有急着把这些东西整理成正式报告,只是把手头的证据分门别类放好。桌面右下角的日期显示,距离降薪那天,正好一周。他点开那份一直放到今天的安全报告初稿,把今天发现的几个问题补充进去,保存,关闭。
夜已经很深了,书房外的城市安静下来,只偶尔传来窗外路上汽车驶过的声音。周明合上电脑,靠在椅背上,揉了揉有些酸涩的眼睛。他知道,自己手里握着的这些东西,或许还不够改变什么,但至少让他从被人推着走的被动里走出来,慢慢变成了一个有所准备的人。
他关掉台灯,走回卧室前,又回头看了一眼那台合上的电脑。黑暗里,电源灯还亮着,一闪一闪,像一颗安静的心跳。
他躺下后翻来覆去,被子裹了又掀。脑子里的那些配置项像走马灯一样转个不停,每一条都清晰得带着日期和责任人。快到凌晨一点时,他索性坐起来,找到拖鞋去了书房,重新掀开笔记本屏幕。
屏幕亮起的那一瞬,他脸上映着一片冷白的光。他打开“核查材料”文件夹,盯着那张Excel表格看了一会儿,又在末尾追加了一行备注:本年度客户系统合同续签评审,预计在下月二十五日前完成。接着他翻出挂在公司公共盘上的服务清单,逐一比对那台客户系统年度巡检记录的更新时间。两相对照之下,缺口出现在第四季度——整整三个月的巡检痕迹模糊,只有一个简略的报修记录,备注栏写着“延时处理”。
他把那行记录标成红色,关闭表格,又打开了一个新建的文档,打下第一行字:“关于部分历史项目遗留风险的几点说明”。写到第三行,他忽然停住了,光标在屏幕上一闪一闪。他知道这份说明一旦递上去,指向的人不只是钱峰,还会有更多环环相扣的名字。他保存好文件,又看了一遍明天要交的安全报告初稿,然后低头看了一眼右下角时间:两点零七分。
他合上电脑,这一次没有犹豫,走回卧室,拉好被子坦然躺下。该来的事情,准备得再久终归会来,而他已经不再是只能等人安排位置的那个人了。
第九章 钱峰的小动作
第二天一早,周明到公司时,走廊尽头的会议室门虚掩着,里面传来钱峰的声音。他本没打算听,但钱峰提到他的名字时,他停住了脚步。
“赵总,我不是背后说人坏话。周明这个状态,您也看到了,到点就走,安排加班推三阻四,下面的同事都有意见。”钱峰压低声音,语气里带着那种看似公允实则告状的拿捏感,“技术部本来就靠大家扛事,他这样带了个不好的头。要是人人都学他,项目还推不推?”
赵总的声音慢悠悠的:“你想怎么安排?”
“把他调去数据运维那边,反正那边活不重,也不用跟核心项目。他要是觉得轻松,也省得整天闹情绪。”钱峰顿了一下,“这样对其他同事也公平。”
周明站在门外,手里拿着刚打出来的一杯热水,神色平静。他早就猜到钱峰会走这一步,只是没想到来得这么快。他没有推门进去对质,也没有等在那里听更多细节,转身走回工位,把水杯放在桌上,打开电脑,继续处理手头那份安全报告的收尾工作。
下午两点,调岗通知发到他的OA邮箱,抄送技术部全员。附件里写明:自下周一起,周明调往数据运维组,负责历史数据接口的日常维护与文档整理。落款是人力资源部,但任何人都看得出来,没有钱峰的推动,这份通知不会出现在这里。
办公室里有人悄悄朝他的方向看过来。邻座的年轻同事想说什么,张了张嘴,终究没有开口,只在微信上给他发了一个拥抱的表情。周明回了一个“没事”。
钱峰大概觉得火候还不够,过了半小时,亲自走到周明工位前。他双手插兜,脸上挂着那种表面关怀实则试探的笑:“周明,这事有点突然,但你放心,不是降职,就是岗位调整。你资历老,去那边带带新人,也是发挥余热嘛。”
周明从屏幕上抬起目光,没有愤怒,也没有低声下气。他看着钱峰的眼睛,语气平淡得像在说一件不相干的事:“可以,明天我交接。”
钱峰愣了一下,好像没料到这反应。他点了一下头,说:“那就好,我还怕你想不通。”
周明没有接话,把桌面上一个文件夹合上。钱峰刚转身要走,他忽然补了一句:“有一点我想先说明白。”
钱峰停下脚步,侧过身子看他。
“我手上负责过的几个模块,从下周起就不是我管了。数据配置、接口认证、日志监控,这些都按交接文档走。以后那边要是出了什么问题,别来问我。”周明的声音不高,但每个字都很清楚,“不是我不配合,是我已经不在那个位置上。”
钱峰笑了一下,那笑容里带着点轻松——“行,你放心去吧,技术部离了谁都转。”
他转身走了,步履轻快,像是搬掉了一块石头,落在沙发里。旁边几个同事对视一眼,谁都没敢接话。周明调岗的事情,就这么定下了。
下班前,周明把手里所有工作项整理成三份交接清单,该写的注释补上,该更新的文档保存好。他没有拖泥带水,也没有故意留下一堆烂摊子。走之前,他顺手把安全报告初稿的存档路径发给直属组长,备注里写了句:“这里是初稿,有些地方还在完善,暂时先存着,等定稿了再提交。”
他按点下班,走出写字楼时,正是傍晚天色将暗未暗的时刻,街上人来人往,便利店的灯亮得温和。他站在路边等红灯,手机震了一下,是钱峰在部门群里发了一条消息:“从下周开始,周明调去数据运维组,技术部内部职责同步调整,大家配合好工作。”
群里安安静静,没有人回复。周明把手机收回兜里,没有再看。
回到家,林静正在厨房煮面,看到他进门,探头问了一句:“今天怎么回来这么早?”
“活干完了。”周明换下鞋,走到厨房门口,靠在门框上说,“下周我换个位置。”
林静手里的汤勺顿了一下,回头看他:“什么意思?”
“调岗,去数据运维组。”周明说得轻描淡写,“不算坏事,那边不用总加班。”
林静看着他,没说话。锅里滚开的水声在两人之间填了很久的空白,她转回去,把面条捞进碗里,声音缓了下来:“那你……还好吧?”
“好着呢。”周明走过去,接过她手里的碗,“今天吃什么?我闻到番茄味儿了。”
林静看了他一眼,没有继续追问。她心里装着很多话,可看到他在餐桌上坐下,夹起一筷子面条,神色如常地把晚上吃面的计划说得笃定,她选择了先不把这些话拆开。
晚饭后,周明又坐回书桌前,打开电脑,调出昨晚那个文件夹。白天的调岗通知没有让他生气,反而让他更加确定一件事:钱峰的每一步动作,都在把他往那条已经铺好的路上推。数据运维组的位置虽然边缘,恰恰挂在那个客户系统的数据接口下面——那边能接触到的信息,比埋头写代码多得多。
他给白天没来得及联系的一位旧同事发了条消息:“你之前在那个客户系统里做过的配置文档,手里还有没有备份?”发完后他没有等回复,退出来,打开了那份“核查材料”表格,在备注栏里添了一行字:岗位变动,原模块交接完成。后续重点转向数据接口方向。
屏幕的冷光映着他的脸,他看了好一会儿,轻轻点了一下保存。
第十章 林静的深夜电话
夜里十一点刚过,书房里安静得只剩下屏幕散热的声音。周明正盯着那份客户系统的接口文档,手机忽然在桌面上震了一下。他拿起来一看,是林静的来电。
平时这个点,她已经睡了。
周明心头紧了一下,接起电话时声音先稳住了:“静,怎么了?”
电话那头沉默了两秒,才传来林静的声音。她像是在外面,背景里有风声,声音带着一点压不住的颤意:“周明……你是不是受委屈了?”
周明愣了一下,手指从键盘上移开:“怎么突然这么问?”
“今天下午,我在小区门口碰到你们技术部李哥的老婆。”林静停了一下,“她说你被调岗了,从原来的岗位调去一个偏的数据运维组,还说你们那个钱峰,在部门群里不点名批评了你好几次。她说……你被边缘化了。”
周明沉默了片刻。李哥是上游组的李建国,他老婆和林静同在一个瑜伽班,两人平时关系不错。周明没想到消息传得这么快,更没想到会以这种方式传到林静耳朵里。
“周明,你跟我说实话。”林静的声音低了下去,“你要是难受,别一个人扛着。我是你老婆,你有什么不能跟我说的?”
周明靠到椅背上,抬手揉了揉眉心。白天在公司所有同事面前维持的那副云淡风轻,被妻子的声音一点点敲碎了边角。他轻轻吸了口气,笑了一下:“没有的事,你别听人瞎传。我就是调了个岗位,还是技术活,又不是被辞退,算什么委屈?”
“那你为什么不跟我说?”
“我本来打算明天告诉你的。”周明停了一下,“今天事情多,回来又赶着处理一点东西,想着晚点再说。”
电话里安静了很久。周明能听到林静那头的呼吸声,很轻,带着某种压抑的起伏。他几乎以为她要挂电话了,她才重新开口,声音里带着一丝掩饰不住的难过:“周明,咱们结婚这么多年,我知道你是那种受了气也不吭声的人。你越说没事,我心里越不踏实。”
这句话像一根细针,穿过周明胸口的壳,扎进了最软的地方。他盯着窗外远处楼群的灯光,喉结动了一下,声音放低了半度:“静,我实话跟你说吧。我没有受委屈,我只是换了一张桌子坐。活儿照样干,工资的事,我也没打算就这么算了。”
“那你准备怎么办?”
“我在查一些东西。”周明斟酌着措辞,“公司有几个老项目的遗留问题,之前没人认真管过。我现在这个位置,恰好能接触到那边的数据接口,有些东西比在原岗位看得更清楚。我想用这段时间把事情弄明白。”
林静没有追问技术细节。她只听明白了一件事:周明不是认命,也不是赌气,他在做一件正经事。
“要多长时间?”她问。
“说不准,可能还要一段时间。”周明轻声说,“你再等我一阵子,等我把事情办完,我会把这个家欠的账都补上,也会让你和孩子过得安心。”
电话那头又安静了好一会儿。周明几乎以为信号断了,低头看了一眼屏幕,通话还在计时中。
然后他听见林静说:“我等你。”
三个字,轻轻落下来,却比他桌上那份写了一半的报告沉得多。
“但是周明,”林静的声音又响起来,带着一点哽咽,“你要是撑不住了,你就跟我说。我不在乎你工资多少,也不在乎你坐哪张桌子,我只在乎你这个人。我不想看着你一个人扛,扛到自己先垮了。”
周明握着手机,眼眶忽然有些发热。他仰起头,盯着天花板上吊灯的光,半天没有
说出一句话来。
他终于缓缓开口,声音里带着一点自己都没察觉的沙哑:“静,谢谢你能这么说。”
“说什么谢。”林静那头传来一声低低的笑,带着轻轻吸鼻子的声响,“你是不是眼眶红了?”
周明被她说中,愣了一下,也跟着笑了:“没有的事,就是灯有点刺眼。”
“你骗人。”林静止住了笑音,声音重新柔和下来,“周明,你还记得咱们刚结婚那会儿吗?你工资不高,咱们租那个小单间,夏天连空调都舍不得开,你拿着扇子给我扇了一整夜。那时候我就跟你说了,我选你这个人,不是选你能挣多少钱。这么多年,我这句话从来没变过。”
周明握着手机,指尖微微收紧。那些日子好像已经过去很久了,但被林静这么一提,却又清清楚楚地浮到眼前来。他心里涌上一股热流,好一会儿才平复下来:“我知道了。你也早点睡,别多想。”
“嗯,我明天还要送儿子上学。”林静顿了一下,“你也别熬太晚。”
“好。”
挂了电话,周明在椅子里坐了很久。屏幕上那份接口文档还亮着,窗外的风从半开的窗户里钻进来,带着初秋夜晚的凉意。他揉了揉脸,重新坐直了身子,目光落在文档里那串数据流标识上。
林静说得对,他这个人习惯了遇事自己扛。但今天她这通电话让他明白了一件事——他并不是一个人在走这条路。身后有家,有人等着他把日子重新撑起来,那他手里这些事就更不能停。
他端起桌角已经凉透的茶水喝了一口,手指在键盘上敲了下去。夜里接近十二点,书房里的光迟迟没有熄灭。
第十一章 冷板凳上的收获
自从那天夜里挂断林静的电话,周明在新岗位上已经坐了三天。
新桌子在技术部最靠里的角落,电脑是老型号,显示器边框泛黄,桌面上堆着几摞落了灰的文件夹。行政给他指位置的时候语气带着敷衍:“周工,这边东西有点乱,你凑合收拾一下。”周明没说什么,把文件夹一本本翻出来归类,又去保洁间借了块抹布,把桌面和显示器擦干净。
等他把角落清理出个样子,才发现柜子底下压着一台旧主机,机箱上贴着褪色的标签,写着一串项目编号。编号格式很老,属于公司五年前换过的那套系统。
下午三点,他在部门资源共享区里找到了对应项目名称——《数据交换中间件平台(遗留)》。页面上标注“已归档”,最后更新日期是三年前,负责人那一栏写着“钱峰”。
周明点进去,快速浏览了项目文档。这个平台当年是为了对接外部客户的数据接口而建的,后来业务调整被搁置,但底层服务一直没有下线,仍然每天在后台运行。他顺着网络拓扑图往下拉,看到接口网关所在的服务器段,眉头慢慢皱起来。
那台服务器用的还是旧版认证协议,没有启用传输加密,也没有设置调用频率限制。更严重的是,接口逻辑里有一段对传入参数只做了长度判断,没有做内容校验。他把那段代码翻出来反复看了三遍,确定自己没看错后,轻轻呼出一口气。
如果这个接口被外部的人找到,用构造过的数据包发过来,网关会在解析阶段崩溃。表面上看只是服务中断,可因为这个平台直接连着客户的核心数据库,攻击者可以顺着漏洞绕过权限检查,把整个公司主力客户的数据目录拖走。
周明靠在椅背上,手还停在键盘旁边。他想起赵总在早会上说“公司经营压力大”,想起钱峰在群里点名批评他“没有危机感”。原来真正的危机就躺在这台落灰的旧主机里,躺在这个标注着“已归档”的文件夹里,躺了三年,没人看。
他没有声张。下班后同事们陆续走了,他留在座位上把接口文档和旧代码完整复制到自己的移动硬盘里,又把服务器端口地址、调用日志的保存位置一条条记在加密笔记里。他没下载任何与工作无关的数据,只在权限范围内打开了自己该看的文件,但这些东西在他脑子里拼出的图景,已经足够让他心里有数。
第二天,钱峰路过他工位时停下来,有意无意地说:“周工,新岗位还适应吧?这摊东西很久没人管了,你要是觉得无聊,可以帮老张整理整理报表,反正也不着急。”
周明抬起头,不紧不慢地答:“我先把这边的东西梳一遍。接口文档有些旧了,对照着看看,回头需要更新的话我提个流程。”
钱峰轻轻笑了一下,语气里带着敲打的意思:“别太较真,都是归档项目,没人在意。”
周明点点头,没争辩。等钱峰走远,他把椅背转回去,重新打开了那个被搁置多年的项目文件。他想起王工吃饭时说的话:“他们不是不知道问题,是装看不见。你把活干好就行,多余的别背。”可如果要命到能让整个公司翻船,那就不算“多余的”。
他开始动笔。白天他在桌面上写日常巡检记录,晚上回到家,等林静和孩子睡了,他钻进书房,把旧接口的逻辑一遍遍过,把漏洞的触发路径、风险等级、影响范围、修复方案,一项项敲进文档里。他刻意控制时间,每天只写到十二点或一点,第二天依旧六点半起床,按时出门。
到了第三天,他发现了一个让他后背发凉的事实:接口日志里有一条来自外部的探测记录,时间就在上个月,对方试了三次,被旧版认证挡住,但没有触发任何告警。那条日志级别是“信息”,躺在几十万条记录中间,不主动去查,根本不会注意到。
周明把这条日志单独截出来,标了红色记号,又翻回去确认网关的告警配置——告警功能确实开了,可阈值设置错误,把十万条以内的探测都归为正常访问。也就是说,对方再耐心一点,多试几次,这个门就开了。
他盯着屏幕,脑子里闪过很多画面:孩子下学期的学费、林静说“我等你”的声音、赵总宣布降薪时办公室里一片死寂的样子。这些画面最后都落回他手边那份越写越厚的报告上。他知道,光靠情绪解决不了任何问题,但手里这份东西,能。
第五个晚上,报告初稿写完。他保存好,又在备份盘里复制了一份。窗外过了十二点,他站起来拉开窗帘向外看,小区里安静得像一座空城。远处一盏路灯亮着,他看了好一会儿,才把窗帘拉上。
回到电脑前,他把报告翻回第一页,纸面上的标题整齐有力:《关于数据交换中间件平台接口安全漏洞的分析报告(附修复建议)》。落款处,他签上自己的名字和日期。
日期正好是降薪后的第十二天。
还有十六天。
他关掉电脑,轻手轻脚走回卧室。林静已经睡着了,呼吸均匀,床头柜上放着一张便利贴,是白天她怕他忘带午饭写的:“饭盒在你包里,记得热了再吃。”
周明把便利贴揭下来,折好放进钱包夹层里,关灯躺下。
他没有睡意,也没有焦虑。那些东西他已经写下来了,记熟了,锁好了。剩下的问题只有一个——他要选什么时机,用什么样的方式,把这份东西摆到该看的人面前。
一个让对方没法装作看不见的场合。
第十二章 意外的信源
周明没有急着联系任何人。报告写完了,可他心里清楚,光有技术层面的证据还不够。他需要确认一件事:这个漏洞到底有没有被外部的人撞见过,客户那边的数据有没有被碰过。
他先从自己能接触到的文档入手。旧项目组的归档目录里,他翻出了三年前的客户对接记录,里面详细写着一套数据交换平台的调试过程。项目组解散后,接口交接给了信息中心代管,而信息中心那两年换了三拨人,很多文档只管转交登记,没人再看里面的内容。
他顺着文档里留下的联系名单往下找,大部分名字已经不在公司通讯录里了。翻到倒数第二页时,他停住了——刘姐,刘慧敏。当年项目组里负责客户沟通和需求对接的老同事,后来调去运营部做售后支持。名字旁边的分机号已经打不通了,但备注栏里留了一个手机号,是当年项目结束时留下的。
周明犹豫了一下,决定先不打那个手机号。他通过公司内部系统给刘姐发了条消息,问她还记不记得当年数据平台的事,说自己现在接手这部分归档工作,有些文档需要请教。
消息发出去不到十分钟,刘姐就回了。她没用文字,直接发来一条语音:“周明?你终于冒出来了。当年你们技术部走了那么多人,我还以为你也不在了。今天中午有空吗?我在楼下茶饮店等你,有些话还是当面说吧。”
中午刘姐选了个靠窗的角落,等周明到的时候,她面前已经摆了两杯柠檬水。她比三年前憔悴了一些,头发简单扎在脑后,说话声音不大,但语气很干脆:“你怎么突然翻到那个项目了?那破活不是早就归档了吗?”
周明坐下,没有拐弯抹角:“我调到了新岗位,负责处理历史遗留模块。翻到那个数据交换平台的时候,发现接口状态不太对。”
刘姐的表情变了变,她低头搅了搅吸管,沉默几秒才说:“你发现多少了?”
“接口没有升级,认证方式是旧版,而且有一条外部探测记录没触发告警。”周明说,“我查了台账,交接记录停在两年前,后面一直没有人跟进过。”
刘姐轻轻叹了口气,把杯子放下来:“那我跟你说实话吧。去年七月,也就是你们技术部裁员之后,我就发现过这个接口的异常。当时我手上有一批老客户的售后服务单,客户反映说业务系统偶尔卡顿,我去问信息中心的人,他们查了半天没查出结果。后来我自己翻接口日志,也看到过类似的探测记录,跟你说的差不多,对方像是来试路子的,试到一半被旧版认证挡了,但告警没响。”
“你跟谁提过这事?”
刘姐看他一眼:“我跟钱峰提过。当时他是项目对接人,我说这个接口的安全等级有点旧了,最好趁客户没出问题之前整改一下,我还把日志截图发他了。”
周明的手停在杯壁上:“他怎么说?”
“他说我跨部门管得宽,影响项目组奖金分配。”刘姐说到这里,声音里带出一丝涩意,“原话我记得很清楚——‘这种事报了不一定有人管,还让大家都没奖金,你何苦呢?’我当时也怕惹事,就缩回去了。后来那个客户又续了一年合同,我就更没底气提了。”
周明耳边又响起王工的那句话:“他们不是不知道问题,是装看不见。”
他问刘姐:“那条截图和聊天记录,你还有吗?”
刘姐低下头想了想:“截图早清了,聊天记录那部手机前年摔了,没备份。但是钱峰当时在部门周报里写了一条‘已反馈信息中心跟进评估’,我带你去查,那封邮件应该还在公共邮箱的已发送里,时间是去年七月十八号。”
周明心里一动:“部门公共邮箱?”
“对,账号密码都是共享的,历史邮件都在。他如果当时就提过这事,后面没有后续动作,那责任就分得很清楚了。”
周明没有再追问她对钱峰的判断。他问了一个更重要的问题:“刘姐,你还能想起来,客户那边有没有出过实际的数据问题?不需要准确数字,大概印象就行。”
刘姐想了想,说:“今年年初那个客户换了个负责人,来公司拜访过一次,说是‘系统比宣传的慢,但没丢过数据’。我当时在旁边做会议记录,听他们的语气,好像有人试过用旧接口连他们后端,被他们自己的运维拦下来了,他们还以为是在做渗透测试,安排了次应急演练。”
周明的眼神沉下来。客户已经把那次试探当成一次普通的攻防演练,没有人意识到,那个入口是从他们公司这边漏出去的。
他没有再多留刘姐。临走前刘姐站起来叮嘱他:“周明,我把这些告诉你,不是让你去跟钱峰干仗的。我就是觉得,那会儿自己没能坚持到底,心里一直堵着。你要是能把这事理顺,以后出了事,至少没人能稳稳地把黑锅扣到干活的人头上。”
“我知道。”周明说,“谢谢你没有沉默。”
他从茶饮店出来,走了很远才停下来。他抬头看了看公司大楼,玻璃幕墙反射着午后的光。刘姐发他的那条信息把最后一块拼图补上了:钱峰不只早就知道这个漏洞的存在,还亲手把提出问题的声音压了下去。如果客户那边真出了事,钱峰完全可以把责任推给“历史遗留问题”,推到已经离职的老员工身上,甚至推到第一接手的刘姐头上,而他自己干干净净地抽身。
周明把这件事放进报告里,写成一条时间线:去年七月,部门内部有人提出接口安全风险,备注栏有反馈记录,随后没有整改动作;去年八月,项目预算被挪作运营活动推广;今年一月,客户方反馈异常,但未被当作安全事件处理;上个月,外部探测记录出现在日志中。
他没有立刻公开,也没有去找任何人。他需要等一个最合适的时机,一个当所有人都意识到问题严重、却又找不到答案的时刻,他再把这些东西摊开来。
晚上回家,林静在厨房热饭,看见他进门就说:“你怎么眼睛红红的?是不是在公司受气了?”
周明摇摇头,洗了手盛饭坐下来。吃到一半,他忽然问林静:“你还记不记得我说过,不想靠低头过日子?”
林静抬头看他:“记得。”
“快了。”他说这两个字的时候声音很轻,“再有几天,就有结果了。”
林静没有追问。她往他碗里夹了一块排骨,说:“那赶紧吃,吃完了好干活。”
第十三章 第20天,赵总坐不住了
客户那边的异常是周四下午爆出来的。
市场部何经理接到合作方电话时,正端着咖啡准备开会。对方语气很冲,说昨天夜里他们内部系统监测到几条怪异的数据请求,追根溯源发现入口指向我们公司的旧接口,虽然没造成实质损失,但对方信息中心已经发了正式的书面警告函过来,措辞很严厉。
何经理没敢耽搁,挂了电话就上了十八楼,把赵总从会议室里叫了出来。赵总听完脸色就变了,当场把钱峰喊到办公室,门一关,声音压得低低的,但玻璃隔断挡不住话头。
“你说说吧,那个旧接口怎么回事?”
“赵总,那是前年项目二期留下的历史遗留问题,当时技术架构跟现在不一样,后期做过几次迭代,那块确实没跟上。”钱峰的声音隔着门板传出来,带着一种早有准备的顺滑,“去年我也让人评估过,老王那边说优先级不高,当时客户也没提过有异常,就搁下来了。”
“你去年评估过?有记录没有?”
“有,我让技术组在周报里写过一条反馈,邮箱里应该还能翻到。”
赵总沉默了两三秒:“那为什么现在才出问题?客户说就是从我们这边漏出去的,对方技术负责人的原话,你自己去看。”
“客户那边可能是误判。”钱峰顿了顿,“他们换了新负责人,对系统对接这块本身就不熟,之前有一次也是把正常的数据同步当成攻击,还搞了次应急演练。这次估计也是差不多的情况,我去跟他们技术的人沟通一下,解释清楚就没事了。”
“解释清楚?”赵总的声音高了一点,“人家发的是正式警告函,你拿什么解释?”
“就说那是例行数据接口测试,我们这边在做一个安全评估,提前没有跟对方打好招呼,属于流程疏漏。这样的话,问题定性就不是漏洞,是沟通不当。”
门外的走廊里,周明站在茶水间门口,手里拿着一个空杯子,刚好听到最后一句。
他没有立刻进去。等里面的脚步声往外移了,他才侧身退了半步,假装弯腰从饮水机下柜拿茶包。钱峰出来时路过他身边,目光扫过周明的脸,顿了一瞬,没说话,径直往前走了。
周明把茶包放进杯子,慢慢接了半杯热水,站在原地没动。
他知道,钱峰说的“让技术组在周报里提过一条反馈”,就是刘姐说的那封邮件。那封邮件里写的根本不是“已反馈信息中心跟进评估”,而是钱峰自己回复了四个字:暂不处理。周明在公共邮箱里翻过那封原始邮件,时间、地址、正文他都截图存好了。如果赵总真去翻记录,翻到的会是一行“暂不处理”的批复,跟刚才钱峰说的“评估过、搁下来了”完全是两个意思。
周明端着杯子往回走时,经过赵总敞开的办公室门口。赵总正站在窗边打电话,声音低得多,但依稀能听出几个词:“……还在查……对,技术那边在处理……不会影响后续合同……”
他挂断电话,转身时正好看见周明从门口经过,四目相对。赵总嘴唇动了动,似乎想叫住他,又犹豫地闭上了嘴。
周明没有停下来,也没有装作没看见。他朝赵总点了下头,表情平静,步子稳当地走回了自己的工位。
坐下后,他把那杯水放在桌角,打开电脑里的那份报告,光标停在“对外沟通记录”那一节。茶水间听到的那番话说得很圆,逻辑自洽,但破绽也恰恰在太圆了——钱峰解释得越快,越是早就准备好了说辞。一个从来没有关注过这个接口的人,不可能在被打断会议的三分钟内,把责任划分、沟通口径、解决方案全部组织得滴水不漏。
他知道自己该登场了。
但不是现在。等赵总把那封警告函翻出来,等客户方技术负责人发来更详细的异常日志,等钱峰的“解释”被对方一句“我们监测到的是真实攻击行为”顶回来的时候,他再把那份东西递上去。
那天下午,周明照常六点零一分关掉电脑。走之前,他把报告里最后一页新增了一行日期备注:4月16日,客户方致函,赵总过问,钱峰答复“历史遗留问题”。写完保存,合上笔记本。
走到电梯口时,何经理恰好也在等电梯,看见他时愣了一下:“周明,今天还准时走?”
“活干完了。”周明说。
何经理没接话,低头看了一眼手机,又抬头看了看他,欲言又止的样子。电梯门开的一瞬间,何经理跟上来,压低声音说了一句:“那个旧接口的事,听说是你最早查出来的?”
周明偏头看他:“谁说的?”
“没人说具体名字。”何经理收回目光,盯着电梯跳动的数字,“钱峰下午开小会,让技术组把去年到今年的所有接口日志整理一遍,说周五之前要交。大伙儿私底下都在猜,这锅最后会扣到谁头上。”
“扣不到当事人头上就行。”周明语气平和。
电梯到了负一楼,何经理先走了出去,回头看了他一眼:“兄弟,你手上要真有东西,早点拿给赵总看,别让老实人吃亏。”
周明没点头也没摇头,只说了句:“明天见。”走出电梯时,手机震了一下。
是林静发来的微信:晚上想吃什么?
他站在停车场出口,傍晚的风带着热意拂过面颊。他打了四个字回过去:“都有结果。”想了想,又删掉,换成了:“排骨。”
林静秒回:“好,等你回来。”
他收起手机,走了几步,忽然停下来,回头看了一眼身后的写字楼。十九层的几扇窗还亮着灯,他数了数,自己原来所在部门的方向至少有五六个工位还亮着。那个楼层里,有人正在为明天要交的日志加班,有人正在反复修改对外解释的措辞,有人正把所有可能指向自己的痕迹慢慢抹掉。
但周明知道,那封已发送邮箱里的原始邮件,抹不掉的。
他转过身,朝着地铁站的方向走去,步子不快不慢,像这二十天里每一个准时下班的傍晚一样。
第十四章 家里的一盏灯
周明推开家门,排骨的香味扑面而来。林静围着围裙在厨房里忙活,听见门响,头也没回:“洗手,饭马上好。“
他没急着落座,走到厨房门口站了一会儿,看她铲子一起一落,把最后一把蒜苗下进锅里。他低声说了句:“今天有点累。“
“那就少说话,多吃点。”林静没问公司的事,也没提调岗。
饭桌上,她给孩子夹菜,又往他碗里拨了两块排骨,说起幼儿园下周六办亲子运动会,问他能不能去。他说去。她点点头,又给他盛了碗汤。
周明洗碗的时候,发现厨房顶灯闪了两下,暗了一边。他从阳台工具箱翻出一个新灯泡,踩着凳子换了上去,拧紧,推闸,灯光重新亮白如初。林静站在客厅门口看了一会儿,忽然开口:“周明,你以前不换灯的。“
“以前也换过。“
“以前你回家不会这么安静。“她的声音很轻,像怕惊动什么似的,说完便转身回了卧室。
周明握着手里的旧灯泡,一股凉意从指尖透上来,半晌没动。
第二天是周六。
岳母一大早就来接孩子去赶集,林静在门口送完,折回来问他:“要不要一起去?顺便走走。“
“下午要紧着整理点东西。“
林静没多劝,披上外套出了门。经过书桌时,她顺手把那只放歪的保温杯正了正,又看了一眼电脑屏幕上密密麻麻的表格,没问,
门轻轻合上,屋子里只剩下周明一个人。日光从窗帘缝里挤进来,落在键盘上,像一条安静的河流。他坐回书桌前,屏幕上还是那份未完成的表格,三十几行,名字、工龄、调岗前后的薪资差异、人事变动的时间节点,每一列都记得清清楚楚。他揉了揉太阳穴,又从头核对了一遍数字,把两处错位的单元格修正,保存。
中午,岳母带着孩子回来,孩子手里攥着一个糖人,跑进书房喊爸爸看。周明忍俊不禁,蹲下来夸了几句,小男孩转而跑走,留下满室童稚笑语。饭菜上桌,岳母随口问:“小周,今天不用去公司?”他顿了一下,说:“调休,在家有点事。”岳母也不深究,一边给孩子夹菜一边说起赶集的见闻,气氛轻松。林静安静地吃着饭,偶尔抬眼看他,没说破。
饭后,周明正要起身收拾碗筷,林静拦下他:“你忙你的,我来洗。”他有些意外,但还是点了点头,转身回到电脑前。下午的几个小时里,他整理完材料的主体,又把前些年考过的资格证书扫描件逐一归档,塞进一个名为“附证材料”的文件夹。窗户外的天色一点点暗下去,他浑然未觉。
傍晚的时候,林静敲了敲书房门:“歇一会儿,眼睛不累吗?”他哦了一声,把手边的表格保存,站起来晃了晃脖子,才发现后颈酸得厉害。林静端进来一杯温水,搁在桌角,没头没尾地说了一句:“楼下超市今天到了两种新茶,一种茉莉,一种龙井。”他说:“龙井吧。”她应了一声好,却没有走,目光落在墙角那盏旧台灯上。那台灯是他刚上班时买的,灯罩磕掉了一块漆,支架也歪了些,灯光总有些发暗。她看了几秒,没说话,出了门。
大约九点半,孩子已经睡了,林静从外面回来,手里提着一个袋子。她拆开,是一盏新的LED台灯,银灰色的支架,乳白的灯罩,简约干净。她把旧台灯轻轻收起来,将新灯放在书桌一角,插好电源,啪地按亮。光很柔,铺在桌面上,没有频闪,表格上的字一下子清晰锐利起来。
“旧的用了快十年,该退休了。”她说得云淡风轻。
周明看着那道光,想说谢谢,又觉得太轻。他张嘴,却听她说:“你桌角那张纸条,别忘了看。”他这才注意到杯子底下压着一个小便签。字迹娟秀,是林静的:**“家里有我,你放心干你想干的事。”**
他拿着纸条,纸很薄,字很短,却像有什么东西在胸口重重锤了一下。他低头看了一会儿,又抬头看她。林静没等他说话,转身往厨房走:“锅里热着粥,你弄完自己盛。”声音和平常没有两样,好像那八个字不过是一句再普通不过的家常话。
周明坐在新台灯下,那张纸条反复读了三遍。他想起当年决定跳槽来这家公司时,林静也是这样,不劝、不拦,只默默把备好的户口本放在他包里。想起孩子出生那晚,他出差在外,林静一个人签了手术单也没怨他一句。想起上个月工资卡上的数字少了一截,她却像没看见似的,只多买了他爱吃的虾仁。
指尖抵着纸条的边缘,有些微微发抖。他深吸一口气,把纸条小心夹进笔记本的封面内侧,然后坐直了身子,重新打开那份材料。电脑右下角的时钟跳过了十点,书房里只有键盘的嗒嗒声。那份文件,他删掉了一段措辞过激的备注,把诉求条目重新梳理成三条,有理有据、不卑不亢。他知道这未必能改变什么,但至少,他得对得起那盏为他换上的新灯。
客厅的灯还亮着,隔着一道门缝透进来。林静大约在裁什么东西,纸剪子咔嚓咔嚓地响,偶尔停下来,又继续。周明没有再回头去看。两个人的夜晚,一道门,两束光,各忙各的,却像拧在一根绳上。
他把最后的材料保存好,又备了一份到U盘里。站起身,合上电脑,端起那杯已经凉透的水喝了一口。经过客厅时,他看见茶几上放着一副叠得整整齐齐的干净的袜子,是林静备好在凳子上等他明早出门穿的。他没有说话,弯腰把袜子拿起来,放回卧室的床头,然后轻手轻脚走进厨房,从锅里盛了一碗粥,慢慢喝光。
粥是温的。灯是亮的。桌子上的纸条还在夹层里,仿佛一枚沉甸甸的定心石。
第十五章 28天,谈话开始
下午的太阳斜斜打在公司走廊的玻璃幕墙上,光斑拉得很长。周明刚把手头那封邮件发出去,桌上的座机就响了。电话是赵总的秘书打来的,语气客气又生硬:“周工,赵总请您四点钟来一趟他办公室,方便吗?”
“好。”周明应了一声,挂断电话。他低头看了一眼电脑右下角的日期,第十二十八天。他伸手关掉所有程序,把那份打印好的材料从抽屉里拿出来,装进一个灰色文件袋,又检查了一遍封口,起身。
走廊里安安静静的。周明经过技术部的大开间时,有几个人抬头看他,目光闪了一下,又迅速低下去。钱峰的工位在靠窗的位置,他正低头翻一份表格,余光瞥见周明,没说话,只盯着那个文件袋看了两秒。
赵总的办公室在走廊尽头,门虚掩着。周明敲了两下,听见里面有人说“进来”,声音不高不低,带着一点熟人之间才有的松弛。他推门进去,下意识先扫了一圈。办公室里两个人,赵总坐在大办公桌后面,面前放着一杯茶;钱峰坐在旁边的小沙发上,双手搭在膝盖上,脸上挂着一种说不上来的表情,有点像是替他惋惜,又像是等着看好戏。
“小周来了。”赵总抬手指了指椅子,“坐,先坐。”他站起来,亲自给周明倒了一杯茶,推到他对面,语气里带着熟稔的客气,“这茶不错,你尝一口,清明前收的。”
周明坐下,没动那杯茶,只是把文件袋搁在腿边,正对着赵总,神色平静。赵总也坐下来,看了他一眼,又看看钱峰,清了清嗓子,说:“周明啊,你到咱们公司几年了,七年了吧?”
“七年零三个月。”周明答得干脆。
“七年多了,老员工了。”赵总点点头,语速放缓下来。“我跟钱峰前阵子聊过你,也聊过公司的情况。这段时间辛苦你了,我知道你心里可能有想法,我也不瞒你说,公司最近日子不好过,我是顶着头皮在做预算。你怎么想?”
周明没有立即开口。办公室里的空调嗡嗡响着,像有一只看不见的蜂在飞。他目光落在赵总泡茶那只玻璃杯上,片刻后问:“赵总想听真话,还是听假话?”
“当然真话。”赵总往椅背上一靠,“你我还说见外的话做什么。”
“那我就直说。降薪这事,我不服。不是四千块钱的问题,是它来得不明不白。”周明的嗓子很稳,一字一句说得很慢,却每一个字都落得清清楚楚。“公司效益下滑,我能理解。但你们没坐下来跟我解释过一句,没算过账,没谈过条件,一封邮件就通知我下个月工资少了三分之一。这叫什么呢?赵总,这不像体谅员工,像单方面宣布。”
赵总眉毛动了动,钱峰抢先开口:“老周,你这么说就过了。降薪是全员的事,又不是针对你一个人。赵总也不容易,预算都是他一个人扛着扛过来的。现在外面有的同行连工资都发不出来,咱们至少没裁员。”
周明偏过头看了钱峰一眼,嘴角轻轻勾了一下,没有反驳。钱峰被他这样一看,反而有点不自在,语气微微生硬起来:“你想想,你上有老下有小,真要在这个节骨眼上动心思,出去能不能找到比这薪资更高的岗位,你心里应该有数。”
这话说出来的时候,办公室里的空气像被按了一下。赵总没有插嘴,只低头吹了吹茶面上漂浮的几片叶子,算是默许了钱峰的话。周明垂下眼睛,像是真的在想。两秒后,他从腿边拿起那个灰色文件袋,解开绕线,从里面抽出一叠打印纸,薄薄的在手里掂了掂。
“钱主管说得对,我不该跟公司对着干。”他说,声音不大,“赵总,你说公司效益不好,我认。但我不想听你教育我,你先看看这个。”
他把那叠纸平平整整地放到赵总面前,手指在纸面上轻叩了两下,退回到椅子上坐好。
赵总愣了一下,视线落到那页纸的开头。纸是A4规格,白纸黑字,抬头一行标题:“鼎盛科技数据接口安全风险分析及整改建议”。下面缀着一行小字:“技术部周明整理,数据截止于今日。”赵总的眉头轻轻皱了一下,抬手翻开第一页,目光在几行字上扫过,又翻到第二页,第三页,速度越来越快。到第四页时,他的手突然顿住,像被什么钉在原处,半晌没有动。
钱峰在一旁伸了伸脖子,想看清那是什么,赵总已经把纸页合了几页,抬头看向周明,语气沉下来:“这东西你是从哪里拿到的?”
“不是拿来的,是我在自己工作电脑和公司公共服务器上整理的。”周明花了一个下午逐条比对过,语气平静,“赵总,你先别管我怎么得到的,你往下翻,第十三页和第十四页是我列的时间线,每一行都对应着当初的邮件记录和操作日志,包括某些人是怎么把问题压下来的。”
他说话的时候,目光没看向钱峰,但钱峰的脸色却在这一瞬间变了,变得像一张被揉过的纸,又白又皱。他下意识开口:“周明,你什么意思?你这是在翻旧账?”
“我不翻旧账。”周明这才转过来看向他,眼神平静得让钱峰有些不寒而栗,“我只是把一直存在的事实,摆到赵总桌子上而已。其实你们比我更清楚,旧项目的漏洞早就有了,不是今年才有的。钱主管,去年六月份有一封邮件,你回的那句话是:不影响上线,下个季度再处理。那封邮件我后来在归档数据里找到了,白纸黑字,还在。”
钱峰嘴巴张了张,喉咙里像卡了什么,没说出完整的句子。办公室里一下安静下来,空调的声音变得格外刺耳。赵总把最后几页纸翻完,合上,没有马上说话,右手按在纸页上,最近憋了好几天的烟瘾犯了,他摸了一下口袋,又放下了。他静静看了周明很久,忽然说:“你需要多少时间?”
“我不需要多少时间,赵总。”周明把所有材料和主动权拿在手里,“报告留给你看,你先消化。但有一件事我现在就可以说清楚——我周明在鼎盛干了七年,没做过一件对不起公司的事,这七年熬夜加班的次数,我说不清,你们也查得到。我辛苦工作,不欠谁。但你们不能一边把我的工资砍掉,一边把公司的问题烂在锅里,回过头来还要我感恩戴德。我不接受。”
他顿了顿,声音放低了一点,却比刚才更重:“对了,客户那边的数据异常,上周五已经开始出现了。如果真的等到外部来捅破这个窗户纸,那大家脸上都不好看了。”
赵总的手指在那叠纸上按了按,指尖微微发白。钱峰想说话,被他一个眼神堵了回去。窗外有人在楼道里说话,因为隔着层玻璃听得不清,像水底的泡沫冒出来又碎。
周明站起来,把椅子轻轻推回桌沿。他那一身衬衫已经有些旧了,袖口洗得发白,却被他捋得整齐。他朝赵总点了点头,朝钱峰也看了一眼,没有嘲讽,没有挑衅,就那么看了一眼,然后转身向门口走去。走到门边时,他停了一下,背对着他们,声音不高:“我这份报告落款日期是今天。你们先看看,我下班之前来拿。”
门轻轻合上。办公室里的两个人对着那叠纸,谁也没先开口。
第十六章 我等的就是今天
从赵总办公室出来的时候,周明听见身后那扇门轻轻合拢的声音,像一声闷响,又像什么东西终于落了地。他脚步平稳地走回自己的工位,沿途经过几排办公桌,有人在低头看屏幕,有人在文件堆里翻找东西,没人抬头跟他打招呼,但他能感觉到那些余光从四面八方落过来,像细密的针脚缀在他后背上。他坐回自己的椅子上,把那个灰色文件袋放到桌角,打开电脑,继续处理手头上午没做完的那份测试记录。
隔壁工位的小刘端着水杯路过,在他桌边停了站住:“周哥,赵总找你没事吧?”周明抬眼笑了一下:“没事。核对个老项目的资料。”小刘“哦”了一声,嘴张了张,想说什么又咽回去,端着水杯走了。周明听见他走出去几步后,和另一个人低声说了句什么,那边传来一阵压着嗓子的嘈杂。他没有回头,也没多解释,该填的数据一行一行填完,该打的备注逐条打齐,和平时没有任何区别。
距离下班还有二十分钟的时候,赵总办公室的门从里面被推开,钱峰走出来,步子没了平时的从容。他走到饮水机前接了一杯水,手有些抖,水晃出来一些,洒在白瓷地砖上,他没擦,端着杯子喝了一口,像是没喝出味道,又端着走回自己那间玻璃隔断的小办公室,拉上了百叶帘。
技术部里没人说话,但气氛明显变了。几个平时和钱峰走得近的人面面相觑,有人打开聊天窗口猛敲键盘,有人假装翻文件,耳朵全竖着。周明知道他们在猜,在传,在把各种版本拼凑成一条消息链。他没打算去听。他看见右下角有消息闪烁,点开是小刘发来的:周哥,钱主管脸色很白。出什么事了?周明回了一句:没什么,把活干好就行。然后关掉窗口,继续看明天的工作计划。
五点五十分,他把当日的工作记录整理好,提交到项目管理系统,又打开工作邮箱,给负责接口模块的王工发了一封简短邮件,提醒他明天上午十点前把近一周的日志拷到公共盘。王工秒回了一个“好”,没有多问。周明关掉邮箱,站起身,端起桌角那个灰色文件袋。他没有急着走向赵总办公室,先去茶水间冲了一杯茶,等茶凉到能入口的工夫,他靠在窗边,看楼下的车流慢慢堵成长龙,晚高峰的灯光亮起来,把城市的轮廓描出一道暖黄色的边。他喝了两口茶,把纸杯扔进垃圾桶,这才走向走廊尽头那扇门。
门没有关严,留了一条缝,透出暖黄色的灯光。周明抬手叩了两下,赵总的声音从里面传出来:“进来。”
周明推门进去。赵总坐在办公桌后面,正对着那叠报告,手指停在某一页的段落上,指腹来回摩挲着纸面。桌上那只茶杯已经凉透了,茶叶沉在杯底,没人续水。周明走过去,站在桌前:“赵总,我来拿报告。”
赵总没有马上递给他,而是抬眼看了他几秒,目光里说不出是什么情绪,像是在掂量,又像是在确认什么。他把那叠纸往自己这边拉了拉,说:“报告我先留着。你明天上午再来一趟,我们好好谈。”
“报告我可以给你留一份复印件。”周明说,“原件我先带走,我回去还要补充一些东西,明天上午再带过来。”他看着赵总,没有躲闪,“赵总,我今天是真心想把事情谈清楚,不是来跟你提条件的。但我希望咱们都把这个事情想明白再往下走。大家都有来有回,谈判才谈得下去。”
赵总的手指在那叠纸上按了按,嘴唇动了动,最后说:“行。复印件留下,原件你带走。明天上午九点,你到我办公室来。”
周明点了点头,从文件袋里取出一份复印件放在桌上,又把原件装回袋子里,转身要走。赵总在他身后叫住他:“周明,你告诉我一句实话,客户那边的情况,你是什么时候发现的?”
周明站住,回头看着赵总:“上周三,我翻数据接口调用日志的时候发现的。但我查了历史记录,这个漏洞从去年六月份更新版本的时候就存在了,从来没有修过。我今天的报告里写得很清楚,哪个版本引入的,哪次提交应该修补但没补,谁在中间截断过,都列了。”他没有提钱峰的名字,但赵总显然知道他说的是谁。办公室安静了几秒,周明又说:“赵总,客户那边的异常不是今天才有的,也不是我周明一个人能造成的。我把它摆出来,是希望公司能赶在别人发现问题之前自己把问题解决。你要是觉得我在找茬,那我也没办法。但你要是认这个理,明天上午咱们见到面,该谈的都能谈。”
赵总没有回话。周明也没等他回话,拉开办公室的门走了出去。
走出公司大楼的时候,夜风迎面扑过来,带着初秋的凉意。周明站在台阶上,深深吸了一口气,口袋里手机震了一下,是林静发来的消息:“走到哪了?菜已经下锅了。”他回了三个字:“地铁上。”发完,他抬起头,看见写字楼上方深蓝色的天幕,几颗星隐约亮着,被城市的路灯衬得失了颜色。
他攥着那个灰色文件袋,走进地铁站。袋子里那份报告的原件,还带着打印纸的温热。
第十七章 赵总的妥协
第二天早上,周明比平时早了二十分钟出门。林静在玄关递过保温杯,说:“今天回来吃饭吗?”周明接过杯子,笑了一下:“谈完就回来,菜不用等我太早,七点前肯定到家。”林静看着他,没有多问,只说了一句:“不管谈成什么样,晚上都有热饭吃。”
周明到公司时,办公区还没多少人,走廊尽头的玻璃隔断里亮着灯。赵总已经来了,桌上放着他昨天留下的那份复印件,旁边多了一壶刚沏的茶,水汽从壶口漫出来,散在空调的凉风里。钱峰不在。赵总指了指对面的椅子:“坐。吃早饭了没有?”
“吃了。”周明坐下来,从文件袋里抽出昨晚补充好的报告原件,放在桌上,推到赵总面前,“赵总,这是我重新整理的版本,增补了两部分:一段是对外接口的调用频率分析,一段是同类漏洞在行业里的处理惯例。后面附了整改清单和时间节点,技术上怎么改、测试怎么验、回滚方案怎么做,都写在里面。你可以先看,不满意我再改。”
赵总没有急着翻。他端起茶喝了一口,又放下,目光落在周明脸上:“周明,我昨晚回去把你看过的报告又看了一遍,看到凌晨一点。你写得确实扎实,哪个版本引入的,哪次提交该修没修,都列得清清楚楚。我承认,这个问题在我接手之前就有,在我眼皮底下拖了大半年,我没有发现,是我的问题。我今天叫你来,不是想跟你掰扯谁的责任,我是想知道,你想要什么。”
周明看着赵总,没有立刻接话。办公室里安静了几秒,窗外传来地铁经过的震动声,一阵一阵,像心跳。他开口的时候,语气平稳,没有带怨气:“赵总,我要的不多,三条。第一条,恢复我的工资,从降薪那天起,差额补发。这个不该多说了,合同上签的薪资是多少,公司就该按多少发。”
赵总点了点头,没有犹豫:“可以。我签个字,财务今天下午走流程。”
“第二条,”周明说,“钱峰负责把整改推完。这个漏洞从去年六月份就有,中间有人提过,报到他那里被拦下来了,理由是怕影响季度奖金。我不是要追究谁,但谁压的事,谁就得把它做完。整改不是出一份报告就完事,后面还有测试、验收、复盘。这些事得有人背责任,不能到时候又找不到人。”
赵总的手指在桌面上轻轻敲了两下,没有马上答应。他低头看着报告上那一段用红笔圈出的时间线,钱峰的名字出现在其中两处记录后面。赵总沉默了一会儿,说:“整改我来推。钱峰那边,我另行找他谈。你既然把问题查得这么透,整改方案也写好了,后续的技术环节你全程跟,发现问题直接向我汇报,不经过项目组那一层。”
周明看着赵总,等他说完,继续说出第三条:“第三条,一套明确的考核和调薪制度。赵总,我在公司干了七年,我知道行业不景气,公司有难处,降薪这个事如果公司摆到明面上,跟大家一起商量,我不会闹。但这次是怎么降的呢?开会通知,没有数据依据,没有评估标准,谁在什么岗位、为什么降、降多少,全凭一句话。我不服,不是因为钱少,是因为这个规矩立不住。今天我周明能被临时降四千,明天别人就可能被降六千、八千,靠的是什么?靠谁在领导面前脸熟?这不对。我需要一个制度,绩效考核和调薪的标准写在纸面上,大家都能看到,能达到什么标准就拿什么钱。这样公司考核员工有依据,员工干活也有奔头。”
赵总听完,靠在椅背上,长长地呼出一口气。他没有看周明,而是看着窗外,好像在想什么事情想得很远。过了好一会儿,他转回头来,语气比刚才沉了不少:“周明,你这些话,以前没有人当着我面说过。不是大家不知道,是没人说,或者说了一两次觉得没用,就不说了。我今天给你一个答复:考核制度的事,我来牵头,一个月之内拿出试行方案,技术部先推行,试点没问题再全公司铺开。你提的三条,我都答应。降薪差额今天补发,整改项目由你全程跟进,制度一个月内落地。”
说完,他站起来,绕过桌子,走到周明面前伸出了手。
周明也站起来。两只手握在一起的时候,赵总的手掌干燥、温热,微微用力:“对不起,周明,这次是我做得不到位。公司看到你,应该谢你。”
“赵总,”周明松开手,语气依然平静,“我不是来要你谢的。我是来把这个公司应该有的东西给它找回来。大家都不容易,但不容易不能靠糊弄撑着,得把事情做对。”
赵总拍了拍他的肩膀:“你说的对。回去上班吧,今天下午财务会找你。”
周明弯腰把桌上的文件收回来,装进灰色文件袋。他走到门口的时候,赵总又叫住他:“对了,明天下午有个技术复盘会,你来讲这个漏洞的分析过程。不用收着,怎么发现的、怎么查的、为什么一年多没人发现,你都讲明白。”
周明回过头,看到赵总站在窗前,手里拿着那杯茶。他答了一声:“好。”然后拉开办公室的门,走廊里的灯光涌进来,天亮得很透。
回到工位,电脑刚亮起来,右下角弹出消息,是财务部的小郑:“周哥,赵总签了补薪单,今天下午到账,记得查收。”
周明回了个“收到”,放下手机,打开工作日志,在今天的日期下面敲下一行字:继续跟进数据接口整改,下午核对差异明细。
上午十点,钱峰出现在办公室门口,没有进门,站在那里停了几秒,看了一眼周明,欲言又止。周明抬起头,目光平静地和他碰了一下,然后低下头继续写东西。钱峰没说话,转身走进了赵总的办公室。门关上了。
办公区有人悄悄往那个方向望了一眼,又低头敲键盘。周明喝了一口水,把报告最后一页的整改清单重新检查了一遍,在“完成时限”那一栏填上日期,然后发送给王工。窗外秋天晴朗,阳光落在他桌上那台旧电脑的屏幕上,光标一闪一闪的,像什么重新开始跳动了。
第十八章 不是复仇,是尊重
上午十点半,钱峰从赵总办公室出来,脸色比进去时白了一层。他走过办公区的时候没有看任何人,径直进了自己那间玻璃隔间,把百叶窗拉了下来。
周明没有抬头。屏幕上的差异明细已经核对了四页,还剩两页,他端起杯子喝了口水,继续干活。
中午吃饭的时候,技术部的几个人围在茶水间里小声说话。周明端着饭盒走进去,大家忽然停了嘴,像在等他先开口。周明把饭盒放到桌上,坐下,拧开盖子,说:“有什么想问的就问吧。”
小刘第一个憋不住,凑过来压低声音:“周哥,听说你把钱峰的事情捅到赵总那儿去了?下午复盘会是不是要让他当众认错?”
周明夹了一口饭,嚼完吞下去,才说:“不是捅他。是问题需要讲清楚。数据接口那个漏洞去年就有人报过,被压下来了,压下来的人是谁、为什么压、压完以后出了什么事,这些事实摆在桌上,大家自己看。”
小刘还想再问,旁边老张拉了他一下:“行了行了,吃饭吃饭。”
下午两点,复盘会准时开始。会议室坐满了人,技术部骨干加上项目经理,十来个。赵总坐在长桌一端,手里拿着一支笔,进来的时候朝周明点了点头。钱峰坐在赵总左手边,面前摊着几张纸,目光垂着,不像平时那么精神。
赵总简短开场:“今天这个会,我废了大家两个小时。主题只有一个,数据接口遗留问题。这个问题现在查清楚了,但查清楚的过程值得每个人听一听。周明,你来讲。”
周明站起身,把投影打开,屏幕上弹出他整理好的时间线图表。他没有用复杂的技术术语,一页一页翻过去,从最初需求设计的情况,到上线时配置参数被改动,到去年有人提交过异常报告却被压下来,再到这个月他通过外部端口模拟访问测试发现风险等级为高。他讲得平稳,节奏不紧不慢,每一处关键信息旁边都标了日期和责任人。
讲到钱峰名字出现在“压置报告”的批示栏里时,周明的语气没有加重,就像在念一份普通的汇报文字:“这个环节,如果当时信息被传递上来,后面至少七个月的风险期是可以避免的。所以问题不是技术水平,是信息链路断了。断了的原因也很简单,有人觉得不影响当期交付指标,就没有继续上报。”
会议室安静得能听清空调出风口的嗡嗡声。所有人的目光都在周明和钱峰之间来回扫。钱峰的脸色一点一点绷紧了,额头上渗出一层细密的汗。
赵总沉默了几秒,转向钱峰:“钱峰,这个批示是你签的吧?”
钱峰张了张嘴,声音干涩:“是……但当时情况是——”
“你不用跟我解释当时,”赵总打断他,“你只需要在这里,当着技术部的面,把这件事说明白。问题存不存在?去年的报告是不是你压的?你和大家说清楚。”
钱峰的喉结上下动了一下。他端起杯子喝了一口水,放下的时候手微微抖了一下。半晌,他开口,声音低下去:“存在。报告是我压的。当时怕影响那个季度考核,就没往上递。这是我的责任。”
说完这句话,他低下头,像耗尽了全部力气。会议室里没有人说话,安静里带着一种沉甸甸的释然——事情终于被摆到台面上来,谁也不用再装不知道。
散会之后,大家陆续起身往外走。周明留在最后,把投影关掉,整理桌上的文件。钱峰从座位上站起来,走了两步,又停住。
周明抬起头,看见他站在那里,脸色灰败,像一棵被晒蔫了的草。钱峰没有走,也没有说话,只是站在那里,像是在等什么。
周明把文件收进袋子,走到他面前,伸出右手,掌心朝上:“我不恨你。但我希望你知道,职场上不是只有往上爬一种活法。你把活干扎实了,别人看得见,自己也睡得着。”
钱峰愣住,看着周明伸过来的手,动了动嘴唇,没有出声。几秒之后,他慢慢抬起手,握上来,指尖冰凉,轻轻用力一握,随即松开。他没有说“对不起”,也没有说“谢谢”,只是低下头,声音哑哑的:“……你早点回家吧,天不早了。”
他转身走出会议室。周明站在门口,看着他越过办公区走回自己的位置,打开电脑,把百叶窗重新拉了上去。阳光从窗外照进来,落在走廊的地板上。
周明回到工位,收拾东西,关掉电脑。手机震了一下,是林静的消息:“下班了吗?我看天气预报说明天降温,给你拿了一件外套放门口柜子里。”
周明打字回复:“下班了,马上回。今天想吃你做的那个西红柿鸡蛋面。”
林静秒回:“行,锅里水已经开了,你到家刚好出锅。”
他穿上外套,背起挎包,经过茶水间的时候小刘探出头:“周哥,今晚不加班?”
“不加。”周明说。
“那……”小刘想了想,“明天我有个配置参数想请教你一下,白天有空吗?”
“有,上班时间来找我。”
周明推开门走下楼。秋天傍晚的光线柔和金黄,风里带着桂花的味道。他的脚步不急不缓,走得很稳,像一个人终于卸下了背了很久的东西,那些东西没有丢,只是找到了该放的位置。
第十九章 二十八天赢回了生活
周明背着挎包走出公司大门时,晚霞正铺满半边天。门口的公告栏前围了几个同事,见他过来,小刘朝他招招手:“周哥,你来看!”
他走过去,玻璃橱窗里贴着一份崭新的通知。打印纸还带着温热,上面白纸黑字写着:即日起技术部恢复原薪资标准,同步实行新的绩效考核制度,同时成立技术顾问组,聘任周明为技术顾问,直接向总经理室汇报工作。落款处盖着公司红章,日期是今天。
旁边还有一页简短的调整说明,末尾一行字写着:钱峰同志调离技术部,另有任用。
周明看完,没有多站,只是点点头,转身往公交站走。身后几个年轻同事压低声音议论:“这才叫硬气,二十八天把局面翻过来了。”
他没回头,步子也不快,心里却涌起一种说不清的踏实感。不是得意,更像长跑之后终于看见终点线,膝盖发酸,胸口却不闷了。
走过两个路口,手机响了,是个陌生号码。他接起来,对面自我介绍:“周明吗?我是行政部老李,赵总让我跟你确认一下新办公位的事,你明天搬去二楼东侧那间独立办公室,电脑和门禁卡已经办好了。”
“好,麻烦你了。”
“不麻烦不麻烦,”老李语气热络,“以后技术上有啥把关的事,还得你多辛苦。”
挂了电话,他拐进一条种满梧桐树的小路。风从树叶间隙穿过来,带着晚桂的香气。手里的手机又震了一下,这次是部门群消息:新制度通知的截图被人转发进来,后面跟着一长串表情包。有人发了一句话:“周哥,你是这个。”随后再没人说话,却有很多人点了赞。
周明把手机揣回口袋,继续往前走。这条路他走了七年,往常都是赶时间抄近道,今天却不急。他放慢脚步,看路边小店的暖黄灯光一盏盏亮起来,看摆摊卖橘子的大爷懒洋洋地吆喝,看见一个骑自行车的小孩歪歪扭扭地冲进夕阳里。
到小区门口时,远远的,他看见一个熟悉的身影。
林静站在铁门旁边,怀里抱着孩子,另一只手攥着一束花——不是花店那种精致包好的玫瑰,是路边推车上卖的那种向日葵,小朵的,包在一张牛皮纸里,露出来的花瓣带着一点歪歪扭扭的生气。孩子趴在她肩头,小手抓着她头发,眼睛本来半闭着,忽然睁开眼睛,朝他这边伸出一只手。
周明快步走过去。
“你怎么出来了?”他把挎包往肩膀上提了提,伸手把孩子接过来。孩子贴着他的脖子,暖烘烘的,像一小团棉絮。
林静把花递到他面前,笑了一下:“路过那边看到有人卖花,就买了一支。庆祝你今天是技术顾问了。”
“你怎么知道的?”
“群里都传开了,”她把牛皮纸往他手边拨了拨,声音轻快,“我还看到有同事说,钱峰明天就不用来技术部了。那个话怎么说来着,这叫善有善报。”
周明抱着孩子,接过那束向日葵。“是明明白白的结果。”他说。
林静没有追问具体过程,只伸手理了理孩子被风吹乱的一缕头发,顿了顿,又说:“这一个月,我其实一直在想你说过的一句话。”
“哪句?”
“你说,咱们不能一直靠低头过日子。”她抬眼看他,“我当时没完全想明白,怕你把工作弄丢了,怕房贷还不上。可我没说出来的是,我更怕你每天回来那个样子——眼睛是亮的,人却是木的。好像一整天都耗干净了,连夸孩子一句都提不起精神。”
晚风比白天更凉了一些,吹得花纸沙沙响。孩子伸出一只手,想去够那朵向日葵,周明把花往另一侧挪了挪,让他抓了个空。
“现在好了,”周明的声音很稳,“我找回来的是不一样的一条路。不是靠闹,也不是靠忍,是靠把事做明白。以后,我们家的日子,会越来越好的。”
林静没说话,眼眶却微微红了。她忽然低下头,用袖子轻轻擦了一下眼角,又抬起头,笑着说:“快回家吧,面还在锅里,再不吃就坨了。”
孩子这时忽然张口,含含糊糊地喊了一声:“爸。”
声音很小,带着软糯的尾音,像只刚学会叫的小猫。三个大人都愣了一瞬。林静先反应过来:“听见没?他叫你呢。你上个月天天半夜才回来,他都没机会叫。”
周明把脸贴到儿子毛茸茸的头顶上,没有接话。他怕一开口,鼻子就会发酸。
路灯在这一刻齐齐亮起来,琥珀色的光沿着整条街道蔓延出去,连成一片沉默而明亮的河。他抱着孩子,林静走在他旁边,手里攥着那束向日葵,花瓣边缘被路灯镀了一层浅浅的金。
他们慢慢往里走,谁都没有再说话。晚风从前面吹过来,带着秋天的凉意和某种说不清的暖。周明低头看了一眼儿子抓着衣领的手指,又看了一眼林静侧脸那一道被光印出来的弧线,忽然觉得,这二十八天的每一天,都是值得的。
家里窗台上的灯光亮起来。林静已经系上围裙去厨房热面,周明把孩子放进婴儿床,轻轻关上房门,站在客厅中央。那束向日葵被插进一只旧玻璃瓶里,放在饭桌一角,花瓣向着窗口的方向,努力而安静地开着。
第二十章 尾声
三个月后的周一,公司门口多了一块铜牌,上面刻着客户名字和“安全守护”四个字。锦旗送来的那天,前台小姑娘拍了照片发到群里,说客户经理特意叮嘱要挂在显眼的地方。周明从会议室出来时,正好看见几个人围着那面锦旗拍照,有同事冲他喊:“周哥,这可有你一半功劳。”
他笑了笑,没接话,拐进茶水间给自己倒了一杯温水。玻璃窗外的梧桐叶子已经黄了大半,风一吹,哗啦啦落了一地。
工资条是周五下午发到邮箱里的。周明打开看了一眼,数字从八千恢复成一万二,又跳到了一万五。他盯着那个数字看了几秒,没有特别激动,只是关掉邮件,继续整理手头那份安全升级的收尾文档。倒是隔壁工位的小年轻凑过来,压低声音:“周哥,听说你工资涨了?咱们新制度是不是真按贡献算了?”周明把文档保存好,说:“你把手头那个接口的日志看完,下个月也能涨。”
小年轻眼睛一亮,转身回去翻代码了。
那天傍晚,周明下班比平时早了一些。他没有直接回家,而是绕到公司后面的小花园坐了一会儿。秋天的傍晚短,太阳一落,天色就暗得快。他看着对面写字楼一格一格亮起来的灯光,忽然想起一个月前自己每天掐着点走人的样子。那时候心里不是没有慌的,只是把慌压在了最底下,面上还得装着平静。
手机响了一声,是林静发来的消息:“晚上想吃什么?”
他打字回复:“都行。你想吃什么?”
那边过了一会儿才回:“那吃火锅吧。家里有羊肉卷,我再买点青菜。”
周明收起手机,起身往地铁站走。风从背后吹来,带着落叶和尘土的味道。他走得不快,却也不慢,脚步里有一种自己都说不清的踏实。
到家时,门一开,热气混着火锅底料的香味扑面而来。孩子坐在餐椅里,手里捏着一根煮软的胡萝卜,脸上糊着酱汁。林静系着围裙,正把一盘切好的土豆片往锅里下。看见他回来,她抬头笑了一下:“洗手吃饭。”
周明去洗了手,坐到桌边。孩子伸出黏糊糊的手要抓他袖子,他躲了一下,顺手抽了张纸巾给孩子擦脸。林静把火关小,坐到对面,忽然像想起什么似的,咬着筷子看了他一会儿。
“怎么了?”周明夹起一片羊肉。
“我有个事要跟你说。”林静的声音有点轻,眼神却亮亮的,“今天下午去医院了。”
周明筷子停在半空:“你不舒服?”
“不是。”她低下头,嘴角却翘起来,“医生说,有了。”
周明愣住。羊肉片在筷子上悬了几秒,滴下一滴油。他慢慢放下筷子,喉咙像被什么堵住一样,过了好半天才开口:“你是说……”
林静点点头,眼眶忽然红了:“快两个月了。我没敢早说,怕空欢喜一场。”
周明站起来,绕过桌子走到她身边,蹲下去,手轻轻覆在她小腹上。隔着毛衣,什么也感觉不到,但他觉得掌心烫得厉害。他抬起头,看见林静眼睛里蓄着泪,却还在笑。他张了张嘴,想说点什么,声音却哑了。最后他低下头,把脸埋在她膝盖上,肩膀轻轻抖了几下。
林静伸手摸他的头发:“哭什么呀,又不是坏事。”
周明闷声说:“我没哭。”
“嗯,你没哭。”她笑着摸了摸他的耳朵,“那你怎么不说话?”
周明抬起头,眼眶确实红了,但嘴角是往上弯的。他吸了一下鼻子,用袖子擦了擦脸,声音还是有点哑:“我就是觉得,这个月太好了。好得有点不真实。”
林静没说话,只是把他的头拉过来,让他靠在自己肩膀上。孩子坐在餐椅里,看看爸爸,又看看妈妈,突然把手里的胡萝卜递过来,嘴里含含糊糊地喊:“爸,吃。”
周明接过那根湿乎乎的胡萝卜,笑出了眼泪。他咬了一口,认真地说:“好吃。”
那天晚上,周明把孩子哄睡,又替林静收拾了厨房。林静说想吃苹果,他削好皮切成小块放在碗里端过去。她坐在沙发上,裹着一条薄毯,捧着碗,一块一块慢慢吃。电视里放着什么综艺节目,谁也没认真看。
周明在她旁边坐下来,沉默了一会儿,说:“明天我去把工资卡绑定一下,以后每个月自动转一笔到你的卡里。”
林静转过头:“为什么?”
“我现在拿一万五了,够用了。你不上班,得有点私房钱在身上。”他说得随意,语气却很认真,“另外我查了,咱们小区附近有一家月子中心,条件不错,你到时候去看看,喜欢的就订。”
林静放下碗,看着他:“周明,你是不是觉得委屈我了?”
周明摇头:“不是委屈。是想让你知道,你当初没拦我,是对的。我想让你放心。”
林静轻轻靠过来,脑袋搁在他肩膀上:“我早就放心了。从你那天拿着花回家的时候,我就放心了。”
第二天是周六。周明难得睡了个懒觉,醒来时林静和孩子还在睡。他没惊动他们,洗漱完,轻手轻脚出了门。公司楼下有一家早餐铺子,他买了豆浆油条,拎着往里走,值班保安看见他,打了个招呼:“周工,周末还来啊?”
“拿个东西,一会儿就走。”
他上楼,推开技术部的门。空荡荡的办公室里,只有电脑待机灯在闪。他走到自己工位前坐下,看着屏幕上屏保图案一圈一圈地转。桌面右下角还贴着那张泛黄的便利贴,是他二十八天前第一天准时下班时写的,字迹潦草:今天六点走。
他把便利贴揭下来,翻到背面,想了想,从笔筒里抽出一支黑色中性笔,在空白处写下四个字。
值得体面。
写完后,他看了很久。阳光从百叶窗缝隙漏进来,正好落在那行字上。他把纸条重新贴回显示器边框,起身,拿起那袋豆浆油条,转身往外走。
走到门口时,他停下来,回头看了一眼。工位上的显示器还亮着,屏幕上的屏保已经变成了公司新系统的监控面板,所有指标都是绿色的。他听到自己心里有一个声音,平静而笃定地说:这一切,才刚刚开始。
门在他身后轻轻关上。走廊尽头的窗户大开着,秋天的风穿堂而过,带来清冽的凉意。他走下台阶,阳光正好打在他脸上。口袋里的手机震了一下,是林静发来的消息:“醒了。你和孩子想吃什么?我点外卖。”
他停下脚步,打了几个字:“什么都行。我们回家吃。”
发完后,他抬头看了看天。蓝得没有一丝云。远处传来城市苏醒的声响,车流声、人声、鸽子翅膀扑棱棱掠过的声音。他深吸一口气,把手机揣回口袋,大步往家的方向走去。
(全文完)
文章虚拟演绎,请勿当真。
热门跟贴