被父母逼相亲,女上司破天荒秒批假,到餐厅坐下那刻,我彻底傻眼
被父母逼相亲,女上司破天荒秒批假,到餐厅坐下那刻,我彻底傻眼
楔子
周六中午,陈默推开餐厅玻璃门,按着母亲发来的桌号往里走。靠窗那桌已经坐了人,背影挺直,正低头翻一份蓝色文件夹,手边还摆着个小礼物袋。他清了清嗓子,拉开椅子坐下:“你好,我是陈默,阿姨介绍……”对方抬头,两人同时僵在原地。那是他的总监林知夏。她手里那袋原本要送给相亲对象的小礼物,轻轻磕在桌沿上。空气安静得能听见心跳。
第一章 比项目上线更难的事
周一下午三点,陈默刚把测试报告发出去,手机在桌上震了第四回。
他瞥了一眼屏幕,果然又是母亲。前三个电话他都没接,心里盘算着怎么措辞,第四个又来了。他叹口气,拿着手机快步走到消防通道。
“妈,我上班呢。”
“知道,就说两句。”母亲的语速一点不像只说两句,“周六中午空出来,你李叔叔介绍的姑娘,人特别好,餐厅我让你爸订好了,市中心那家新开的,十二点,靠窗的位子。”
“我周六——”
“别跟我提加班。”母亲的声音立刻拔高,“你上回说加班,上上回说项目忙,上上上回说同事结婚,陈默,你二十八了,不是十八,再拖下去好姑娘都被人挑走了。”
陈默靠着防火门,听见走廊那头有人刷卡进出的声音。他压低嗓门:“真不行,这周有个大项目要启动,我们总监——”
“你们总监结婚了吗?”
“没有,可是——”
“那她凭什么拦着下属结婚生子?就这么定了,十二点,不去你爸开车去公司接你。”
电话挂了。陈默在消防通道里站了半分钟,默默把手机塞回裤兜。
回到工位,隔壁的王硕凑过来,脸上带着一种过来人的坏笑:“阿姨又发动了?”
“嗯。”
“去呗,见一面又不会少块肉。万一真是个好的呢。”
陈默没搭话,点开公司内部系统,找到请假申请那一栏。他的手指悬在键盘上,半天没敲下一个字。
赵晓芸后来听他讲这事,笑得差点把咖啡打翻:“你请个假跟写遗书似的。”
可当时陈默笑不出来。林知夏是事业部总监,全公司公认的铁面。上个月有人请半天事假去办房产过户,被叫进办公室问了二十分钟,最后假还是没批。上周有人发烧三十九度想休息,林知夏回了一句“下午客户来访,你换个人发烧”。
陈默在这家公司三年,只请过两次假。一次是外婆去世,一次是自己急性肠胃炎。两次林知夏都批了,但他说不清那是出于人情还是她当天心情好。
他把请假理由写成“个人事务”,又觉得太模糊,改成“家中有事”,想了想,补了一句“周六上午处理完毕,下午可到岗”。写完又删掉最后一句,怕显得心虚。最后屏幕上只剩一行:事假半天,周六上午。
他检查了三遍日期有没有填错,起身往总监办公室走。
走廊不长,他却觉得每一步都踩在棉花上。林知夏的办公室门半开着,百叶窗拉了一半,能看见她坐在桌后,侧脸对着电脑屏幕,手指在键盘上快速敲击。
陈默轻轻敲了两下门框。
“进。”
他走进去,林知夏没抬头,视线还在屏幕上。她今天穿一件深灰色衬衫,袖口挽到小臂,左手边放着一杯已经放凉的美式咖啡。蓝色文件夹照例压在桌面右手边,那是她的习惯,什么重要文件都往里塞。
“总监,我想请个假。”
这句话一出口,林知夏敲键盘的手停了一下。她终于抬起头,目光平静地落在他脸上,没什么表情。
“什么时候。”
“周六上午,半天。”
“理由。”
“家中安排的事。”
林知夏沉默了几秒,那几秒长得让陈默后背开始冒汗。他已经在心里准备第二套说辞:如果她追问具体是什么事,就说家里长辈过生日;如果她问为什么不能改期,就说——
“周六中午?”
陈默一愣:“上午,或者中午前。”
林知夏“嗯”了一声,目光移回屏幕,手指又开始敲键盘:“批了。别迟到。”
就这么简单。
陈默站在那儿,一时没反应过来。他甚至怀疑自己听错了,或者林知夏随口应付,回头就在系统里驳掉。可他刚回到工位,手机就震了一下,系统推送:请假申请已通过。
他盯着那五个字看了很久。
“怎么样,批了没?”王硕又凑过来。
“批了。”
“真的假的?”王硕声音都变了调,周围几个同事也转过头。小刘从隔板后面探出脑袋:“你找的谁?林总?”
“嗯。”
“她今天是不是中彩票了?”
陈默摇摇头。他也想知道为什么。林知夏连他请假的用途都没细问,只问了一句“周六中午”,像是确认时间,又像是随口一说。可那个停顿不对劲,她平时批假从来不犹豫,行就是行,不行当场驳。今天那几秒钟的沉默,还有最后那句提醒,语气比平时轻。
陈默把手机放下,重新打开测试报告,可眼睛盯着屏幕,一个字也看不进去。
下班后他去了赵晓芸的咖啡店。店开在一条安静的支路上,晚上人不多,赵晓芸靠在吧台后面擦杯子,看见他就扬了扬下巴。
“老位置。”
陈默在窗边坐下,要了杯手冲。赵晓芸端过来,往他对面一坐,两手抱胸:“你脸色不太对。又被催婚了?”
“周六相亲,我妈已经把餐厅订好了,桌号都发了。问题不在这。”
“那在哪?”
“我们总监给我批假了。秒批。”
赵晓芸眨眨眼:“你以前不也请过假?”
“那是特殊情况。平时她连半天事假都要问半天。这次我就说了句‘家中有事’,她什么都没问。”
赵晓芸想了想:“可能她那天心情好。或者你平时表现太好,她对你放心。”
“你信?”
“不信。”赵晓芸笑了一声,“但你也别想太多。领导的心思你猜不透的,专心应付你妈比较实在。”
陈默端起杯子抿了一口,没说话。窗外街灯亮起来,行人来来回回,他脑子里却全是林知夏敲键盘的手指,和那句不轻不重的“别迟到”。
他总觉得哪里不对,但说不出来。
第二章 相亲对象没照片
**第2章 相亲对象没照片**
周六早上八点,陈默还没醒透,手机就响了。母亲的声音从听筒里传来,带着一股不容拒绝的干劲:“起了没?穿那件藏蓝衬衫,配深色裤子,别穿运动鞋。听见没有?”
“妈,这才几点。”
“早什么早,人家姑娘中午到,你不得提前去?我跟你说,第一印象最重要。”母亲那边传来翻东西的窸窣声,像是在查什么清单,“你爸待会儿把对方信息发你,你仔细看看。”
陈默翻身坐起来,抓了抓头发:“你昨晚不是说只有餐厅地址吗?”
“是啊,老周那边今天早上才把详细资料发过来,你爸在整理。你别嫌烦,人家姑娘条件好,工作稳定,人品也好,你去了多听少说,别老是闷葫芦一样。”
“知道了。”
电话刚挂,父亲的微信就到了。陈默点开,屏幕上只有短短三行字:老同事的侄女,人品好,工作稳定,在大公司做管理。周六中午十一点半,悦庭餐厅,二楼靠窗十二号桌。
他来回看了两遍,确认没有更多信息了。
“爸,照片呢?”他回了一条。
父亲回得很快:“老周说姑娘不太愿意发照片,见了面自然知道。你先去,别迟到。”
陈默把手机往床上一扔,仰面躺倒。没有照片,没有全名,连具体做什么工作都含糊其辞。他盯着天花板,突然觉得这场相亲从父亲描述的“靠谱”程度来看,实在谈不上靠谱。
母亲又发来一条语音,背景里父亲在说什么,她回头应了一句,又对着手机催:“衬衣熨好了挂在衣柜门背面,你别忘了。到了餐厅先看看环境,别一坐下就低头玩手机。跟人家说话的时候看着眼睛,你小时候就老爱东张西望。”
“妈,我二十八了。”
“你就是八十二,在我这也是儿子。去吧,中午完了给我打个电话。”
十点四十,陈默出门。
悦庭餐厅在商场四楼,装修偏中式,灯光调得柔和,靠窗那排桌子用木格栅隔成半开放的小区域。陈默报了桌号,服务员领他穿过大堂,往窗边走。十二号桌正好在角落,两面靠窗,视野开阔,能看到商场中庭的喷泉。
桌上摆着两副餐具,中间一只透明亚克力号码牌,印着桌号和一个二维码。陈默坐下来,把手机放在桌角,环顾四周。旁边的十一号桌和十三号桌都空着,只有远处靠墙那排坐了一对中年夫妻在喝早茶。
他忽然意识到自己来得太早了。十一点刚过五分。
服务员送来菜单,他点了一壶龙井,捧着杯子慢慢喝,脑子里开始预演开场白。第一句说什么?“你好,我是陈默”?太正式了。还是先递菜单问对方喝什么?可万一对方进来先坐下,他再开口会不会显得被动?
他反复在心里调整措辞,又觉得怎么都不对。想起母亲说“看着人家眼睛”,他下意识对着玻璃窗的反光练了一下微笑,随即觉得自己荒唐,赶紧收回表情,低头喝茶。
手机震了一下,是母亲发来的:“到了没?”
“到了。”
“环境怎么样?人家姑娘到了吗?”
“还没。”
“那你等着,别急,给人留个好印象。”
陈默把手机翻过去扣在桌上,吸了口气。窗外的阳光斜着照进来,在桌面上投下一片暖黄色的光斑,号码牌的影子被拉得细长。他伸手把号码牌摆正,指尖碰到亚克力边缘,有点凉。
十一点二十,他去了一趟洗手间。洗手的时候对着镜子理了理衬衫领口,又觉得领子其实挺平整的,自己这个动作纯属多余。出来的时候他走得不快,脑子里还在想刚刚那几句开场白的排列组合。
回到座位时,他愣了一下。
他的位置上多了一样东西。桌子靠里那一侧的桌面上,放着一只深蓝色的文件夹,硬壳,边角包着透明护角,像是办公用的那种。文件夹旁边还有一只手机,屏幕朝下扣着。
陈默第一时间以为服务员放错了,可四周看看,最近的服务员在另一头给客人点单。他走近两步,发现那只文件夹的侧签上什么都没写,干干净净的蓝色硬壳,只在右下角贴了一条小小的白色标签,遮住了原本的品牌字样。
也许是隔壁桌的客人暂放在这的。他环顾一圈,附近几桌都没人落座。
他犹豫了一下,觉得人家东西摆在自己桌上,万一待会儿相亲对象来了看见一个陌生文件夹,说不清楚。于是他伸手把文件夹和手机一起推到桌子靠里的位置,贴着窗台放好,又从旁边空桌搬了把椅子挡在那一侧,算是做个隔离。
做完这些他坐下来,看了眼时间,十一点二十七。离约定时间还有三分钟。
他端起茶喝了一口,龙井已经微凉,舌尖泛出一点涩。窗外的喷泉正好到了整点,水柱蹿高了一截,细碎的水雾在阳光下闪了闪。陈默放下杯子,手指无意识地摩挲着桌沿,目光落在餐厅入口的方向。
一个穿深灰色西装外套的身影从门口走了进来,个子高挑,步伐很快,没有在前台停留,径直往窗边这排座位走。陈默眨了眨眼,觉得那个身形有点眼熟,但光线从背后打过来,他看不太清脸。那人走到十一号桌旁边停了一下,低头看了看桌号,又抬头看向十二号桌的方向。
陈默的心跳突然快了半拍。
他下意识站起来,椅子往后蹭出一声响。可就在这时,他的手机震了,屏幕上跳出来电显示,是母亲。他本能地低头去够手机,指尖刚碰到屏幕,对面传来一个声音,不高不低,每个字都清清楚楚。
“十二号桌。”
陈默抬起头。
林知夏站在桌边,一只手搭在椅背上,另一只手里捏着手机。她穿着那件深灰色西装外套,里面是白色真丝衬衫,头发扎得比平时松一些,垂了几缕在耳侧。她看着他,脸上没有表情,瞳孔却明显地缩了一下。
两人中间隔着那张铺了白色桌布的方桌,桌上摆着一只号码牌、一壶凉透的龙井,以及窗台边一只不知道谁留下的蓝色文件夹。
陈默张了张嘴,什么声音都没发出来。手里的手机还在震,母亲的名字在屏幕上亮了又暗,暗了又亮。他下意识想坐下,膝盖撞上桌腿,桌上的号码牌轻轻跳了一下,歪倒在桌布上。
林知夏的目光从陈默脸上移开,落在歪倒的号码牌上,又移回来。她的手指在椅背上收紧了一瞬,然后松开了。
“你坐。”她说。
声音比在办公室里轻了半度,但陈默听得很清楚。他慢慢坐回去,手机终于不震了。屏幕上多了两条未接来电,和一条母亲发来的微信:“到了没?人家姑娘说已经到了,你看见没有?”
陈默盯着那条消息,没有回复。他抬起头,林知夏已经拉开对面的椅子坐了下来,动作干脆,包放在身侧,那只蓝色文件夹被她顺手拿起来放在自己腿上,翻开看了一眼,又合上,推到桌角。
两人面对面,中间那只号码牌还歪着。窗外喷泉的水声隔着玻璃传进来,闷闷的,像很远的地方有人在敲一面小鼓。
“陈默。”林知夏开口。
“林总。”
“在这里别这么叫。”
“那——”
“先点菜。”她拿起菜单翻开,手指停在第一页,但没有看上面的字。过了一会儿,她抬起眼,“你也没照片?”
陈默摇头。
林知夏把菜单合上,放在桌角文件夹旁边,指尖在硬壳上轻轻敲了一下。咖啡色的光从窗外照进来,在她脸上落了一层薄薄的暖色。她呼了口气,嘴角动了动,像是在权衡什么,最终只说了一句。
“巧了。”
第三章 坐下那刻
林知夏把菜单放回桌上,指尖在桌布上划了一道,像是在整理思路。陈默看着她,脑子里那些在办公室用惯了的称呼,一个个浮上来又被按下去。林总,林总监,知夏姐,哪个都不对。
“你家里怎么跟你说的?”林知夏先开了口,声音压得很低,像是怕被邻桌听见。
陈默深吸一口气:“我妈说对方是老同事的侄女,人品好,工作稳定,在市区做管理。二十八岁,比我小两岁。没有照片,没有名字,只发了餐厅地址和桌号。”他从兜里掏出手机,划开母亲那条微信,将屏幕转过去。
林知夏接过手机,垂眼扫了两行,目光停在最后一条消息上——“她叫小夏,很秀气的姑娘,见面了别让人家失望。”
她把手机递回来,没接这句话。她自己也拿出手机,翻到介绍人的对话框,把屏幕转向陈默。对面发来的是一张餐厅截图,桌号十二,时间十二点半,下面一行字:“男方姓陈,28岁,软件公司中层,人很踏实,家里是教师出身。”
“中层。”陈默苦笑了一下,“我实际工资条上的数字,可能不够请她喝几杯咖啡。”
林知夏嘴角动了一下,算不上笑,更像是对这个评价的短暂认同。她把手机收回去,拇指在屏幕上停了一瞬,又关掉了。她没拨电话,也没发消息,似乎暂时没打算去质问介绍人。
陈默注意到她手边那只蓝色文件夹,封面印着公司logo,边缘有几道折痕,他见过这个文件夹,每周项目例会上她会把它放在左手边,翻开合上都极快。他没想到她会把这东西带进相亲餐厅。
“所以,”陈默清了清嗓子,“今天这个事,是两边长辈自作主张?”
“大概率。”林知夏说,“我家里人只知道对方在软件公司,不知道在哪家。如果知道我是他领导,估计介绍人自己先不干。”她顿了顿,“你呢?你父母知道我是谁吗?”
陈默摇头:“他们只知道我有个女领导,管得严,请假要提前一周。今天下午的假批下来,我妈还惊讶了一下,问我是不是跟领导关系变好了。”
林知夏没接话,目光落在桌上那只歪倒的号码牌上。号码牌是深蓝色塑料的,正面印着白色数字“12”,背面贴了一张手写的纸条,字迹娟秀,像是服务员仓促间写下的。她伸手,把它翻过来看了一眼,又翻回去,放正。
“这个牌子,”她说,“本来不是我拿的。”
陈默没听懂:“什么意思?”
“我刚进来的时候,服务员让我坐九号桌。我坐下之后,邻桌有个小孩跑过来,把桌上那只号码牌碰掉了,捡起来的时候放错了位置。”林知夏说,“我当时没在意,后来服务员重新引我过来,说这桌才是十二号。”
她说完,看了陈默一眼:“所以你先坐在这儿,那也是巧合。”
陈默沉默了几秒,把这句话消化了一遍:“你的意思是,我们两个人,本来可能根本不会坐到对面来?”
林知夏没点头也没摇头,但她的沉默本身就是回答。她低头看了一眼手机屏幕,又锁屏放回包里,动作很快,像是想把这个话题翻过去。
服务员适时地走过来,手里端着点单用的平板,面带训练有素的微笑,对两人说:“二位喝点什么?我们这边新上的手打柠檬茶还可以,要不要试试?”
林知夏抬头,语气平稳:“两杯柠檬水,常温。”
服务员在平板上点了几下,又问:“餐食呢?”
林知夏看了陈默一眼,陈默脑子还一片空白,柠檬水这三个字像一个缓冲垫,把他从混乱里接住又抛起。他张了张嘴,说了句“随便”,随即觉得不妥,补了一句:“跟她一样。”
服务员没觉得这对坐着的男女有什么异常,微笑着离开了。桌边又只剩下两个人,隔着那张铺了白色桌布的方桌,窗外喷泉的水声还在响,咖啡色的光向西移了一寸。
陈默看着林知夏,她今天没有化平时那种干练的妆,只是薄薄一层隔离,嘴唇上涂了一点很淡的颜色。头发扎得松,落了碎发在耳侧,他说不上来是哪里不一样,但坐在对面的这个人,和他每天在会议室里看到的那个人,确实有那么一小段距离。
“林……知夏。”他试着叫了一声,没带职务。
她抬眼看他,没纠正,也没让他继续。
“今天的事,你会不会觉得……”陈默斟酌了一下措辞,“是我安排的?”
林知夏摇头:“你连我名字都不知道,怎么安排。”
“是啊。”陈默苦笑,“我妈只告诉我对方叫小夏,我甚至不知道是哪个夏。我还想着,要是到了之后发现不对,就拿出工作当借口,说自己临时有项目要上线,跑路。”
“你预谋得挺远。”林知夏说,语气里听不出是调侃还是陈述。
“结果跑不掉了。”陈默说。
林知夏没接,她的目光落在陈默手边那个位置上,那里放着一只纸袋,很小,封口处贴了一朵棕色的干花。陈默注意到她的眼神,有些窘迫地开口:“我妈准备的,说男方第一次见面要带点小礼物,让我买个护手霜什么的。我实在不知道买什么,就买了瓶洗手液。”
“洗手液。”林知夏重复了一遍。
“柠檬味的。”陈默补了一句,然后自己都说不下去。
林知夏的嘴角这次是真的动了一下,幅度不大,但陈默确定那是一个笑意。她低下头,像是要把这个表情藏起来,再抬起头时神色又恢复了平静,但眼角那道弧度还没完全收干净。
“陈默,”她说,“今天这个事,我先说清楚。我不是来相亲的,至少不是冲着相亲来的。我家里人给我施压了三个月,我是抱着走个过场、回去交差的心态出门的。跟你坐在这里,是意外,但我不会因此为难你,也不会因此优待你。周一上班,一切照旧。”
陈默点头:“我也一样。今天的事我不会在公司提,同事要是问起来,我就说没成。”
“没成。”林知夏重复这两个字,像是在确认这个说法是否可信。她低头看了一眼桌上的号码牌,又抬起来,“但你家里人还会安排下一次。”
陈默想说不会,但他自己也知道这个保证没有任何分量。他母亲今晚大概率会打电话来问情况,问长相,问工作,问有没有后续。他回答不上来,因为他对面坐的这位“小夏”,他连自己该不该认识她都没想清楚。
服务员把两杯柠檬水端上来,玻璃杯壁挂着细密的水珠,杯底沉了一片薄荷叶。林知夏端起杯子喝了一口,动作自然,像这个动作她已经重复过无数次。陈默也端起来,冰凉的液体滑过喉咙,脑子稍微清醒了一点。
他放下杯子,看着对面的人,问出了从坐下来到现在最认真的一句话:“那你家里那边,你怎么交代?”
林知夏的手指在杯壁上停了一下,水珠顺着玻璃滑下来,落在桌布上,晕开一个小圆点。她看着那个圆点,过了一会儿才开口。
“我回去会跟他们说,人不错,但没感觉。”
“你爸妈会信吗?”
“不会。”林知夏说,“但他们会等下一次安排。”
她抬眼看他,目光里没什么情绪波动,却又好像隔着那层平静,藏着什么别的东西。陈默没有追问,他知道此刻自己问不出更多。这个坐在对面的人是他的上司,是他每天开会时抬头能看到的人,也是此刻坐在这里,与他共享同一壶凉透的龙井和两杯柠檬水的陌生人。
窗外的喷泉声渐渐被午高峰的车流声盖过,那束咖啡色的光也从她脸上滑到了桌角。林知夏把蓝色文件夹拿起来,放进包里,拉上拉链。
“饭还吃吗?”她问。
陈默看了一眼菜单,又看了一眼她,说:“吃。”
林知夏把菜单推过去:“那你点。我请你。”
第四章 柠檬水与坦白局
柠檬水的冰还没化完,林知夏先开了口。
“我先说清楚,今天这个局,我事先不知情。家里只告诉我,对方是个踏实的人,工作稳定,人老实。”她顿了一下,“没提名字,没提单位,连照片都没给。”
陈默苦笑:“我这边也是。我妈说老同事的侄女,人品好,让我人到就行。我昨天还问过有没有照片,她说见了面自然知道。”
“所以不存在谁故意撮合。”林知夏用勺子拨了一下杯里的薄荷叶,“公司里没人知道我今天来这儿,我也没跟任何人提过。”
“我也是。”陈默说,“我请假理由是家里有事,没写相亲。”
林知夏看了他一眼,像是确认这句话的真实性,然后轻轻点头:“那就好。我最怕的是有人拿这种事做文章。”
“不会。”陈默说得很干脆,“今天出了这个门,我就当没发生过。”
“那你家里问起来怎么说?”
“就说没成。”陈默想了想,“反正他们也不认识你,我说不合适,他们也查不到。”
林知夏没接话,端起杯子喝了一口。窗外车流声涌进来,餐厅里人渐渐多了,邻桌坐下了一家三口,小孩拿筷子敲碗沿,被母亲按住手。陈默忽然觉得,比起刚才两个人面对面僵着,现在的沉默反倒没那么难熬。
“饭既然点了,就吃完吧。”林知夏放下杯子,“各回各家,也好交代。我要是现在走,我妈晚上能打三个电话追问细节。”
陈默忍不住笑了一声:“我妈也是。她能从我说话的语气里判断对方长相。”
“这么厉害?”
“退休教师,教了三十年语文,听学生撒谎听出经验了。”
林知夏嘴角动了一下,像是要笑,又收住了。她拿起菜单翻了两页,指着上面的菜名说:“你点吧,我不挑。只要别点太辣的。”
“你吃不了辣?”
“胃不太好,医生让忌口。”她说得很平,“平时应酬多,能推的都推了,推不掉的就硬扛。”
陈默没再问,低头看菜单点了三个菜一个汤,把菜单递还给服务员时特意嘱咐少放辣椒。林知夏看了他一眼,没说什么。
等菜的空当,两人聊起了别的事。先是陈默问起她那个蓝色文件夹,林知夏说是下周客户提案的资料,她周末习惯把东西理一遍。陈默说自己也这样,项目节点前一周就开始列清单,不然到跟前容易漏东西。林知夏点头,说这个习惯不错。
“其实我一直想问,”陈默把水杯转了半圈,“你平时开会那么严,是不是因为以前吃过亏?”
林知夏挑了下眉:“你觉得我严?”
“团队里都这么说。”
“严是应该的。一个方案漏洞,客户那边可能就是几十万的损失,回头追责追到谁头上?追到我。”她语气平淡,“我不怕担责任,但我怕本来能避免的事没避免。”
陈默点头。他想起上个月那份被她打回来三次的报告,当时心里多少有点不痛快,现在听她这么说,那点不痛快散了。
“你呢,”林知夏问,“在公司干了多久了?”
“三年多。一直做执行。”
“没想过动一动?”
陈默犹豫了一下。这个问题他其实想过很多次,但从没跟公司里的人说过。他拿起柠檬水喝了一口,还是说了:“想过转产品岗。执行做久了,能看见问题,但没权限改。有时候方案到手里,明知道按这个做后面会出麻烦,可我只能照做,最多提一嘴,提了也没人听。”
林知夏看着他,没打断。
“但我没提过。”陈默补了一句,“怕别人觉得我不安分。”
“不安分不是坏事。”林知夏说,“前提是你拿得出东西来。想转岗,先把手上的活干到别人挑不出毛病,再让人看见你能想事。光说没用。”
陈默点点头。这话说得直接,却不刺耳。
菜上来了,两人边吃边聊。话题从工作拐到了别处。林知夏说她春节不想回家,家里从腊月就开始安排见面,初一到初五能排满。
“去年我回去四天,见了三个。”她夹了一筷子青菜,“我妈的理由每次都一样,说人家条件好,见见又不吃亏。我说我工作忙,她说工作忙才更要抓紧。”
“我爸妈也这么说。”陈默放下筷子,“他们退休了,闲着,所有精力都放在我身上。我租的房子离公司四十分钟,他们嫌远,让我搬回家住,说省下的房租将来娶媳妇用。”
“你没搬?”
“没搬。搬回去就没有自己的时间了。”
林知夏笑了一下,这次是真的笑,虽然很浅:“这点我跟你一样。自己住,门一关,谁的电话都可以晚点回。”
陈默看着她,忽然觉得对面这个人跟办公室里那个林总监不太一样。会议室里的林知夏说话快,决策果断,眼神扫过来能让人把到嘴边的话咽回去。此刻的她慢条斯理地挑着鱼刺,聊起家里催婚时语气里带着点无奈,像任何一个普通人。
但他也看得出,她习惯把界限划得清楚。哪些话能说,说到什么程度,她心里有数。刚才聊家里的事,她点到为止,没再多说一句。
饭吃到最后,林知夏先放下筷子,拿纸巾擦了擦手,把面前的碗碟往中间推了推。陈默也吃完了,正想招呼服务员结账,林知夏已经把手机拿起来扫了桌上的码。
“说好我请。”
“那下次我请。”陈默说完才意识到这话不太对,补了一句,“我是说,工作上要是还有机会一起吃饭的话。”
林知夏没接这个话茬,只把手机放回包里,站起来去拿挂在椅背上的外套。她的手先碰到那个蓝色文件夹,顺手把它拿起来,夹在腋下。
陈默也起身,拿起自己搭在旁边的外套。他弯腰拎包的时候,发现自己这边的桌角放着一个蓝色文件夹,跟林知夏手里那个一模一样。他愣了一下,低头看了看自己的包,包侧袋里还塞着一个白色的餐厅号码牌,圆形的,上面印着桌号数字。他完全不记得自己什么时候拿的。
“这个……”他拿起号码牌。
林知夏回头看了一眼,神色平静:“我进门的时候领的,可能顺手放桌上了。”
“那我拿的是你的?”
“应该是。”林知夏把腋下的文件夹换了个手,“这个也是我的。你那个,是桌上放着的另一本。”
陈默翻了翻手里的文件夹,里面确实不是他的资料。他今天根本没带文件夹出门,是刚才进门随手把外套放椅子上时看错了。
“不好意思。”他把文件夹递过去。
林知夏接过来,跟手里那本一起放进包里:“没事。”
两人一前一后走出餐厅。外面的日头正烈,喷泉还在喷,水柱被风吹偏,洒到台阶边上。林知夏站在门口,撑开一把折叠伞,回头看了他一眼。
“周一见。”
“周一见。”
她转身朝停车场方向走,高跟鞋敲着地面的声音被车流声淹掉。陈默站在原地,手里还攥着那张号码牌,圆形的塑料片边缘被太阳晒得有点烫。他低头看了一眼,上面那个“12”被磨掉了一半。
他把号码牌塞进口袋,掏出手机,母亲的未接来电有三个,微信消息更多。他回了一条:见过了,不太合适,回头再说。
发完他把手机放回去,沿着人行道往地铁站走。阳光很足,风里有柠檬水的味道。他走得慢,脑子里一会儿是餐厅里那两杯柠檬水,一会儿是林知夏吃饭时挑鱼刺的样子,一会儿又跳回周一的早会。
他想不清今天的事到底算什么,只知道周一上班的时候,他还得站在那间会议室里,听她叫他的名字,安排他做事,像什么都没发生过。
第五章 周一早会
周一早上八点四十,陈默端着咖啡走进大会议室,挑了最后一排靠墙的位置。他特意来得不算早也不算晚,刚好够混在人群里,不显眼。
周末两天他几乎没怎么睡好,脑子里反复过的都是那顿饭的片段,柠檬水、鱼刺、蓝色文件夹、她最后那句“周一见”。进公司大门的时候他还在想,万一在电梯里碰到该怎么办。结果一路平安,连林知夏的影子都没见着。
早会由事业部副总主持,前面二十分钟都是常规内容,各条线上周进度、本周排期、几个小项目的收尾情况。陈默一边听一边在笔记本上画无意义的圈,直到副总翻到最后一页,语气抬了抬。
“最后一个事。腾远那边的新零售系统项目,我们中标了。”
会议室里有人小声“嚯”了一下。腾远是今年公司重点攻的客户,体量大,要求也出名地麻烦。之前有团队报过一版方案,客户不满意,直接打了回来。
“这个项目由林知夏带队。”副总朝前排抬了抬下巴,“周期两个月,八月十号必须上线。林总监,你来说两句。”
林知夏从第一排站起来,转身面对大家。她今天穿了一件浅灰的短袖衬衫,头发挽在脑后,跟周六中午那身休闲打扮完全不同,整个人利落得像一把刚开过刃的刀。
“腾远的要求有三个难点。”她语速不快,没有寒暄,“第一,他们的门店数据格式不统一,光接口适配就够折腾一阵。第二,原来的方案被否,我们需要重构核心模块,时间上等于从零开始。第三,客户那边的项目对接人换了两拨,需求边界一直在变。”
她顿了一下,视线扫过会议室,最后停在后排。
“所以我需要一个人,能盯执行,能对接客户,能扛住加班。项目期间直接向我汇报。”
会议室安静了两秒。几个资历比陈默老的同事互相看了看,谁也没有立刻举手。腾远这个项目是机会,也是明摆着的火坑,两个月周期,周末肯定保不住,谁接谁掉层皮。
“陈默。”
陈默正低头在笔记本上画第四十七个圈,听到自己的名字,笔尖停了。
“你之前跟过两个零售项目,数据模块熟。”林知夏的语气没有任何多余的东西,“散会后到我办公室。”
她没有问“行不行”,也没有“考虑一下”的意思。会议室里十几双眼睛齐刷刷转过来,陈默能感觉到自己后颈有点发热。他抬起头,对上林知夏的目光,那目光和周六在餐厅里看他的时候没有任何区别,公事公办,干净利落。
“好。”他说。
副总又补充了几句激励的话,什么“这个项目做成,年底评优优先考虑”之类,然后宣布散会。椅子腿刮过地面的声音响成一片,同事们收拾东西往外走。
陈默慢吞吞地合上笔记本,把笔插回笔袋。他还没站起来,工位在他旁边的周明远已经凑过来,压低声音。
“兄弟,你请假请出机会了啊。”
“什么?”陈默一愣。
“你上周五不是请了半天假吗,我听说林总监亲自批的。”周明远挤了挤眼睛,“她那个审批速度,全公司都知道,上次财务老刘请婚假都拖了两天才批。你倒好,几分钟就过了。现在又点你进核心项目,你俩是不是……”
“别瞎说。”陈默打断他,声音不大但很干脆,“上周五的事是巧合,跟这个项目没关系。”
周明远看他脸色不对,识趣地拍了拍他肩膀:“行行行,我不说了。反正机会是好机会,你把握住。”
陈默拎起电脑包往外走。走廊里人已经散得差不多,他路过茶水间的时候听到两个别的组的同事在议论。
“林知夏带队,居然没从她原来那几个老部下调人?”
“陈默跟过零售项目,数据这块确实熟。不过谁知道呢,反正她挑人一直挺玄的。”
陈默脚步没停,径直走回自己的工位。他把电脑包放下,在椅子上坐了两分钟,盯着显示器黑着的屏幕。屏幕上映出他自己的脸,眉头皱着。
他当然知道这个项目意味着什么。两个月,直接向林知夏汇报,高频次对接。周六那顿饭的尴尬还没有消化,现在就要天天面对面。
而且,他想起林知夏说的“原来的方案被否”。那版方案他看过,是公司内部公认的稳妥路线,连这个都被打了回来,说明客户要的根本不是常规做法。两个月时间,从零开始重构核心模块,还要同时做数据适配。
这活不好干。
他在工位上又坐了一会儿,起身去林知夏办公室。门开着,她正站在白板前,用马克笔写着什么。听到敲门声,她侧了下头。
“进来,关门。”
陈默走进去,把门带上。办公室不大,桌上摊着几份打印出来的文件,旁边立着她那个蓝色文件夹。白板上已经列了七八条要点,字迹紧凑,条理分明。
“坐。”林知夏把马克笔放回笔槽,拉过椅子坐下,翻开最上面那份文件,“腾远这个项目,我先跟你说清楚,不是轻松活。第一周就要出新的技术方案,第二周开始数据联调。客户那边的接口文档我昨晚看了一遍,有三十几处需要重新确认。”
她翻开文件其中一页,推到陈默面前。
“这是客户上午刚发来的需求变更函,比招标的时候又多了两个功能点。我已经跟他们项目经理沟通过,这两个点不能砍,因为是他们老板亲自加的需求。”
陈默接过文件。密密麻麻的条目,后面跟着技术备注和疑问标记。他扫了一遍,指着一行问:“这个会员积分通兑,跟原来的积分系统怎么衔接?”
“这就是你要解决的问题。”林知夏看着他,“我需要你在周三之前给我一版对接方案,不用完整,但关键路径要清楚。周四周五我带你去见客户,当面把边界敲死。”
“明白。”
“还有,”她翻到文件的最后一页,“这是客户的组织架构和对接人名单,你先熟悉一下。里面有三个人是之前换掉的,现在的对接负责人叫方昭,这个人你要重点盯,他喜欢在会上临时加需求。”
陈默接过名单,点了点头。
林知夏把文件合上,往他面前推了推:“这两份你拿走。周三之前,有技术上的判断随时找我,不要自己闷头做。”
从进办公室到交代完任务,她说的每一句话都是项目、客户、时间节点、交付物,没有半个字涉及周六的餐厅、柠檬水、号码牌或者那几道被挑过刺的鱼。她看他的眼神和看白板上的字没什么两样。
陈默反而更不自在了。他宁愿她稍微提一句,哪怕只是“上周六的事就当没发生过”,至少说明她也觉得那件事需要被处理。但她什么都没说,仿佛那顿午饭从来没有存在过。
“林总监,”他站起来的时候还是没忍住,“周六的事——”
“项目的事周三之前给我。”林知夏已经重新拿起马克笔,背对着他,在白板上写下一行新的字,“其他的以后再说。”
陈默把后面的话咽了回去。他拿着两份文件走出办公室,顺手带上门。走廊里有人抱着笔记本电脑匆匆走过,远处工位上有人在打电话谈论数据接口的事,一切都和平时没什么两样。
他回到自己工位,把文件摊开,打开电脑,调出腾远项目之前的资料。屏幕上的代码和文档密密麻麻,他看了一会儿,伸手拿过水杯喝了一口水。
凉了。
他把水杯放下,深吸一口气,拿起笔在便签纸上写下第一行字:腾远项目,周三前出对接方案。
然后他把那张便签贴在显示器边框上,开始翻客户的需求文档。
不管周六那顿饭到底算什么,接下来的两个月,他得把这件事做好。至于其他的,像林知夏说的,以后再说。
手机屏幕亮了一下,是母亲发来的消息:这周末回家吃饭?上次那个姑娘不行,妈再帮你问问别人。
陈默盯着那条消息看了几秒,把手机翻了个面,屏幕朝下扣在桌上。
他把注意力拉回显示器,开始一行一行地读那份需求变更函。
第六章 开会到十点
周一早会散场不到十分钟,项目组的临时工位就搭了起来。四张桌子拼在一起,三台新显示器连上线,林知夏让人搬来一块移动白板,就立在过道边上。路过的人都要扭头看一眼,都知道腾远这个项目不好做。
陈默的位置被安排在靠墙那一侧。他对面是一个叫孙嘉的测试,左边是后端老周。林知夏自己的工位没有动,但她把笔记本电脑搬到了白板旁边的小圆桌上,等于把办公室前移了十米。
周二下午,第一次方案讨论会。陈默把对接方案打印了六份,每份十二页,装订整齐。他自认为准备得够充分,需求变更函里的每一条都做了标注,接口文档也重新梳理过,连客户可能追问的几个问题都在备注栏里写了应对思路。
林知夏进来的时候手里只拿了那本蓝色文件夹。她没翻桌上的方案,而是先看白板,上面是陈默上午画的系统对接流程图。
“谁画的?”
“我画的。”陈默站起来。
“先坐。”林知夏拉开椅子,“你讲。”
陈默走到白板前,从数据流向开始讲,讲到中间层对接时,林知夏打断了他。
“停。你这里的校验逻辑放错了。客户旧系统的数据格式不统一,你把校验放在接入层,等于默认他们给的数据是干净的。但上周沟通的时候方昭明确说过,他们有三套老系统,字段命名规则都不一样。”
陈默愣了一下。他的确记得这件事,但方案里确实没把这一点落到具体位置。
“你写的是通用校验。”林知夏用笔尖点了点流程图的下半部分,“等于没校验。重新做,从数据清洗开始,每一步校验规则都要前置。”
会议室里没人说话。老周低头翻方案,孙嘉假装看电脑屏幕。陈默的脸有些发热,但他没有辩解。他点了点头,拿笔在便签纸上记下要点。
“还有,”林知夏继续说,“你的排期表我看了,把联调时间压缩了三天给开发,这个思路是对的,但压缩出来的时间你没有做缓冲。客户换过三次对接人,每次平均交接时间是一周,你这个排期里没有任何冗余。”
她说完把笔放下,看了一圈:“你们有没有要补充的?”
没人开口,她合上文件夹:“方案重做,明天上午再看。”
散会后陈默回到工位,把打印好的方案翻到校验那一页。他盯了几秒,把整叠纸放进碎纸机,然后打开原始需求文档,从第一行开始重新读。几套老系统的字段比对表在客户资料的附件的附件里,之前他只扫了一眼就跳过了,现在得一行行对。
傍晚六点,项目组其他人陆续去吃饭。陈默没动,在文档里重新梳理数据流。老周走的时候拍了拍他肩膀,什么也没说。
七点,八点,九点。楼层的灯自动关了一排,只剩下他们这片区域还亮着。陈默中间去接了杯水,回来继续改。他把校验规则拆成四层,每一层对应一类旧系统字段错误,又给联调排期加了一周缓冲,把压缩的时间从开发周期里重新分配。做完这些已经是晚上九点四十。
他站起来活动了一下脖子,余光扫到林知夏办公室的方向,灯灭着。她应该早就走了。
陈默把方案保存好,去茶水间泡了碗面。等他端着面回来,发现白板旁边的圆桌上多了一盏亮着的台灯,林知夏正坐在那里,面前摊着蓝色文件夹,旁边放着一杯便利店的瓶装茶。
她听见脚步声,抬头看了他一眼,又看了看他手里的面。
“吃完再改。”她说。
陈默在工位坐下,快速吃了几口。面有点烂了,但饿的时候什么都行。他一边吃一边看屏幕上刚做好的方案,试图找出像下午那样的漏洞。
“你校验规则放在哪一层?”林知夏的声音从几步外传过来。
“清洗之后,接入之前。”
“为什么?”
“旧系统字段不统一,必须先标准化再做业务校验,否则误报太多。”
林知夏没有说对或者不对,安静了几秒后开口:“你过来看。”
陈默端着面碗走过去。她把蓝色文件夹转了个方向,里面有一张活页纸,上面写了三行字,是她的笔迹,字不大但很清楚。
“三条主线。第一,数据从旧系统到新平台,中间有几个转换环节,每个环节谁负责,出问题谁兜底。第二,排期里的弹性不是靠加缓冲,是靠把测试和联调并行。第三,客户内部也有博弈,方昭是技术出身,他关心的是能不能跑通,但他的上级关心的是预算和周期,你方案里只回应了方昭的需求,没有给决策层留可读的摘要。”
陈默一条条看完,脑子里之前零散的部分好像突然被串起来了。他知道自己的方案缺东西,但缺什么并不清楚,现在被这三行字点透了。
“我明白了。”他说。
“回去改吧。”林知夏把文件夹合上,靠在椅背上,看起来也有些疲惫。台灯的光照在她脸上,比白天在会议室里少了几分锐利。
陈默回到自己工位,但没有立刻开始改。他看着屏幕上那几条主线,犹豫了一下,问了出来:“林总监,上周五你批我假的时候,为什么那么快?”
问完他就后悔了。这不是该问的场合,也不是该问的时间。但话已经出口。
林知夏的手指在瓶装茶的瓶身上停了一下。
“因为我也需要那天中午去餐厅。”她说。
陈默手里转着的笔掉在了桌上。
她看了他一眼,继续说:“家里人订的位子,说对方是个踏实的人,让我中午过去坐坐。我本来想拒绝,但那天上午的会临时取消了。”
“所以……”
“所以我看到你的请假事由,知道你需要中午的时间。我需要,你也需要,仅此而已。”
她说完站起来,把蓝色文件夹装进包里,又把台灯关掉、放到公共区域的架子上。动作很自然,语气也很平,好像只是在交代一件已经过去的事。
陈默还在发愣。他脑子里闪过周六中午餐厅里的画面,她拿着手机核对桌号的样子,她坐下后微微生硬地打招呼,还有那句“你比在公司高一点”。原来如此。
“方案改完发我邮箱,”林知夏走到门口,回头看了他一眼,“十一点前。”
“好。”
“还有,”她的声音从门口传来,“早点回去。你脸上的状态比方案更需要改。”
她没有等他回答,脚步声沿着走廊远去。陈默独自坐了一会儿,把碗里剩下的面吃完,然后回到屏幕前,打开文档,照着那三条主线重新调整结构。改到一半的时候他看了一眼时间,十点过七分。
手机屏幕上母亲的消息还躺在通知栏里,他没有点开,但也没有再翻扣手机。
十点四十,他把方案发到林知夏邮箱,附了一句“三条主线的调整已经落实,请查收”。然后收拾东西,关灯,走进电梯。电梯门合上之前,他回头看了一眼办公室方向。那片区域的灯已经全灭了,只剩走廊尽头的安全指示灯亮着一点绿光。
走出大楼的时候夜风比白天凉。他掏出手机叫车,等待接单的间隙,拇指悬在母亲那条消息上方,最后打了四个字:这周不回。
发完之后他把手机装回兜里,抬头看了看公司楼上。项目组的灯确实全熄了,但他知道明天早上到的时候,那本蓝色文件夹一定已经摊开在圆桌上。
第七章 母亲突袭
陈默以为“这周不回”四个字能把事情按下去。他低估了他妈的行动力。
周四晚上,母亲的电话打过来,语气平静得反常:“你周六到底见没见?”
“见了。”
“怎么样?”
“没成。”
电话那头沉默了三秒。陈默太熟悉这种沉默了,小时候考砸了要签字之前,他妈就是这个停顿。
“什么叫没成?”母亲的声音抬高了一点,“人家王阿姨说,她老同事那边回话,说姑娘对你印象还不错。你这边跟我说没成?”
陈默愣住。印象不错?林知夏在餐厅里全程礼貌克制,最后各付各的咖啡钱,出门时甚至没有一起走。这叫印象不错?
“妈,就是——聊了一下,不合适。”
“哪里不合适?”
“工作圈子不一样。”他硬着头皮编。
“你们不都是做电脑的吗?”母亲一句话就把他的理由堵死了,“陈默,你跟我说实话。”
他握着手机站在阳台上,楼下的路灯照着一辆晚归的电动车驶过。他想说他见了,而且见的是他总监。这话一出口,他妈明天就能买票来城里。所以他没说。
“真没成,妈。人家条件好,看不上我。”
母亲那边顿了顿,声音低下去:“你这话说得没出息。你哪里不好?你就是什么都往肚子里咽。行了,你忙你的。”
电话挂得比平时快。陈默站在阳台上没动,心里隐隐觉得不太对。他妈挂电话太快了,快到像是已经做了决定。
周五下午三点,那个决定来了。
“我到你们公司楼下了。”
陈默正对着电脑核对项目第三版需求清单,手机夹在肩膀和耳朵之间,听到这句手一抖,鼠标点错了行。
“你说什么?”
“我到你们公司楼下了。”母亲重复了一遍,语气里甚至有点得意,“你上次发我的那个大厦照片,我记得呢。挺高的,我在一楼那个便利店门口。”
“妈,你怎么——你怎么不跟我说一声就来了?”
“说了你肯定不让我来。”母亲的理由简单无懈可击,“你爸在家看家,我一个人坐的高铁,两个半小时。你晚上加不加班?不加班就下来,妈请你吃饭。”
陈默看了一眼屏幕上还没改完的文档,又看了一眼时间。三点十二分。
“妈你先找个地方坐,我这边——”
“你不用急,”母亲说,“我就在楼下转转。对了,你们公司那个女领导,姓林的,在不在?”
陈默的心猛地沉了一下。“你打听她干嘛?”
“王阿姨说的呀。我这不是想见见嘛。你天天在家说领导多厉害多厉害,妈来看看真人。”
“妈。”陈默压着声音,旁边工位的同事抬起头看了他一眼,“你别在公司楼下说这个,我马上下来。”
他挂掉电话,抓了件外套往电梯走。经过走廊时,他下意识朝林知夏办公室的方向看了一眼。玻璃隔断后面,她正低头看文件,蓝色文件夹摊在桌面,右手边是一杯没喝完的黑咖啡。她没注意到他。
电梯里陈默按了一楼,又按了负一层。他本来想去地库绕一圈冷静一下,最后还是按回一楼。门开的时候,他看见母亲站在便利店门口,背着一个不大的双肩包,正仰着头看大楼外墙的公司标志。她头发比上次回家时白了一点,在太阳底下看得很清楚。
“妈。”
母亲转过身,笑起来:“瘦了。是不是又天天加班?”
“你怎么突然来了,也不打个招呼。”
“打招呼你就不让我来了。”母亲一边说一边往大楼入口走,“走,上去看看你工位。”
“不行,妈,公司有规定,外人不能随便上去。”
母亲停下脚步,看着他。那种看穿一切的目光,和陈默记忆里每一次撒谎被抓时一模一样。
“行,不上就不上。”她说,“那你跟我说说,周六那个姑娘,到底哪不合适。”
陈默张了张嘴。
就在这时,大楼的自动门从里面滑开。高跟鞋踩在台阶上的声音很轻,但陈默听得清楚。他偏过头,看见林知夏拎着电脑包走出来,蓝色文件夹夹在手臂弯里,大概是准备去客户那边或者回家。她今天穿了一件浅灰色的薄外套,头发扎得比平时低。
她的目光先落在陈默身上,然后移到旁边那位背着双肩包、正上下打量她的中年女人。
“小陈。”林知夏点了个头,脚步没停。
“等一下。”陈默的母亲开口了。
陈默的脊背瞬间绷直。
母亲往前走了半步,脸上的笑意很自然:“姑娘,你是不是姓林?”
林知夏停住脚步。她看了陈默一眼——只有半秒,目光里有疑问,但没有慌张——然后转回去,点了头:“阿姨好,我是林知夏。”
“哎哟,真是你。”母亲脸上的笑更深了,两只手在身前搓了搓,“我是陈默的妈妈。王阿姨那个老同事,是不是你家里人?”
陈默觉得便利店的招牌灯在头顶嗡嗡响,阳光照在玻璃幕墙上反出一道白光,晃得他眼睛疼。他开口:“妈,这是公司门口,别——”
“没事。”林知夏先说话了。
她的声音跟平时开会时不太一样,低了半度,语气平缓:“阿姨,您从家里过来的?”
“坐高铁,两个半小时。”母亲答得爽快,“我这次来,就是想当面谢谢你们家那边。人家回话说你对我们家陈默印象不错,我这心里——”
“哎呀,妈,”陈默打断她,“人家那是客气。”
母亲瞪了他一眼,又转向林知夏,语气里带着长辈特有的、不太容易拒绝的热情:“林姑娘,晚上有没有空?阿姨请你吃个饭,就当认个门。你们公司附近有什么好吃的,你熟,你带路。”
陈默感觉自己耳朵在烧。他站在公司大门口,面前是他妈和他总监,旁边可能有同事正在出来,任何一个路过的人都可能听见这场对话。他甚至不敢回头看大楼的玻璃门后面有没有人。
“阿姨,”林知夏开口了,声音不急不缓,“今天确实不巧,我晚上还有个越洋电话会,推不掉。”
母亲的脸上闪过一丝失望,但很快又笑:“那明天呢?”
“明天项目组加班。”林知夏说这话的时候看了陈默一眼,那一眼很平淡,但陈默读出了三层意思:第一,她说的加班是真的;第二,她在替他把母亲支开;第三,她没有提任何关于相亲那顿饭的细节,一个字都没有。
“这么忙啊。”母亲叹了口气,语气里的失落是真的,“那阿姨就不耽误你工作了。”
“过段时间吧,”林知夏说,“等这阵子项目结束,我请您吃饭。”
她用的是“您”。
母亲愣了一下,然后笑起来,眼角都是褶子:“哎,好,好。那说定了啊。”
林知夏点点头,向陈默看了一眼:“周一例会别迟到。”
“知道了。”
她转身走了。高跟鞋的声音沿着人行道远去,浅灰色外套的背影拐过街角,消失了。
母亲一直目送她,直到看不见了才收回视线。她转头看着陈默,表情很复杂,像是有很多话想说,最后只说了一句:“这姑娘,比照片上好看。”
“什么照片?”
“王阿姨发我的。”母亲理直气壮,“不然我能大老远跑过来?”
陈默深吸一口气。他彻底放弃了解释,伸手接过母亲背上的双肩包:“走吧,先找地方住。晚上我请你吃饭。”
“你那个女领导,看着不好接近,其实心挺软的。”母亲跟在他旁边走,还在回味刚才的对话,“她说请我吃饭的时候,眼睛是笑着的。”
陈默没接话。他想起林知夏那句“过段时间吧”,既没答应死,也没当场回绝,给足了他妈面子,也留了自己的余地。一分不多,一分不少。
手机在兜里震了一下。他掏出来看,林知夏的消息,就一行字:阿姨住哪家酒店?离公司近的话别订太偏,晚上那一片路灯暗。
陈默盯着屏幕看了好几秒。母亲在旁边探头要看,他把手机翻过去。
“谁啊?”
“同事。”他说,“问项目的事。”
母亲哦了一声,没再追问。两个人沿着人行道往地铁站方向走。傍晚的风从楼宇之间的空隙穿过来,不冷不热。陈默想了想,还是低头打了几个字回过去:订好了,谢谢林总。
发完之后他把手机收起来,抬头看了一眼天。母亲在旁边说着老家的邻居、父亲最近学会做的一道菜、王阿姨家儿子结婚的事。他听着,时不时应一声,脚步不自觉地比平时快了一点。
刚才林知夏转身走的时候,那句“过段时间吧”说得很轻,但陈默听清了。他忽然觉得,项目结束之前,他得先跟他妈把一件事说清楚:那个“没成”的相亲对象,到底是谁。
第八章 桌上的号码牌
周一早上九点,陈默刚在工位坐下,项目组的群就炸了。
客户方对接人方磊在群里发了一份需求变更单,整整三页。核心意思只有一个:原先确认过的数据看板要增加三级权限体系,还要对接他们另一个业务系统的实时接口,交付时间不变。
组里的小周直接在工位骂出了声:“这怎么来得及?光接口联调就得三天。”
陈默盯着屏幕上的需求文档看了几分钟,把关键改动点用笔圈出来。上周的方案评审会上,方磊明明拍着胸脯说需求冻结,不会再动。现在离交付只剩五天。
他起身去茶水间接水,正好碰上林知夏从会议室出来。她今天穿了件深蓝色衬衫,袖子挽到小臂,手里照旧是那个蓝色文件夹,比上周厚了不少。
“看到变更单了?”林知夏问。
“看了。三级权限倒还好,实时接口那块比较麻烦,他们旧系统的数据格式跟我们不一样。”
“你什么想法?”
陈默想了想:“硬做能做完,但测试时间会被压缩到半天以内。风险大。”
林知夏点头:“我也这么想。中午之前你整理一份评估发我,下午两点跟客户开电话会。你来讲。”
“我讲?”
“这块你是最清楚的。”她说完就回了办公室,没给他推辞的机会。
陈默回到工位,把需求文档拆开揉碎,逐条估算工时。中午饭是楼下便利店的三明治,边吃边改评估文档。他把方案分成了A、B两版:A版全量交付,需要客户协调他们自己的技术团队驻场配合;B版先上线核心功能,权限体系放到第二阶段,但需要客户书面确认时间表。
下午两点,电话会准时开始。
方磊那边五个人,开了视频。他四十出头,头发梳得很整齐,说话语速快、语气硬,上来就问:“评估结果怎么样?我们领导周五要看演示。”
陈默把A、B两版方案讲了一遍,重点说明A版的风险点。
方磊打断他:“你们做乙方,配合客户需求不是应该的吗?哪个项目没有变更?你们内部协调一下,加加班就出来了。”
会议室里安静了两秒。陈默旁边的同事用笔尖在纸上戳了个小洞。陈默自己以前碰到这种情况,通常会说“我们再想想办法”,然后回来硬扛。可这一次他端着杯子喝了口水,开口说:“方经理,我们愿意配合,也一直在配合。但A版需要贵司技术团队配合联调,这不是加班能解决的,需要贵司内部协调资源。如果贵司技术团队周五前抽不出人,我们只能走B版。这是为了确保您领导周五看到的演示是稳定可用的。”
方磊脸色不太好看,但没直接发火。他沉默了几秒:“B版的权限体系简化到什么程度?”
陈默把之前准备好的简版功能列表投到屏幕上,一条一条过。讲到第三页的时候,林知夏从外面推门进来,在他侧后方的位置坐下,没说话。
方磊听完,又追问了几个细节。陈默一条一条答了,数据、时间、依赖关系都说得清楚。最后方磊松了口:“那先按B版来,但时间表要写明确,下周一把补充协议发过来。”
“可以。”
电话挂断,会议室里安静了几秒。小周呼了口气,整个人瘫在椅子上。林知夏站起来,把手里的文件夹合上,看了陈默一眼。
“刚才第三页到第五页的节奏很好,”她说,“但第二页有个数字你念错了,是四十八小时不是二十四小时,会后把纪要改过来发我。”
陈默低头翻了下自己的笔记,果然错了。他点头:“我改。”
林知夏没再多说,先出了会议室。
小周凑过来小声说:“陈哥你今天可以啊,方阎王都能被你说服。”
陈默把笔记本合上,笑了下:“是他自己算明白账了。”
下班是晚上九点多。陈默收拾东西的时候,手伸进双肩包侧袋找U盘,指头碰到一个硬纸片。他掏出来一看,是张号码牌——塑料底座,正面印着数字“十七”,边角有点磨损。
那天相亲的餐厅,桌上都摆着这种号码牌。他坐下之后紧张得不行,手里不知道往哪放,稀里糊涂把号码牌碰倒了,顺手扶起来就塞进了包里。后来林知夏坐下,他整个人都是懵的,更没想起来这回事。
他捏着号码牌看了两秒,正要往旁边的废纸篓里扔,身后传来脚步声。
“还没走?”
林知夏站在他工位旁边的过道上,手里拿着水杯,大概是去茶水间路过的。她的目光落在他手上的东西,停了一下。
陈默下意识想把号码牌收起来,但已经来不及了。她的视线在那块塑料牌上停留的时间足够看清上面的数字。
“餐厅那个?”她问。
陈默点头,有点尴尬:“一直在我包里,忘了拿出来。”
“那天你走得急。”她说,语气平淡,听不出什么情绪。
陈默转身要把号码牌丢进废纸篓。
“先留着吧。”林知夏说。
他的手停在半空。林知夏端着水杯,目光移到他脸上,表情很平常,和平时交代工作没什么区别。
“算是提醒,”她说,“很多事情不是按计划来的。做项目是,别的也是。”
说完她转身往茶水间走了,没再多解释。
陈默把号码牌收进口袋,没扔。他关了电脑,拿上外套下楼。走到公司大门口的时候回头看了一眼,三楼的灯还亮着。
他掏出手机,母亲发来一条消息:今天跟王阿姨说了,下次别介绍单位的了,妈再帮你看看别的。
陈默站在路灯下面,对着那行字看了一会儿。上周六那顿饭之后,母亲没有再追问“到底为什么没成”。她只是在临走前,站在酒店门口,很认真地跟他说了一句:“你要是自己有想法,就跟妈说。妈不是非要你相亲。”
他当时没接话。现在想起来,母亲大概是察觉到了什么。
他打了两个字回过去:不急。
母亲秒回:行,你说了算。
陈默把手机收起来,走向地铁站。口袋里那块号码牌硬邦邦地硌着腿,他没拿出来。
第九章 方案被否
客户那边的会议室不大,一张长桌,六把椅子。陈默他们把笔记本电脑和投屏线摆好,等了将近二十分钟,对方三个人才陆续进来。为首的是个四十来岁的男人,姓孙,客户方的技术总监,进门连寒暄都省了,坐下就看了一眼投影幕布。
“开始吧。”
林知夏主讲。她的节奏一向好,从需求分析到架构设计,四十分钟的内容压缩到二十五分钟,逻辑清楚,重点明确。陈默在旁边配合切换页面,偶尔补充几个技术细节。他自认为准备得足够充分,前一晚还特意把所有数据核了一遍。
孙总监一直没说话,手指敲着桌面,表情看不出喜怒。等林知夏讲完,他往后靠了靠,开口第一句话就把气氛拉到了冰点。
“说实话,比我们预期的保守。”
林知夏神色没变:“您指的是哪部分?”
“整体思路。”孙总监用笔帽点了点幕布上的架构图,“你们这套方案,稳是稳,但同业里早就有人在做。我们要的是能拉开差距的东西,不是一份不会出错的作业。”
他旁边那个年轻产品经理补了一句:“比如你们提到的数据处理周期,按现在的方案,上线之后至少要三个月才能看到效果。我们老板不会给那么久。”
林知夏试图解释分阶段交付的策略,但孙总监摆了摆手,话里已经有了送客的意思:“你们再想想吧。我们这边也有其他团队在接触。”
从会议室出来,走廊里很安静。林知夏走在前面,高跟鞋踩在灰色地毯上,没有声音。进电梯之后她按了一楼,看着楼层数字往下跳,什么也没说。陈默站在她斜后方,想开口又不知道该说什么。刚才那个产品经理的表情他看得很清楚——不是不满意,是已经没兴趣了。
回到公司已经过了午饭时间。林知夏让团队先各自去吃饭,下午两点会议室复盘。她说完就进了自己办公室,门关上了。
陈默坐在工位上,打开外卖软件又关掉,没什么胃口。旁边的同事周远凑过来,压低声音。
“黄了?”
“第一次提报,客户觉得方案保守。”陈默说。
周远啧了一声,靠回椅背:“我就说嘛,林总那套打法太稳了,什么都求保险。客户要的是亮点,不是不出错。”
陈默没接话。周远又补了一句:“你没看她今天被问住那一下?那个孙总说话是不客气,但人家说得也没错。”
“方案是我们一起做的。”陈默说。
周远看了他一眼,笑笑,没再说什么,转身去点外卖了。
下午两点的复盘会,人到得比平时齐。林知夏坐在会议桌最前面,蓝色文件夹摊开,里面的方案打印稿上有几处用红笔圈出来的备注。她先把客户的意见逐条过了一遍,然后问:“你们怎么看?”
没人主动说话。过了几秒,周远咳了一声:“林总,我觉得主要是方向问题。我们之前对标的那家,他们的技术栈其实已经落后了,我们跟着他们的思路走,当然显得没新意。”
这话说得委婉,但意思很明白。林知夏在本子上记了一笔,点头:“还有呢?”
另一个同事说:“客户提的那个数据周期,我们确实给得太长了。是不是前期能拆得更细一点?”
“拆得更细,风险谁承担?”林知夏问。
会议室安静了。她看了看大家,合上文件夹:“今天先到这里。每个模块负责人明天上午把可优化的点整理给我。”
散会之后,人陆续走了。陈默收好电脑,发现林知夏还坐在原位,蓝文件夹在手里,目光落在桌上某处,像是没注意到人已经走光了。她的侧脸比平时看起来疲惫,眼下有一层很淡的倦色,是连着加班加出来的。
陈默犹豫了一下,还是开了口:“林总,关于数据周期那块,我有个想法。”
林知夏抬起头,像是刚发现他还在。
“说。”
“客户嫌三个月太长,是因为我们按统一标准处理所有数据。但他们的业务数据里,有将近一半是低频访问的,这部分其实可以延后处理,先跑核心的那一半。只是接口得改,而且预处理的逻辑要重写,有一定风险。”
林知夏看着他,手指在文件夹上轻轻叩了两下。
“如果预处理跑不通,上线当天就可能出问题。”
“对。”陈默承认,“所以我说有风险。”
“那你为什么还提?”
陈默想了想:“因为按现有方案,客户不会给我们第二次机会。与其稳着输,不如拼一下。”
林知夏没有立刻回应。她把文件夹重新打开,翻到系统架构那一页,手指在某条数据通路上划了一下,停了下来。这个动作陈默见过很多次,每次她在权衡某件事的时候,都会这样。
“今晚能出验证结果吗?”她问。
陈默看了一眼时间,三点半。“能。”
“那就做。”林知夏合上文件夹站起来,从他身边走过,在门口停了一步,侧过身,“陈默。”
“嗯?”
“今天提报没做好,主要责任在我。我确实判断保守了。”她的语气很平静,但陈默听得出那不是在客套。这是他第一次听到林知夏承认自己失误,说得坦荡,没有多余的情绪。
“方案是团队一起做的。”陈默说。
林知夏看了他一眼,没再继续这个话题。“今晚有结果直接发我,不管多晚。”
她走了。陈默留在会议室里,把架构图重新调出来,对着预处理那段的接口说明研究了半个多小时。思路是通的,但中间有一个环节他拿不准——数据回滚的方案需要重新设计,否则一旦预处理失败,核心数据也会受影响。
他回到工位,打开开发环境,开始写验证脚本。写了两版都觉得不对,又推倒重来。楼下的人陆续下班,办公室的灯一盏一盏关掉,只剩他这一片还亮着。手机上赵晓芸发来消息问要不要去她店里坐坐,他回了两个字:加班。
快九点的时候,他接到母亲的电话。
“这两天忙不忙?”母亲问。
“忙。”
“周末回来吃饭不?”
“看情况,项目赶。”
母亲在电话里停了一下:“行,你注意休息。对了,上次说的那个王阿姨,她又问了一次,我跟她说你有对象了。”
陈默愣了一下:“我什么时候有对象了?”
“你自己说的啊,上次发消息说‘不急’。”母亲说得理所当然,“妈又不傻。”
陈默张了张嘴,最后没解释,只说了句“再说吧”就挂了电话。他把手机扣在桌上,重新看屏幕上的代码。验证脚本跑到第三遍的时候,数据终于有了收敛的趋势,和他预想的走向基本一致。风险还在,但不是没有解。
他存下结果,把关键数据截了图,连同简短的说明一起发给林知夏。发送时间是十一点四十七分。
他没有等回复,靠在椅背上闭了会儿眼睛。屏幕的蓝光映在眼皮上,有点发烫。他想起来今天复盘会散场之后林知夏那个表情,和她那句“主要责任在我”。以前他觉得她是不会犯错的那种人,PPT上永远只有对号和问号,没有叉。今天第一次看到她承认自己判断有误,反而让他觉得踏实了一些。
手机亮了一下。
林知夏的回复只有一行:收到。明天早会前先来我办公室,把接口方案准备好。
没有多余的话,但陈默知道这意味着什么。她默认了这个方向可以往下走。他把外套拿上,关了灯。走出办公区的时候回头看了一眼,林知夏办公室的灯还亮着,从玻璃隔断里透出来,安静地落在走廊地面上。
他走进电梯,按下一楼,手指碰到口袋里那块号码牌,硬邦邦的触感还在。他忽然想,如果那天在餐厅,他坐下之后抬头看见的不是林知夏,这一切大概都不会发生。但偏偏就是她。也不知道算好还是算坏。
电梯门打开,一楼大厅空荡荡的,只有保安在打盹。陈默走出大楼,夜里的风有点凉。他掏出手机想叫车,发现母亲又发了条消息:你爸说,让你别太累,周末不回来就不回来。
他站在路边回了一个“好”字,抬头看了看公司三楼那扇还亮着的窗,把手机收进口袋,走向地铁站。
第十章 凌晨三点的验证
陈默没有直接回家。
他在地铁口站了两分钟,转身走进旁边那家还亮着灯的便利店,买了瓶水和一包饼干。收银员扫码的时候看了他一眼,大概是觉得这个点还西装革履的人有点奇怪。他拧开水喝了一口,脑子里的数据曲线还在转。
刚才发给林知夏的那版验证只是初步收敛,样本量不够,跑全量至少还要几个小时。如果等到明天早会再开始,时间上根本来不及。客户那边给的窗口期只剩三天,第一次提报已经失败,再拿不出扎实的东西,重提的机会都不会有。
他站在便利店门口,把饼干塞进包里,掏出手机给赵晓芸发了条消息:你店还开着吗?
回复来得很快:开着,今天盘账。怎么了?
陈默打了辆车过去。赵晓芸的咖啡店开在一条不太热闹的街上,白天做写字楼生意,晚上偶尔变成她自己的工作室。陈默推门进去的时候,她正趴在吧台上对着一沓单据按计算器,抬头看见他,挑了挑眉。
“这个点,你这表情,项目出事了?”
“没出事。”陈默在吧台前的高脚凳上坐下,“就是想找个地方把东西跑完。”
赵晓芸把计算器推到一边,转身去磨豆子。“你公司不是有电脑?”
“人多,静不下来。”
“行吧。”她没追问,把一杯美式放到他面前,“请你的。看你脸色,再喝拿铁得猝死。”
陈默笑了一下,打开笔记本电脑。赵晓芸继续对账,店里只有咖啡机偶尔的嗡鸣和他敲键盘的声音。过了大概半小时,她合上账本,靠在吧台后面看着他。
“你上次来是三个月前,说项目压力大。上上次是半年前,说跟家里吵架。这次呢?”
陈默盯着屏幕,手指没停。“项目还是项目。家里……我妈今天打电话,跟王阿姨说我有对象了。”
赵晓芸愣了一下,随即笑出声:“你哪儿来的对象?”
“没对象。她自作主张。”
“那你没解释?”
“解释了也没用,她认准的事。”陈默停下来,揉了揉眼睛,“她现在开始怀疑我们公司那个女领导。”
赵晓芸倒水的动作停了半拍。“就是上次你提过的,请假秒批那位?”
陈默点头。
赵晓芸端着水杯走过来,在他旁边坐下。“陈默,我问你个事。”
“你说。”
“你最近提到你们总监的频率,比过去一年加起来都多。”
陈默的手指在键盘上悬了一下。他没接话,把屏幕上的一组数据重新调出来看。赵晓芸也没催他,喝了口水,等他自己开口。
“项目出问题那天,她承担了责任。”陈默说得很慢,“以前我觉得她就是那种只认结果的人,方案被打回来重做,我改了三版,她一句多余的话都没有。但这次不一样。客户否定方案之后,她跟上面说的是自己判断失误,没提团队执行的问题。”
“所以你感激她。”
“是感激。”
“然后呢?”
陈默沉默了几秒。“不知道。”
赵晓芸把杯子放下,认真看着他。“我没别的意思,但你得分清楚。感激一个人和喜欢一个人,有时候看起来很像。尤其是在你觉得对方比你强、比你稳的时候。你分得清吗?”
陈默没有回答。他低下头敲了一段命令,屏幕上的进度条开始缓慢移动。
“你忙吧。”赵晓芸站起来,回吧台后面继续收拾。她没再追问,只丢下一句,“咖啡不够自己续,豆子在旁边。”
时间过得很慢。陈默把验证脚本重新跑了一遍,又一遍。第二遍跑到中途的时候报了个错,他翻日志翻了二十分钟才找到问题,改完之后重新提交。凌晨一点多,数据开始呈现出和白天一致的趋势。他把异常值单独拉出来比对,发现是旧系统接口的返回值格式不统一造成的,如果按新的兼容逻辑处理,收敛速度能再提一截。
他把这个发现记下来,继续跑全量。
两点半的时候,赵晓芸从后面小间出来,身上披了件外套。“我要走了,你自己锁门?”
“我把钥匙放桌上。”
“行。”她走到门口又停住,回头看他,“陈默,我不了解你们那个领导。但你自己心里有数就行。别因为人家帮过你,就觉得欠了什么。”
“我知道。”
“你知道就好。”
她走后店里彻底安静下来。陈默盯着屏幕上的进度条,把最后一部分数据跑完。结果显示,新思路在样本上完全可行,性能损耗也在可接受范围内。他看了一眼时间,三点零七分。他没有犹豫,把整理好的数据和说明文档压缩,发给了林知夏。
这次他没有等。
他靠在椅背上闭眼,想睡一会儿。但脑子里全是数据,还有赵晓芸那句话。他翻了个身,把脸埋进外套里。不知道过了多久,手机震动了一下。
林知夏回复了。不是文字,是一个视频通话请求。
陈默坐起来,接通。屏幕那头,林知夏坐在办公室桌前,蓝色文件夹摊开在旁边,头发比白天整齐一些,但眼底的倦意没法遮住。
“你在哪儿?”她问。
“朋友店里。”
“数据我看了。”她说话没有寒暄,“你用的是旧接口做兼容层,这个方向对,但全量场景下有三处需要补。我把问题标在文档里了,你打开看。”
陈默打开文档,三处批注,每处都指得很准。他点头:“我马上改。”
“你改,我看着。”
两个人就这么隔着屏幕,一个在咖啡店,一个在办公室,各自对着自己的屏幕。林知夏没有再说话,只是偶尔在文档上补一条批注。陈默改到第二处的时候卡住了,盯着代码想了两分钟。
“用回调重试。”林知夏的声音从手机里传出来。
他试了一下,通了。
“第三处是并发问题。”他反应过来。
“对。”林知夏在屏幕那边翻了一下文件夹,“这个我没办法给你准话,需要跟客户的技术负责人沟通,确认他们那边的限流策略。”
“但整体方向是成立的。”
“成立。”她确认得很干脆,“样本跑通了,逻辑闭环也在。明天早会之前你把修改版提交,我再复核一遍。如果没问题,后天我去客户那边争取一次重提的机会。”
陈默停下手。“风险在你身上。第一次方案失败了,如果第二次还出问题,很难解释。”
“我知道。”
“你要拿自己的信誉赌这次重提?”
林知夏看着他,表情和平时开会时没什么区别。“项目出了问题是事实,但解决方案能跑通也是事实。我不能因为怕担责任就不去争取。你先把东西改完,其它的我来处理。”
陈默没再说什么。他把手机立在旁边,继续改代码。屏幕那头的林知夏开始翻文件,偶尔写点什么。两个人之间没有多余的对话,但视频没挂。偶尔一声键盘响,偶尔一页纸翻过去,凌晨安静的办公室里,这两种声音交替着。
四点多的时候,陈默把改好的版本发给她。林知夏当场跑了一遍,结果正常。她合上文件夹,看向屏幕。“可以了。你去睡一会儿,八点半到我办公室过一遍对客户的说明口径。”
“好。”
“陈默。”她叫了他一声,语气比之前低了一些,“今晚辛苦了。”
“不辛苦。”
林知夏没再说什么,切断了通话。屏幕暗下去,陈默看着自己的脸映在黑色镜面上,觉得刚才那几个小时像被折叠过。他站起来收拾东西,把电脑合上,咖啡杯拿到水槽边冲了一下。赵晓芸留了张便签在吧台上:门锁好,钥匙扔信箱。
他照做了。走出店门的时候天边还黑着,只有最东边有一线灰蒙蒙的亮。他站在街边,呼了口气。脑子里还是那三处修改和并发问题。但除此之外,还有一个念头若隐若现:刚才视频里,林知夏没关摄像头的那几个小时,他第一次觉得她不是那个只出现在会议桌尽头的总监。她敲键盘的时候会把左手小指翘起来,翻文件的时候翻到某个地方会停一下,用指甲划一道印子。
这些细节他之前不可能知道。
他把外套拉链拉上,往地铁站走。手机又震了一下,是赵晓芸的消息:别想太多,先睡觉。
陈默回了个“嗯”,把手机收进口袋。风从身后吹过来,把路旁的行道树吹得沙沙响。他加快了脚步。
第十一章 重提机会
早上八点二十,陈默到了公司。他在洗手间用凉水洗了把脸,对着镜子看了一眼自己的黑眼圈,然后把衬衫领子理正。昨晚那几个小时不算白熬,修改版的代码全部跑通,并发测试也没再出问题。
八点半他准时站在林知夏办公室门口。门半开着,林知夏已经在里面,面前摊着那份蓝色文件夹,旁边放着一杯没动过的咖啡。
“坐。”她没抬头,翻了一页文件,“对客户的说明口径,你先讲一遍。”
陈默坐下来,把昨晚改动的核心逻辑、数据支撑和风险预案按顺序说了一遍。林知夏偶尔打断,问几个细节,比如某个接口的响应时间在峰值下的表现,比如如果客户临时关闭某个服务通道他们有没有备用路径。陈默一一回答,没有含糊。
林知夏合上文件夹,抬头看他。“可以了。十点出发,你带电脑和测试报告,其它我来。”
“好。”
陈默站起来要走,林知夏又叫住他。“昨晚的视频,你没关摄像头。”
陈默一愣。“我记得我关了。”
“你关的时候已经是四点二十,那时候我已经看完了你的第三版修改。”林知夏语气平淡,“下次不用陪我熬夜。”
陈默张了张嘴,想说点什么,最后只是点头。“明白了。”
十点差十分,两人在公司楼下碰头。林知夏换了一件深灰色的西装外套,头发扎得比平时利落,手里拎着那个蓝色文件夹。陈默背着电脑包,手里是打印好的测试报告,封面上贴了彩色标签。
地铁上人不多,两人并排坐着,各自看材料。中间隔着一个座位的距离。陈默注意到林知夏翻页的速度比平时快,说明她也有压力,只是不会表现出来。
到了客户公司,前台把他们领到会议室。等了七分钟,对方来了三个人,走在前面的是一个四十来岁的技术负责人,姓周,后面跟着两个工程师。周负责人一坐下就把之前的方案书往桌上一搁,语气直接。
“林总监,上次提报的结论你应该清楚。说句不好听的,你们团队这次的表现,让我怀疑第一轮是不是就没认真做。”
会议室安静了一瞬。陈默感觉手指有点凉,但没看他。他去看林知夏。
林知夏神色没变。“周总,上次的问题出在我们对贵方旧系统环境的评估不够充分,责任在团队,不在某一个人。今天来,不是来解释的,是来解决问题的。”
“怎么解决?”
“先让陈默把新的测试数据过一遍。如果数据站不住,我们今天就认了这个结果。”
她说完,朝陈默点了一下头。陈默站起来,把电脑连上投影,打开测试报告。他开始讲,从问题定位到根因分析,从修改逻辑到压力测试的原始数据。没有修饰,没有多余的背景铺垫,每一页都有对应的时间戳和日志截图。
讲到第三页的时候,周负责人往后靠了靠,双手抱在胸前。陈默没有停。讲到第六页,对方的一个工程师开始拿手机拍屏幕。
周负责人忽然打断他。“等一下。你这个并发处理方案里,用了消息队列做缓冲,但如果消息积压超过阈值,你们的降级策略是什么?”
陈默停了一秒。这个问题不在他昨晚准备的范围内,但他之前写过类似模块,脑子里有现成的逻辑。他回到笔记本前,打开一个文件,调出一段结构图。
“降级分两级。第一级是本地缓存兜底,保证核心流程不断;第二级是把非关键链路写入延迟队列,等峰值过去批量处理。这里有个前提,客户端的重试机制要配合,不能无限制重投。”
他把结构图放大,指着上面的节点说明数据流向。周负责人看了十几秒,微微点了一下头。
“这个思路可以。”
林知夏这时候接过话头。她没有重复陈默讲过的技术细节,而是从项目管理的角度,说明团队接下来一周会怎么配合试运行,每天什么时间同步数据、什么时间汇总问题、什么情况触发应急沟通。她把时间节点说得很具体,甚至精确到下午四点半前提交日报。
周负责人听完,和旁边两个工程师低声商量了几句。然后他抬起头。
“再给你们一周试运行。每天给我一份进度简报,问题不过夜。如果这一周没问题,我们再谈合同的事。”
林知夏点头。“可以。”
走出客户公司的时候是下午两点出头。太阳很大,陈默眯着眼站在写字楼门口的台阶上,觉得肩膀忽然松下来,整个人有点发虚。他看了一眼林知夏,她正在把文件夹收进包里,动作和平时一样稳。
“你没吃午饭。”陈默说。
“你吃了?”
“也没有。”
林知夏看了他一眼,没再说什么。两人往地铁站走,路过一家便利店,陈默进去买了两瓶水和两个饭团,出来递给林知夏一个。她接过去,拆开咬了一口,没说话。
地铁上人开始多起来。两人找了个角落站着,林知夏靠着车厢连接处的壁板,陈默站在她旁边,手拉着吊环。列车启动的时候,林知夏手里的水瓶晃了一下,陈默下意识伸手扶了一下她的胳膊。她看他一眼,他松开手。
“抱歉。”
“没事。”
过了两站,空出一个座位。陈默让林知夏坐,她没推辞,坐下来以后把包抱在腿上。陈默站在旁边,看着她开始翻包里的文件夹。翻到第三页,她的动作慢了下来。再过一会儿,文件夹合上了。
陈默低头看了一眼。林知夏靠在车窗边,头微微偏着,眼睛闭上了。呼吸很轻,很匀。车厢摇晃的时候,她的额头碰到玻璃,又弹回来,再碰上去。
陈默没叫她。他把视线移开,看着车厢另一头的线路图。心里有一个很清楚的念头:她太累了。这个项目从启动到现在,她扛的东西比团队里任何人都多。第一次方案失败之后,她在会议室里跟客户道歉的时候,语气平稳,没有人看出她前一晚只睡了三个小时。
这件事只有陈默知道,因为她跟他说过。
到站的广播响起来的时候,林知夏自己醒了。她睁开眼,看见陈默站在面前,手里拿着她的蓝色文件夹。她愣了一下,然后意识到自己不知道什么时候把文件夹松开了。
“你拿的?”
“嗯。怕掉。”
林知夏接过文件夹,站起来。两人一起走出车厢,往出口走。上扶梯的时候,林知夏在他前面半步。出了闸机,她停下来,回头看他。
陈默也停下来。
两个人对视了一瞬间。地铁站出口的风吹过来,把林知夏的头发吹起一缕。她张了张嘴,像是要说什么,最后只是把文件夹换到另一只手上。
“明天早会,你把今天客户那边的反馈整理一下,发给团队。”
“好。”
林知夏转身往外走。陈默跟在后面两步远的地方。他看着她走出站口的背影,忽然想起昨晚赵晓芸的那条消息。
别想太多。
他当时没想。现在也没想。但刚才那一眼里,有些东西不一样了。他也说不清楚。
第十二章 父亲的电话
周六晚上,陈默在出租屋里对着电脑改方案。客户确认了重提方案的方向,但具体功能清单还要细化,林知夏要求周一之前把模块拆分表交上来。
手机响的时候,他正把第五版表格删掉重做。屏幕上显示“爸”。
他接起来,夹着手机继续敲键盘。
“还在忙?”父亲的声音不急,背景里能听见电视开着,是新闻频道。
“在弄个东西,您说。”
沉默了几秒,父亲开口:“你妈昨天是不是又给你打电话了?”
“打了。”
“她说什么了?”
“就是问相亲的事,您知道的。”
父亲在那头嗯了一声,过了一会儿才说:“你妈今天跟我念叨了一晚上,说你态度不对劲。上次相亲回来,你一直没说清楚到底怎么回事。”
陈默停下敲键盘的手。他靠在椅背上,看着天花板,没有立刻接话。
“我没有怪你的意思,”父亲语气平缓,“你妈着急,我理解。她那些老同事,这个介绍那个介绍,推不过去。但你如果实在不想去,我帮你说。”
“不是不想去。”陈默说。
“那是怎么?”
这个问题太直接了。陈默张了张嘴,本来想说“没遇到合适的”,但话到嘴边又咽回去。父亲从来不像母亲那样追着问,可就是这种不追着问的方式,反而让他不知道怎么敷衍。
“爸,”他说,“我最近……”
电话那头安静地等着。
“我最近好像对一个人有点好感。”
说出口的瞬间,他感觉自己后背出了一层薄汗。这件事他从没跟任何人说过。赵晓芸那次提醒他“别把感激和喜欢混在一起”,他当时没接话,但之后几天反复想过。想得越多,越分不清。可电话里父亲问“那怎么”的时候,这两个字就自己跑出来了。
父亲没追问是同事还是谁。
“人怎么样?”
“挺厉害的一个人。工作上很强,要求高,但公平。对团队负责。就是……”他顿了一下,“就是不知道人家怎么想。”
“这个不用现在就知道。”父亲说,“你妈给你安排相亲,我不是不赞成。但有一条,你别因为家里催,就随便定下来。也别因为怕被拒绝,就把该说的话一直憋着。”
陈默没说话。
“工作上的事你自己拿主意。感情也一样。你二十八了,我不说你了。但你妈那边,你得给她一点时间缓一缓。”
“我知道。”
“行,那你忙。早点睡。”
电话挂断后,陈默在椅子上坐了一会儿。屏幕上的表格光标一闪一闪的。他忽然想起上次回家,父亲一个人在阳台上抽烟——其实是电子烟,因为母亲不让他抽真烟。父亲背对着客厅,肩膀微微弯着,那时候他觉得父亲老了。
他重新看向电脑,把拆分表打开。光标移到第一行,开始改。
改到第二十二行的时候,手机又亮了。是母亲发来的消息:你爸说你有情况?你不说清楚我睡不着。
陈默看着这条消息,想了想,回了一句:妈,这事我还没想好,等想好了跟您说。
对面沉默了很久,最后回了个“好”。就一个字。
陈默把手机扣在桌上,继续改表格。改到凌晨一点半,总算弄完了。他把文件发给林知夏,关电脑,洗澡,躺到床上。闭眼之前最后看了一眼手机,林知夏没有回复。
这很正常。她一般第二天早上才回工作消息。
周一早上七点四十,陈默到公司,发现会议室的灯已经亮着。推门进去,林知夏坐在靠窗的位置,面前摊着电脑和一份打印出来的模块拆分表。纸上密密麻麻用红笔做了批注。
“来了。”她没抬头,手指指着表格某一行,“第三阶段的时间你排得太紧,客户那边的接口联调至少要三天,你给了一天。”
“我按之前类似项目的经验估的。”
“这个客户的数据量比同类项目大三倍。”她把纸转过来推给他,“重新算。今天下午两点之前给我新版。”
“明白。”
陈默坐下来打开电脑。林知夏继续看她的材料,两人中间隔着一排空椅子。过了一会儿,她又说了一句:“你表格里第十四个模块的数据来源标错了,仔细检查。”
“好。”
整个上午,林知夏都在会议室里处理其他事,电话一个接一个。陈默在旁边的位置上改表格,偶尔听到她对着电话说“不行,这个时间表不能动”或者“让张工那边先把接口文档发过来”。
中午她去食堂,陈默没跟着。他叫了外卖,边吃边重新核对数据。下午一点四十,新版表格发给她。两点整,她打开文件,从上到下看了一遍。
“这次可以。”她合上电脑,“明天开始按这个排期推进。”
陈默松了口气。他站起来收拾东西的时候,林知夏忽然叫住他。
“陈默。”
他回头。
林知夏坐在那里,手指轻轻敲着桌面,像是在犹豫什么。窗外上午的日光已经变成了午后偏黄的光,照在她侧脸上。她今天没扎头发,披在肩上,整个人看起来比平时柔和一点。
“你周末……加班了吗?”她问。
“加了。改了表格。”
“嗯。”她点头,然后说了一句让他意外的话,“以后周末尽量别排太满。项目周期还有两个月,战线太长容易疲。”
“好。”
她低下头继续看材料,没有再说什么。陈默走出会议室,顺手把门带上。
走廊上他碰到同事老周,老周拍了他肩膀一下:“听说你昨天在会议室待了一整天?林总监亲自盯着?”
“没有,就正常讨论。”
“你小子运气好,她一忙起来连副总都不见,能跟你讨论一整天说明认可你。”老周压低声音,“不过你也悠着点,她带的项目压力大,去年那个谁——算了不说了。吃饭去。”
陈默笑了笑,没接话。他回到自己工位,屏幕上弹出林知夏发来的消息:明天下午客户那边来人对接,你准备一下数据部分的演示,控制在十五分钟以内,不要念PPT。
他回了个“收到”。
下班的时候,陈默经过林知夏办公室。门半开着,她背对着门口站在窗边打电话。声音不大,但走廊很安静。
“妈,我知道了。但那个人我不见。”
陈默的脚步慢下来。他不想偷听,但回工位的路正好经过这里。
“不是挑剔。是我现在没时间考虑这些事。项目在关键期。”她顿了一下,“我跟您说过很多次了,我自己的事我自己处理。”
电话那头说了什么,林知夏转过身,正好看到门外的陈默。两人目光对上一瞬间,她没有躲开,只是对着电话继续说:“就这样,我先挂了。”
她挂了电话,把手机放在桌上。
陈默站在门口,进退两难。他说:“那个,我先走了。”
“等一下。”林知夏拿起桌上的蓝色文件夹,走到门口递给他,“这是客户那边的历史合作资料,你带回去看看。明天演示用得上。”
“好。”
他接过文件夹,转身要走。林知夏又说:“刚才你听到的,不用跟别人说。”
“不会。”
她点了下头,退回办公室,把门关上了。
陈默拿着文件夹往电梯走。他忽然想起地铁上她靠着玻璃睡着的样子,想起她跟客户道歉时平稳的语气,想起刚才电话里那句“我自己的事我自己处理”。他把文件夹换到左手,右手按了电梯按钮。
口袋里的手机震了一下。是父亲发来的消息,只有四个字:想清楚就好。
陈默看着这条消息,按灭屏幕,走进了电梯。
第十三章 试运行危机
周二上午九点四十,客户方运营负责人打来电话,语气很冲,说试运行第二天后台数据对不上,订单量和他们旧系统报表差了将近一成,要求项目组立刻给说法。
电话是免提打的,会议室里五六个人都听见了。老周皱起眉,小声嘟囔了一句“又来”。林知夏坐在长桌另一头,没接话,只抬眼看了陈默一下。
陈默把电话接过来:“方经理,我们这边十分钟后拉个线上会,先把日志调出来看,同步排查,您那边安排一位技术同事参加行吗?”
对方不耐烦地应了声“行”,挂了。
会议室安静了几秒。有人先开口:“会不会是我们昨天上线的那批数据清洗逻辑有问题?我看那个去重规则挺激进的。”
“先别猜。”陈默已经打开电脑,“谁有客户旧系统的表结构文档?”
“我这儿有。”一个后端同事举手。
林知夏这时才出声,语速不快:“陈默牵头排查,需要谁配合直接点人。我十点半还有别的会,有结论先发我,不用等我。”
她说完拿着笔记本出去了。老周凑过来低声道:“她倒是放心你。”
陈默没接这句,把白板拉过来,画了三列:我方系统、客户旧系统、同步中间层。他先让后端同事把凌晨到现在的同步日志全导出来,又让前端调出订单号明细做抽样对比。
十点半的线上会,客户那边来了两个人,除了方经理,还有个叫小许的技术。方经理上来就问:“什么时候能查出来?我们这边今天要出日报。”
“先确认一件事。”陈默把屏幕共享过去,“您那边旧系统里,昨天下午四点之后的订单号是连续的吗?”
小许说:“连续。”
“我们这边入库也是连续的,数量差在中间层。您旧系统在下午四点十二分做过一次批量补录,一万多条里有八百多条主键跟已有记录重复。这些重复记录我们按去重规则只入了一次,但旧系统那边补录是叠加的,所以两边数量对不上。”
他把日志一行行拉出来,标注时间和操作指令,放大字标出主键冲突的位置。
方经理还想再说什么,小许盯着屏幕看了半天,忽然道:“等一下……这个批次号,好像是我们上周做数据迁移留下的临时表,当时没清。”
电话里安静了一下。
陈默没有追着这话往下压。他说:“如果是临时表遗留,那问题不在同步逻辑,在源数据。建议咱们两边一起核对一遍主键,把冗余记录清掉,然后重新跑一次增量同步。我们这边可以出一份核对脚本,但旧系统那边得有人配合执行——权限在您这边。”
方经理语气缓了些:“那你们需要多久?”
“脚本今天下午给您。配合执行的话,如果今晚能跑,明天早上就能看到对齐的结果。”
“行,那就这样。”方经理顿了顿,补了一句,“辛苦。”
挂了线上会,会议室里几个人都松了口气。老周拍了下桌子:“我就说不是我们的问题。”
“问题不在谁身上,在两边数据没对齐。”陈默把刚才的排查记录整理成文档,“不过别急着下结论,清完冗余如果再对不上,还得往下查。”
他正说着,林知夏推门进来,显然是从隔壁会赶回来的。她扫了一眼白板上的记录,问陈默:“结论?”
“客户旧系统临时表遗留主键冲突,责任在源数据。我们今天出核对脚本,今晚他们配合跑。”
“方经理那边什么态度?”
“缓和了。”
林知夏把这几句话记在便签上,撕下来贴在文件夹内侧。她看向会议室里其他人:“都听到了,今晚可能要有人守着跑同步。自愿报名,不强制。”
没人说话。陈默开口:“我守吧,脚本我出的,出问题好直接改。”
林知夏看了他一眼,像是想说什么,最后只点了下头:“行,那你调一下明天上午的事。”
她说完往外走,走到门口又回头:“陈默,出来一下。”
陈默跟着她走到走廊尽头的茶水间。
林知夏靠着料理台,从打印机旁拿起刚打出来的一页纸,是核对脚本初稿——她刚才在隔壁会间隙已经看过了。她指着其中一段:“这里对主键比对做了全表扫描,数据量大的话会慢。能不能加个时间窗口?”
“可以,改成只扫近三十天的。”
“还有,”她顿了顿,“今天这事,你在客户面前没慌,处理得不错。”
陈默没料到她会直接说这个,一时不知道怎么回,只“嗯”了一声。
林知夏把纸递还给他:“但是有一点。下次别在会上主动说‘问题不在我们’,对错交给数据去说,态度上先把事解决掉。客户要的是能对齐的数,不是我们的清白。”
“我明白了。”
“去改脚本吧。”她转身走了两步,又停下,背对着他说,“今晚守着同步的时候,饿了去楼下便利店买点热的。加班太久反应会慢,别硬撑。”
陈默应了声,看着她的背影进了办公室,门没关严。他低头看手里那张脚本初稿,上面除了刚才她指的两处,还有一行用铅笔写的批注,字很小:增量同步最好加幂等校验。
铅笔字迹很淡,他猜她是刚才在隔壁会上一只手记的。
下午陈默改完脚本发过去,客户小许很快回了确认。他给自己倒了杯水,回到工位继续准备晚上值守要用的监控面板。
六点多,办公室的人陆续走了。老周临走前拍他肩膀:“真守啊?要不我留下陪你?”
“不用,我家离得近,跑完打车回去也方便。”
老周走了。七点过后,整层楼只剩零星几盏灯。林知夏办公室的灯还亮着。八点,她端着杯子出来接水,经过陈默工位,看了眼他的屏幕:“脚本跑了吗?”
“等客户那边清完冗余,他们那边卡在权限审批,小许说八点半能开。”
“嗯。”她接了水,没马上回去,站在旁边看了一眼监控面板的字段排布,“这个面板留着,上线后还用得上。”
“好。”
她端着杯子往办公室走,走到门口又说了句:“有异常直接打我电话,别自己扛。”
“知道了。”
九点十分,客户的清冗跑完,增量同步启动。陈默盯着滚动日志,前半小时一切正常。九点五十八分,面板上一个指标突然跳红——同步延迟从两秒冲到四十七秒,并且还在涨。
陈默立刻翻了执行日志,发现是旧系统一台从库响应变慢,把整个同步链路拖住了。他先给客户小许发消息,没人回。他又拨了电话,响了几声,接通。
小许的声音有点慌:“那台从库在跑别的东西,我不知道是谁开的。”
“先别关。”陈默说,“你那边能不能把它挂起或者限速,别直接停,停了主库那边的增量还会继续堆,后面更麻烦。”
“我试试,稍等。”
电话没挂,陈默听着那头敲键盘的声音。几分钟后小许说弄好了。延迟数字开始慢慢往下掉,几分钟后回到正常区间。
陈默靠在椅背上,长出一口气。他把整个过程简要记录在排查文档里。
十点四十,同步跑完。他核对完两边数量,对齐了。他把结论发到项目群里,又单独给林知夏发了一条:已对齐,客户从库限速后跑完,数据一致。
过了两分钟,手机响了,是林知夏。
“你在公司?”
“在。”
“明天上午客户那边我来说,你正常上班就行。”她停了一下,“今天辛苦了。”
“应该的。”
“回去路上注意安全。”
电话挂了。陈默收拾东西,把监控面板关了。他经过林知夏办公室,灯已经灭了。电梯下行的时候,他忽然想起她下午那句话——饿了去买点热的。他确实没顾上吃晚饭。
楼下便利店还开着。他买了两个饭团,坐在靠窗的高脚凳上吃完,出门时夜风有点凉。手机又震了一下,是父亲发来的:最近忙不忙。
陈默想了想,回:在忙一个项目,下周上线。
父亲的回复很快:注意身体。
他收起手机往地铁站走,凌晨的街道很安静,路灯把他的影子拉得很长。项目上线倒计时还有四天。
第十四章 庆功宴之前
周五的办公室比平时松弛不少。项目正式上线定在下周一,今天该做的检查都做完了,测试组那边反馈全绿,客户也确认了停机窗口。中午刚过,产品组的周舟就靠在椅背上喊了一声:“各位,上线前最后一个工作日,是不是该有人表示表示?”
几个人跟着起哄,眼睛齐刷刷看向总监办公室。玻璃墙里,林知夏正在文件夹上写什么,蓝色文件夹摊在桌面上,旁边搁着一支笔。
“别看我。”她头也没抬,“上线成功了再说。”
“那就是说成功了有戏?”周舟抓住了话头。
林知夏这才抬眼,扫了一圈外面几张期待的脸,把笔放下:“可以。上线后数据平稳跑满二十四小时,我请。”
“林总大气!”
“先说清楚,等数据,不是等饭。”她补了一句,又把视线收回文件夹。
陈默坐在自己工位上听着,嘴角动了一下,没跟着喊。他手头还开着上线核对清单,一条一条往下过。下午三点,清单走完,他点了保存,正要去接杯水,邮箱弹出一封新邮件。
发件人是人力资源部,标题写着“晋升评审安排”。
他点开。里面写得很清楚:评审定在下周四下午,评审委员会四人,其中一人是所在事业部负责人。陈默往下扫,看到了那个名字——林知夏。
他盯着屏幕看了几秒。论能力和项目表现,他今年确实够申报条件,这个通知他等了大半年。可偏偏评委里有她,而且就在这个项目刚出成绩、两人私下关系又发生了些说不清变化的当口。
按制度,评委与被评审人有近亲属或者利益关系的需要回避。他们不是亲属,也没有任何制度意义上的关系。可陈默心里清楚,过去这半个月,他们一起加过班,一起在客户那里扛过压,还有些话虽然没挑明,但彼此都听得懂。
他不想让任何人有机会说他的晋升是“沾了谁的光”,更不想让林知夏为难。
陈默拿着水杯去了茶水间,回来的时候在走廊尽头停了一下。他转身敲了敲总监办公室的门。
“进。”
林知夏在整理桌上那摞材料,抬头看见他,微微抬了抬下巴示意他坐。
陈默没坐,站在桌子对面,把手机上的邮件界面转过去给她看:“刚收到评审通知。”
她扫了一眼,明白他要说什么,把手里的文件夹合上:“你想说什么?”
“您是评委之一。”陈默把手机收回来,语气很平,“我来跟您报备一下,也请您考虑回避。”
林知夏看着他:“按制度,我们之间没有需要回避的关系。”
“我知道。”陈默点了下头,“但我希望这次评审,让人挑不出毛病。不管结果如何,我想让别人看到的是项目数据和答辩,不是别的。”
办公室里安静了一会儿。窗外的天色有点阴,光线落在那只蓝色文件夹上。林知夏没马上接话,手指在文件夹边缘停了一下。
“你想清楚了?”她问。
“想清楚了。”陈默说,“如果按流程需要我本人提回避申请,我这就去写。如果需要您那边走手续,拜托了。”
林知夏看着他,神情没什么变化,但眼神比平时缓了一点。她最终点了下头:“我会向人力资源部说明,评审当天回避打分和讨论环节。”
“谢谢林总。”
“别急着谢。”她把文件夹重新打开,“回避不等于评价降低。你的项目材料本来就得靠数据和答辩说话,这一点我对谁都一样。”
“我明白。”
陈默转身要走,她又叫住他:“等一下。”
他回头。
林知夏手里翻着文件,像是随口提起:“明天上线之后,团队简单聚一下。等数据跑稳了,庆功宴定在下周三。”
“好。”
“你也来。”她说。
“肯定来。”
她把笔拿起来,顿了顿,又补了一句:“那天结束之后,我们单独走走。”
这句话说得不快,也不响。陈默愣了一瞬,随即明白了她的意思。她向来不在工作时间说这种私人安排,今天破例,已经不是暗示了。
“好。”他应下来,声音很稳,心跳却比刚才快了一点。
出了办公室,周舟凑过来:“刚才林总找你?上线的事?”
“评审的事。”陈默说,“我申报了晋升,评委里有她,我去申请回避。”
周舟愣了一下,随即拍他肩膀:“你这也太规矩了吧,别人巴不得有个熟人当评委。”
“熟人当评委更得规矩。”陈默坐回工位,把清单又翻出来看,“不然以后项目上说话就没人信了。”
周舟耸耸肩,没再多问,转头去跟别人讨论庆功宴吃什么。
傍晚下班,办公室里人走得差不多。陈默关电脑前把上线文档又检查了一遍,确认值班表和应急联系人没写错。他把桌上那支一直转着玩的笔收进笔筒,瞥见抽屉角落还放着一个巴掌大的牛皮纸袋。那是他当初准备带去做相亲小礼物的,最后没送出去,一直搁着。他没细想,把抽屉关上。
出写字楼的时候,天已经全黑了。他站在台阶上给父亲回了个电话。
“项目下周一上线。”他说。
“听着挺大。”父亲在那头说,“忙完歇歇,别老熬夜。”
“知道。”
“上次说的……”父亲顿了顿,没把话说完,“算了,你先忙,回头再说。”
陈默知道父亲想提什么,但老人没往深里说,他也没接。挂了电话,他站在路灯下,看着马路上来往的车流。
相亲那天到现在,不到一个月。他从没想过请个假会请出这样一段路来。庆功宴在下周三,评审在下周四,两件事挨得这么近,像是把他的工作和他心里那点说不清的事一起推到了台前。
他得先把上线这件事做好,再在庆功宴结束之后,把该说的话说清楚。
陈默收起手机,往地铁站走。风比前几天暖了一点。
回到出租屋,他随手把钥匙丢在鞋柜上,手机屏幕亮了一下,是团队群里周舟发起的庆功宴投票,火锅和烧烤僵持不下。陈默没参与,洗了把脸,坐到书桌前,把明天上线的关键节点在纸上又捋了一遍。这套系统他们磕了将近四个月,中间光接口对账就返工三轮,林知夏陪着熬过两个通宵,最后一版方案是她拍板砍掉一半不必要功能才跑通的。评审通知是傍晚到的,邮件写得很清楚,评委五人,林知夏排序第三。他当时看完就写了回避申请,没犹豫——越是这种时候,越不能让人在背后说他闲话,更不能让林知夏难做。她今天那句话说出口,等于把两人的关系往前推了半步。陈默靠在椅背上,盯着天花板想,庆功宴那晚该从哪里说起。从相亲那天?从他站在餐厅门口、看见林知夏也是被安排来的那一刻?他得把话摆到桌面上,怎么起头,说到哪一步,都要想明白。手机又震了一下,是林知夏私发来的消息,只有一句:“明天别迟到。”他回了个“好”,把纸折起来压在键盘下。
第十五章 庆功宴之后
庆功宴订在公司旁边那家老火锅店,包间里拼了三张圆桌,红油锅底翻滚着热气,把玻璃窗蒙上一层白雾。周舟来得最早,占了靠空调的位置,见陈默进门就招手。
“陈哥,这边。”
陈默坐下,桌上已经摆了一圈啤酒。项目上线三天,客户那边反馈平稳,今天下午客户方负责人还专门给林知夏打了电话,说后续维护合同可以谈。团队熬了四个月,这顿饭算是名正言顺。
林知夏来得不算晚,穿了件浅灰色针织衫,和平时上班的西装差别不大,但头发没扎,落在肩上。她进门时包间里静了一瞬,随后周舟带头喊了声“林总”,她摆摆手,在陈默斜对面坐下。
“今天不谈工作。”她说,“菜单你们定。”
气氛这才松下来。有人涮毛肚,有人抢虾滑,周舟把啤酒挨个满上,端杯站起来说:“这杯敬林总,没有林总砍掉那半版功能,我们现在还在改bug。”
林知夏端起杯子,意思了一下,没多话。
火锅吃到后半段,包间里声音越来越大。有人提议玩骰子,有人掏出手机拍合照。陈默喝了两瓶啤酒,话不多,但一直在笑。他注意到林知夏也没怎么喝酒,杯子里始终是那半杯酸梅汤。
“陈哥,评审有把握吗?”坐他旁边的实习生压低声音问。
“没把握也得答。”陈默说,“数据都是团队一起跑的,答成什么样算什么样。”
实习生还想问,被周舟拉去拼酒了。
散场时快十点。火锅店门口的路灯亮着,街面上行人不多,夜风带着初秋的凉意。同事们三三两两打车走了,周舟临走前回头看了一眼陈默,又看了一眼站在台阶上打电话的林知夏,什么都没说,钻进出租车。
林知夏挂了电话,走下台阶:“顺路吗?”
“顺。”陈默说。其实不顺,他住城东,林知夏住城西。但他没说。
两个人沿着人行道慢慢走。火锅味还留在衣服上,混着夜里的桂花香。走了半条街,谁都没开口。陈默知道再不说,这半条街就白走了。
“林总。”
“嗯?”
“那天相亲的事,我一直想跟你说声抱歉。”陈默看着前面的路,“我当时反应挺蠢的,站起来差点把水杯碰翻,后来也没处理好。让你尴尬了。”
林知夏脚步没停:“你道什么歉?又不是你安排的。”
“我知道。但那天场面确实难看。”陈默顿了顿,“后来这段时间,我一直在想这件事。开始是觉得不好意思,后来发现不只是不好意思。”
林知夏侧头看了他一眼,没接话。
“我说得直白点。”陈默把语速放慢,“我对你的感觉,跟那天之前不一样了。这四个月一起做项目,我确实更了解你,也更想继续了解。这话我本来想等评审结果出来再说。”
“为什么等结果?”
“怕你误会我是因为有求于你,或者因为你是评委。”
林知夏沉默了几步。前面路口红灯,两人停下来。她看着对面的信号灯,开口时语气很平:“陈默,我那天去相亲,家里安排的。我答应了,是因为我妈连着打了一个星期电话。但我到了餐厅看见是你,第一反应不是尴尬。”
陈默没出声,等她往下说。
“我拒绝家里安排,不是因为你那天坐在那儿。”林知夏转过头看他,“是因为我不想再被人推着走了。三十二岁没结婚,在很多人眼里像道题没做完。我爸妈觉得是,我姑姑觉得是,连公司里都有人觉得是。以前我配合,觉得应付过去就行。后来发现应付不完。”
红灯变绿。她抬脚往前走,陈默跟上半步,两个人并排过马路。
“所以那天看见你,我反而松了口气。”她说,“至少不是个陌生人。”
“那现在呢?”陈默问。
“现在我要问你一个问题。”林知夏在一棵梧桐树下停住,转过身,“如果评审没过,你还会留在公司吗?”
陈默愣了一秒。
“会。”他说,“项目是我从头跟到尾的,后续维护还没做完。至于你——”
他看着她。路灯的光从树叶缝隙落下来,在她肩上晃。
“你是我想认真了解的人。这跟评审没关系。”
林知夏看着他,有好几秒。然后她笑了。陈默认识她快两年,第一次见她笑得这么松,眼角弯下来,嘴角往上提,跟平时开会时那种淡淡的、点到为止的笑完全两回事。
“那就从认真了解开始。”她说。
陈默没反应过来:“什么?”
“我说,行。”林知夏把手插进风衣口袋,“你刚才那段话,我收下了。评审结果不管怎么样,不影响这个。但是——”
“但是什么?”
“但是明天答辩你要是答砸了,我照样在评审表上写意见。”她说,“回避不打分,意见可以提。”
陈默也笑了:“公平。”
两个人继续往前走。到地铁口的时候,林知夏停下,说要打车。陈默站在路边陪她等。车来得很快,她拉开车门,回头看了他一眼。
“早点回去。”
“嗯。”
车开走了。陈默站在路边,看着尾灯拐过街角。他摸出手机,想给赵晓芸发条消息,想了想又锁了屏。有些事不用跟别人说,自己知道就行。
他转身往地铁站走,脚步比来时轻。手机在兜里震了一下,是林知夏发来的,还是那句话的风格,简短得不像刚确认了什么关系。
“明天答辩,别迟到。”
陈默回:“好。”
想了想,又加了一句:“到家说一声。”
那边隔了半分钟,回过来一个字:“嗯。”
陈默把手机揣好,进站。地铁里人不多,他靠在门边,看着窗外隧道里的灯一闪一闪。从相亲那天到现在,不到一个月。他从没想过,一个被父母逼着请的假,会把日子拐成这个样子。明天评审,后天出结果,不管怎么样,项目跑起来了,话也说清楚了。剩下的,他一步一步来。
出了地铁站,夜风还带着桂花香。他给父亲回了条消息,说项目上线顺利,评审在即。父亲很快回过来两个字:“踏实。”
陈默看着那两个字,把手机收进口袋,往出租屋的方向走。路灯把他的影子拉得很长,前面路口的绿灯正好亮起。
第十六章 评审结果
周一上午十点,评审会在总部十二楼会议室进行。陈默提前二十分钟到,在走廊尽头把答辩材料又过了一遍。内容他早已烂熟:项目背景、执行难点、数据增长、风险处置、后续规划。十六页幻灯片,每一页他都亲手调的间距。九点五十分,林知夏从走廊另一头走过来,手里拿着蓝色文件夹,看到他,脚步没停,只微微点了下头,像平时任何一个工作日。陈默也点头,没多说话。旁边有两个其他部门的同事在等电梯,目光在他们之间晃了一下,又若无其事地移开。
评审室坐着七位评委,林知夏坐在最靠边翻材料的位置。主评委是分管产品的副总,五十来岁,提问不绕弯子。陈默讲到第三页时被打断,副总问他,客户临时增加功能那一次,为什么没有申请延期。陈默把当时的排期表翻出来,一页页解释人力分配和接口切换的逻辑。副总没再追问,低头写字。讲到第十一页,另一位评委问数据异常那晚的排查细节,陈默把日志截图切出来,时间戳、报错代码、临时处理方案、后续修复验证,一条条列清楚。他说完,会议室安静了几秒,主评委合上文件夹,说了句“继续”。
林知夏全程没有提问。她只是翻材料,偶尔抬头看他一眼,目光很正,是评审看候选人的那种目光,不夹带任何私人意味。陈默讲完最后一页,鞠躬退到旁边。下一位候选人进来时,他在走廊上站了一会儿,手心有汗,但心里稳。数据是跑出来的,问题是他亲手解决的,这个跑不掉。
三天后结果公布。HR把通知同时发到他的邮箱和企业内部系统,标题很简短:晋升评审通过,任产品组负责人,下月起生效。陈默正坐在工位上改验收文档,看到邮件时手指在键盘上停了两秒。旁边的同事凑过来瞄了一眼屏幕,拍了他肩膀一下:“陈哥,请客啊。”声音不大,但附近几个工位都听见了,陆续有人起身道贺。陈默笑着挨个回,说项目奖下来再请,不赖账。
中午去茶水间,他碰见林知夏。她在接咖啡,看到他,把杯子往旁边挪了挪,让出位置。
“恭喜。”她说。
“谢谢林总。”
“评审会上你的材料比上次汇报好。”她拿起咖啡杯,“逻辑问题自己补上了。”
“回去改了三遍。”
“看得出来。”林知夏往门口走,经过他身边时停了半秒,声音压低了些,“晚上有空吗?”
陈默愣了一下:“有。”
“下班等我,一起走。”
她走了。茶水间里还有两个人,陈默端着杯子站在原地,心跳比刚才看晋升邮件时还快。
下午四点,赵晓芸发来消息,说听同学群里有人转公司内部通告,问他是不是升了。陈默回了个“是”。赵晓芸秒回:“恭喜,这周来店里,咖啡免单,算我请。”陈默回了个谢谢,又加一句:“可能带个人来。”那边发来一串问号,紧跟着一个“懂了”的表情包。
下班后,陈默在楼下大厅等。林知夏出来时换了平底鞋,手里还是那个蓝色文件夹。两个人并肩往外走,谁都没提前几天的对话,好像那是件已经归档的事,不用反复翻。
“我妈今天给我打电话了。”陈默说。
“催你相亲?”
“催我打听你。”他顿了一下,“之前她来公司那回,回去之后一直惦记。她问我,那个女领导是不是就是你之前说的‘没成’的那个。”
林知夏侧头看他:“你怎么说?”
“我说,等项目收尾了,带回家吃饭。”陈默说完,脚步没停,但耳朵有点热,“我妈高兴坏了,已经开始列菜单。”
林知夏没立刻接话。两个人走到路口等红灯,她才开口:“阿姨别做太多菜,我吃得不多。”
陈默转头看她。她看着前面的车流,脸上没什么特别的表情,嘴角却是松的。
“行,”他说,“我跟她说。”
“还有,”林知夏补了一句,“你爸要是问工作的事,别说得太细。长辈听多了容易担心。”
“这个我懂。”
绿灯亮了,两个人过马路。走到对面,林知夏说要去便利店买点东西,让陈默先走。陈默没走,站在店门口等。她出来时手里多了一瓶水,递给他。
“答辩那天你手一直在抖。”她说。
陈默接过来:“你看出来了?”
“翻材料的时候纸边在晃。”林知夏拧开自己那瓶,喝了一口,“不过声音没抖,行。”
回家路上,陈默给母亲打电话。母亲接起来就问结果,他说通过了,电话那头立刻传来一连串动静,像是从沙发上站起来又坐下去。母亲连声说“好好好”,又问他吃没吃饭,接着话锋一转:“那你什么时候带人回来?我跟你爸把屋子收拾收拾。”
“妈,别急,”陈默说,“她答应来,但你别做太多菜,她吃得少。”
母亲顿了一下,声音里带着笑:“答应了?哎哟,我这就去告诉你爸。”
陈默靠在出租屋的椅子上,听着电话里母亲喊父亲的脚步声,把手机拿远了些。窗外夜色沉下来,楼下的路灯刚亮。他挂了电话,给林知夏发消息:我妈高兴坏了。
那边过了一会儿回:看出来了,你声音都变了。
陈默看着那行字,笑了。他又发:这周六项目收尾会开完,下周日行吗?
林知夏回:行。
想了想又补一条:我这边也跟我妈说一声。她之前张罗相亲那事,总得给她个交代。
陈默盯着“交代”那两个字看了几秒,回了个“好”。他把手机放下,起身去厨房烧水。水壶响的时候,他忽然想起餐厅桌上那个号码牌,想起林知夏拿着手机走过来、两个人同时僵住的那几秒。那件事过去不到一个月,现在想起来像隔了很久。
周六项目收尾会开完,客户在验收单上签了字。团队拍合照,有人把林知夏和陈默推到中间。陈默站在人群里,看着镜头,心里盘算着下周日的安排。林知夏站在他左边,肩膀挨着肩膀,很自然的距离。拍完照,大家散开去收拾东西,林知夏叫住他,把手里的蓝色文件夹递过来。
“这是项目全部归档材料,”她说,“你收着。产品组下个月接手维护,交接清单在里面。”
陈默接过来,文件夹比想象中沉。
“林总,”他顿了一下,改口,“知夏。”
“嗯?”
“下周日,我去接你。”
林知夏看着他,点点头,转身往电梯走。走了几步,又回头。
“跟你妈说,糖醋排骨不用做。”
陈默笑出声:“你还点菜。”
“你妈列的菜单,你昨天发我看了。”
她说完进了电梯。陈默抱着文件夹站在走廊上,把这句话想了一遍,又一遍。然后他拿出手机,给母亲发消息:妈,糖醋排骨不做了,她不爱吃。
母亲秒回:那做什么?
陈默想了想,回:你看着办,别太多就行。
他锁了屏,抱着文件夹往工位走。办公室里人走得差不多了,灯只剩头顶一排。他把文件夹放进抽屉,锁好,起身关灯。走出大楼的时候,夜风比前几天凉了些,桂花香淡了。他站在台阶上,抬头看了看天,没有星星,但路灯很亮。他掏出手机,给林知夏发了一条:到家说一声。
那边回得很快:你也是。
陈默把手机揣进口袋,往地铁站走。风从背后吹过来,他把外套拉链拉到顶,脚步没停。
(全文完)
文章虚拟演绎,请勿当真。