楔子
我叫程屿,二十六岁,在云帆科技写了三年后端。
新总监要来的消息传了快一周,部门群每天热闹得像菜市场。赵子骞不知道从哪儿搞到几张照片往群里一扔,整个办公区此起彼伏地抽气。照片里的女人穿烟灰色西装,眉眼冷淡,漂亮得像杂志封面上裁下来的人物。
“一个月,”赵子骞把咖啡杯往桌上一磕,竖起一根食指,“我必拿下。”
周围几个跟着起哄,赌注从一顿饭加码到限量球鞋。我没抬头,盯着屏幕上一行看了十分钟的代码,手指搭在键盘上,敲不下去。
照片里那张脸我认识。
三年前,剑桥,十一月。她站在国王学院门口跟我说过一句话,那句话我到现在还能把每个字都背出来。
走廊那头传来高跟鞋踩在地板上的声音,由远及近。所有人的脖子像被同一根线拽着,齐刷刷转向门口。我把椅子往工位深处挪了半寸,低下头,假装翻桌上的文档。
脚步声在我背后停了。
空气静了两秒。一只手从旁边伸过来,指节修长,在我桌面上叩了两下。
“程屿。”
那个声音和三年前一样,只是多了几分公事公办的凉意。
“还装不认识呢?”
我抬起头,对上那双深褐色的眼睛。姜澜单手撑着桌沿,微微俯身,嘴角挂着一抹我看不太懂的弧度。整个办公区安静得能听见头顶空调的嗡嗡声。赵子骞手里的咖啡杯停在半空,眼神在我和姜澜之间来回跳,脸上一副被人扇了一巴掌的表情。
我慢慢合上文档,把所有翻涌的情绪压回胸腔最深处,露出一个客客气气的笑。
“姜总监好,我是研发部程屿。”
她眼里的光似乎暗了一下,但很快恢复了那副从容淡漠的样子,直起身,朝我点点头,转身走了出去。
等她的高跟鞋声消失在走廊尽头,赵子骞一把攥住我的胳膊,声音都在抖:“兄弟,你认识她?”
我甩开他的手,重新点亮屏幕。
“不认识。”
声音平静得连自己都觉得荒唐。
01
姜澜要来云帆的消息,在她正式入职前就传遍了整层楼。
那阵子公司内部群跟过节似的,什么版本都有。有人说她是总部最年轻的事业部总监,有人扒出她在深圳三年把一个快被砍掉的项目做成了公司最赚钱的业务线,还有人说CEO亲自飞了三趟深圳才把人挖过来。赵子骞弄到了她的履历,趁午饭时间给我们念了一遍:剑桥硕,清华本,二十七岁升总监,二十九岁进集团高管后备库。
“这种配置,搁哪儿都是王炸,”他把手机往桌上一拍,“关键是长成这样还这么能打,老天爷偏心得没边了。”
我埋头吃饭,没接茬。
那几天我其实在做一个小东西——写段代码,用公司公开数据跑个情感分析模型。跟工作没关系,就是想验证一个想法。这个想法怎么来的我已经不太愿意想了,只知道它跟剑桥的雨天有关,跟国王学院门口那句让人心碎的话有关,跟一个我再也不想提起的名字有关。
我当时觉得,这个名字这辈子不会再出现在我的生活里了。
老天爷就喜欢打人脸。
周一早上九点,我端着美式走进办公区,屁股还没坐热,部门群炸了。赵子骞连发三条消息,全是感叹号,接着甩出一张偷拍:公司前台,一个女人正在签访客登记表,侧脸对镜头,长发,烟灰色西装外套,气质疏冷得像一把没开过刃的刀。
“新总监到了!!真人比照片好看十倍!!”
我的手顿了一下。咖啡杯搁在桌上,发出一声轻响。
照片只拍到侧脸,但我扫一眼就认出来了。不是“像”,就是她——姜澜。
我花了大概五秒钟让自己冷静,然后做了一件后来被证明蠢透了的事:打开公司内部通讯录,搜了姜澜的名字。页面跳转,一张标准证件照弹出来。她穿白衬衫,头发束在脑后,对着镜头微微笑着,温和又专业,和我想象中她会变成的样子几乎一模一样。
我盯着那张照片看了很久。赵子骞从后面拍了我一巴掌:“看傻了?一会儿开会注意控制表情,别给咱们组丢人。”
“不会。”我说。
他显然不信,但没追问。赵子骞是那种大大咧咧的性格,跟谁都自来熟。共事三年,我们关系算不错,但他从不知道我的过去。这很正常,我来云帆的时候刚从英国回来不久,整个人像被抽掉了一部分魂,花了很长时间才重新学会跟人正常打交道。那时候我刻意避免和任何人走太近,等后来慢慢好起来,那段过去也变成了一个我不太愿意翻的旧箱子。
十点,部门群通知:十点半五楼大会议室,全员参加新总监见面会。
我看了眼时间,还有三十分钟。
那是我人生中最长的三十分钟。我坐在工位上打开一个项目文档,盯着第一行字看了十分钟,一个字没看进去。脑子里乱七八糟地翻着各种念头——她为什么来上海?她知道我在这家公司吗?三年了,她有没有哪怕一次想起过我?
最后一个念头冒出来的时候我忍不住笑了一声,声音很低,带着自己也说不清的涩。
她当然没有。要有,当年就不会走。
十点二十五,我起身去会议室。赵子骞跟在我旁边,一路都在念叨他的“一个月拿下总监计划”。我有一搭没一搭地应着,心里想的是另一件事——我到底该用什么表情面对她。
一个合格的前任应该什么表情?释然?冷漠?还是假装什么都没发生过?
我没想明白,人已经进了会议室。
五楼大会议室能坐七八十号人,研发部全员到齐,前排塞满了,我习惯性往后走,在角落找了个位置。赵子骞拽着另一个同事坐到第三排,回头朝我挤眉弄眼,用口型说了句“近距离观察”。
我朝他竖了个大拇指,把后背靠进椅子里,尽量让自己看起来像一个对什么都提不起劲的普通员工。
十点三十一分,会议室门被推开。部门VP老周先进来,身后跟着一个人。
姜澜穿着那件烟灰色西装外套,里面是白衬衫,黑长裤,尖头高跟鞋,整个人利落得像一把刚开过刃的刀。她跟在老周身后走进来,目光平静地扫过全场,嘴角挂着恰到好处的职业微笑。
会议室的交头接耳声明显大了一个量级。
老周走到桌前站定,清了清嗓子:“各位,介绍一下,这位是从深圳总部过来的姜澜姜总监,从今天开始正式接手研发部的管理工作。姜总监在总部的业绩大家多少都听说过,我就不啰嗦了。总之她的到来对咱们部门是件大好事。大家欢迎。”
掌声响起来,比平时欢迎新领导热烈得多。赵子骞拍得尤其卖力,手都快拍红了。
姜澜往前走了一步,目光从前排扫到后排,语气从容:“谢谢周总,也谢谢大家。我叫姜澜,之前在深圳总部负责智能硬件事业群的研发管理,这次调到上海,希望和大家一起把工作做好。”
她顿了顿,目光继续往后扫。
“我不爱说客套话,今天就不长篇大论了。接下来几天我会陆续和大家做一对一沟通,了解一下各自的工作内容和想法。有什么问题或建议,随时来找我。我办公室在这层楼东侧。”
她的目光扫过倒数第三排,扫过我旁边的人,然后——
停了。
那一瞬很短,短到周围的人大概根本没察觉,但我清清楚楚感受到了。她的目光落在我身上,像在一堆寻常石子里突然发现了一颗不该出现在那里的东西。她表情没变,但那双深褐色眼睛里有什么一闪而过,快到我来不及分辨。
然后她移开目光,继续说着工作安排的事。
我低下头,盯着会议桌上一小块污渍,心跳快得不像话。
她认出我了。
这个认知让我说不清是什么感受——有慌,有不知所措,还有一种我自己都不愿承认的、隐秘的刺痛。她认出我了,但她什么反应都没有,就好像我只是一个普通的前同事,一个在她职业生涯里出现过的无足轻重的路人。
会议十分钟后结束。姜澜在老周陪同下离开会议室,经过我这一排时,高跟鞋声没停。
我松了口气,同时感到一阵尖锐的失落。
两种感觉搅在一起,让我觉得自己无比可笑。
回工位后赵子骞立刻凑过来,表情像在播报重大新闻:“近距离看更绝,皮肤好得离谱,说话的时候眼睛会发光,你注意了没?”
“没注意。”我说。
“你坐后面当然没注意,”他摆摆手,完全没把我的冷淡当回事,“我跟你说,我刚做了一个重大决定。”
“什么?”
“一个月太长了,”他看着我的眼睛,一字一顿,“三周。三周之内,我要让她记住我的名字。”
旁边几个同事哄笑起来。有人喊“你要是能做到我请你吃一个月饭”,赵子骞回头跟他对赌,一群人闹成一团。
我转过椅子面向屏幕,打开命令行开始敲代码。手指落在键盘上的节奏比平时快得多,像要把什么东西从脑子里赶出去。
那天下午我把自己埋进项目里,一行接一行地写,写到眼睛发酸,写到窗外天色从明亮变成灰蓝。回过神来的时候办公室的人走得差不多了,只剩几个加班的稀稀落落坐着。
我靠在椅背上揉眉心,准备收拾东西走人。
手机屏幕亮了一下,公司内部IM的消息推送。
我点开,愣了一下。
发消息的人是姜澜,内容标准的工作口吻:“程屿你好,我是姜澜。明天下午两点我在办公室做一对一沟通,看到你的名字在名单上,和你确认一下时间。不方便的话可以调整。”
这条消息看起来没有任何问题,措辞客气,公事公办。她大概给名单上每个人都发了类似的内容。
但我盯着那行字看了很久。
“看到你的名字在名单上。”
她知道我的名字。她当然知道。但这不一样。她看到“程屿”两个字时,有没有哪怕一秒的停顿?有没有想过这个人是不是她认识的那个程屿?还是说她早就知道我在云帆,这次空降不过是命运安排的一次不太重要的重逢?
我深吸一口气,回了一条:“时间没问题,姜总监。”
发送之后盯着对话框看了快一分钟,看她会不会再回什么。
什么都没有。
我把手机揣进口袋,关电脑,走出办公室。
上海秋夜有些凉。我走在南京西路的霓虹灯影里,脑子里挥之不去的是三年前剑桥那个雨夜。那天也是秋天,英国天黑得早,下午四五点就已经暗了。我撑一把黑伞站在国王学院门口,手机上是她发来的最后一条消息。
那条消息我删了很多次,但每次都能一字不差想起来。
“程屿,我不想骗你,也不想骗自己。我们之间没有未来,至少不是我想要的未来。对不起。”
然后她就消失了。消息不回,电话不接。我去她住处找,房东说她提前退租了,去了哪里不知道。去系里打听,说她申请了休学,理由填的是“个人原因”。
三年前的姜澜和今天的姜澜在我脑子里重叠又分开。那时候她穿灰色毛衣和牛仔裤,头发随便扎在脑后,会因为我讲一个并不好笑的冷笑话笑得前仰后合。现在她穿剪裁精良的西装,头发一丝不苟披在肩上,站在会议室前面从容地扫视全场,像一个和我毫无关系的人。
也许对她来说,我确实就是一个和她毫无关系的人了。
我拦了辆出租车,报了小区地址,靠在车窗上看外面的城市夜色飞速后退。手机又亮了一下,赵子骞在群里发了张截图:“兄弟们,我加到姜总监微信了!第一步,完成!”
底下一片起哄。
我退出群聊,把手机翻了个面,闭上眼睛。
02
第二天下午两点,我敲了姜澜办公室的门。
“请进。”
推门进去,她坐在办公桌后面,面前摊着笔记本电脑和一个记事本。抬头看我一眼,目光和昨天在会议室一样平静,指了指对面的椅子:“坐。”
我坐下,后背挺得笔直。
办公室不大,采光很好,落地窗外是陆家嘴的天际线。桌上放一杯美式,旁边一个白色陶瓷杯垫,杯垫上印着剑桥大学的校徽。
那个杯垫我认识。我买的。
三年前在剑桥一个周末集市上,花三英镑买了两个,一个给她,一个自己留着。我那个后来搬家不知道扔哪儿了,她这个居然还在用。
我的目光在杯垫上停了一秒,移开了。
姜澜似乎没注意到,或者注意到了不在意。她翻开记事本,笔尖点在纸面上,语气是标准的上级对下级:“程屿,我看了你的人事档案和过去一年的绩效评估。你在后端开发这块做得不错,去年负责的那个支付模块重构项目,老周在评语里给了很高的评价。”
“谢谢。”我说。
“不过我看了你最近的工作安排,”她抬起头,目光从记事本移到我脸上,“你目前职级是P6,以你的能力和资历,其实可以承担更多东西。你对自己的职业规划有什么想法?”
一个再正常不过的问题,任何一个新上任的领导都会这样问。但她问我的时候,我总觉得这句话底下藏着什么,像一句没出口的潜台词。
“目前想把手上项目做好,”我尽量让回答听起来专业得体,“长远想在技术架构这个方向深耕。”
姜澜点点头,在记事本上写了几个字。她的字迹和以前一样,潦草但有力,像一个永远在赶时间的人写的。
“你的技术能力我不怀疑,”她放下笔,看着我,语气忽然变得没那么公事公办了,“不过我来云帆之前看过你的档案,发现你来三年了,同期几个人都升到了P7甚至P8,你好像没主动申请过晋升?”
“申请过两次,没过。”
“原因呢?”
“第一次说项目影响力不够,第二次说跨部门协作能力需要提升。”我说这些的时候很平静,像在说别人的事。
姜澜微微皱了皱眉。这个表情很细微,一闪就过去了,但我看到了。她沉默了几秒,合上记事本。
“我知道了。后续我会调整你的工作安排,给一些更有挑战性的项目。能不能抓住机会,看你自己。”
“谢谢姜总监。”
这个称呼从我嘴里说出来的时候有一种奇怪的生涩感,像含了一颗没熟的果子。姜澜似乎也感觉到了,目光在我脸上停了一瞬,然后垂下去,重新打开笔记本电脑,做了个“可以走了”的手势。
“后续有什么问题随时找我。”
我站起来转身往外走。走到门口,手握住了门把手,身后的声音忽然响起来。
“程屿。”
我停住了,没回头。
安静了两秒。
“没什么,你出去吧。”
我拉开门走出去。
走廊空荡荡的,午后阳光从尽头的窗户照进来,地板上铺了一层暖金色的光。我靠在墙上站了一会儿,心跳又快又乱,像有只手伸进胸腔里乱拨了一把。
她刚才想说什么?
我深吸一口气,把那些乱七八糟的念头压回去,转身走向工位。
接下来几天姜澜没单独找过我。她像一台精密机器高速运转,一周之内跟部门所有人做完了一对一沟通,开了三场项目复盘会,把所有在跑项目都过了一遍。她的工作风格干脆利落,会上从不拖泥带水,问到关键问题时尖锐得让人招架不住,但给出的建议又总能切中要害。
不到一周,研发部对她的评价从“好看的花瓶”变成了“确实有点东西”。
赵子骞的追求计划也在同步推进。加了微信之后,第一天他发了条“姜总监好,我是研发部赵子骞”,姜澜回了个默认表情。第二天他找了个工作上的问题请教,姜澜回了一大段专业详尽的解答,完全没有聊闲天的意思。
“有难度,”赵子骞午饭时跟我说,“但这种级别的难度才有意思,太容易上手的反而没劲。”
“你认真的?”我看他一眼。
“当然是认真的,”他用筷子戳着盘子里的红烧肉,“我追女孩从来都是认真的。”
“那前两个月产品部那个林——”
“那是过去,”他打断我,表情无比严肃,“这次不一样。”
我没再说什么。赵子骞这人看着吊儿郎当,做事其实很认真,追女孩时也确实称得上真诚。但问题是他要追的人是姜澜。我没办法告诉他这件事,因为我没办法解释为什么。
周四下午,我正在写接口文档,IM上收到一条消息。姜澜发来的:“你手上那个数据中台项目,下周一之前给我一个技术方案初稿。另外下周三有个和外部门的沟通会,你跟我一起参加。”
我看着这条消息,手指悬在键盘上方,想了想,回了个“收到”。
然后她又发了一条:“你的技术底子很好,不要浪费了。剑桥那半年,我记得你不是这样的。”
我的手指僵住了。
她提了剑桥。
她用一种轻描淡写的方式,在工作对话的间隙,漫不经心地把那个地名扔出来,像不小心打翻一杯水,洒出来的液体却烫得能把人皮肤灼伤。
我盯着那行字看了很久,久到屏幕自动变暗又亮起。一个字一个字删掉了输入框里打好的那些——“你什么意思”“你还记得”“当年为什么不告而别”“你知不知道我——”
最后只回了一个字:“好。”
发送之后靠在椅背上,闭上眼睛。
剑桥那半年。我记得一切,每一个细节。记得怎么认识的——计算机系一场讲座上她坐我旁边,借了我一支笔,讲座结束聊了一路,从人工智能聊到英国食物有多难吃。记得第一次单独出去——她去伦敦开会,我正好也要去伦敦办事,约在国王十字车站见面。她穿驼色大衣,围红围巾,在九又四分之三站台前面笑得眉眼弯弯。
记得那个雨夜。剑桥十一月的雨又冷又密,打在伞面上噼里啪啦响。我站在国王学院门口等了她快一个小时,从傍晚等到天黑。她没来。
我等来一条消息。
然后她就消失了。
那半年像一场梦,美好得不真实,结束得也不真实。之后我浑浑噩噩过完了在剑桥的最后两个月,拿到学位回国,进了云帆,做一颗安安静静的螺丝钉。我以为时间已经把一切磨平了,那些记忆已经褪色到不会再刺痛人的程度。
然后她出现了。以我顶头上司的身份,坐在五楼东侧办公室里,桌上放着我送她的杯垫,用公事公办的口吻跟我说“我记得你不是这样的”。
我到底是哪样的?是你当年一声不吭走掉,让我变成了现在这个样子。
这些话我一句都说不出口。只能在屏幕上敲一个“好”字,继续写接口文档,假装什么都没发生。
周五下班前,赵子骞跑到我工位旁,神秘兮兮压低声音:“晚上部门团建,姜总监请客,外滩那边一家日料,去不去?”
“去。”我说。不去反而显得奇怪。
晚上七点,研发部二十几号人浩浩荡荡杀到外滩那家日料店。姜澜订了个大包间,长条桌上摆满刺身和寿司,啤酒清酒一箱一箱往上搬。她坐在靠窗位置,脱了西装外套,只穿一件白衬衫,袖口卷到小臂,露出一截纤细的手腕。
赵子骞以迅雷不及掩耳之势抢占了姜澜旁边的位置,坐下时朝我挤了挤眼睛,比了个胜利手势。
我选了长桌另一头坐下,中间隔了七八个人。
团建气氛比我想象中热烈。姜澜工作上是雷厉风行,但私下不端着。有人敬酒也不推,喝了几杯脸上浮起一层淡红,话也多了起来。有人问总部的事,有人问为什么来上海,她都一一答了,语气轻松又不失分寸。
我坐在另一头跟旁边同事有一搭没一搭聊着,目光却不听使唤地往那个方向飘。赵子骞今天明显有备而来,全程给姜澜夹菜倒酒找话题,殷勤得恰到好处又不让人觉得冒犯。姜澜对他客气而疏离,不拒绝也不回应,像隔着一层透明玻璃罩,看得见摸不着。
几轮酒后气氛越来越热,有人提议玩游戏。赵子骞第一个响应,说玩真心话大冒险。半数以上人赞成,另外半数在酒精作用下也没强烈反对。
啤酒瓶在桌上转起来。
第一轮瓶口对准产品组一个姑娘,选真心话,被问了“谈过几次恋爱”,红着脸说了个数字,全场起哄。第二轮对准赵子骞,他选大冒险,被要求对在场一位异性深情表白。赵子骞二话不说站起来,面向姜澜,清了清嗓子。
所有人都安静了。
“姜总监,”他声音带着几分酒意,但表情是认真的,“我从第一天见你就觉得你特别。我知道这种场合说这个可能不太合适,但游戏规则嘛,我就借这个机会说出来——接下来一个月里,我会努力让你记住我的名字,不只是作为下属,而是作为一个男人。”
包间里安静了一瞬,然后爆发出一阵夹杂着口哨和掌声的喧闹。
姜澜表情没有任何变化,嘴角弧度还是那个职业化的微笑。她端起酒杯朝赵子骞举了举:“谢谢你的坦诚,我记住了。”
滴水不漏,既没让他难堪,也没给他任何希望。赵子骞大概也感觉到了,但没气馁,仰头干了一杯,坐了回去。
游戏继续。啤酒瓶又转了几轮,瓶口对准不同的人,被问各种问题。气氛越来越热,笑声一浪高过一浪。
然后瓶口对准了我。
全场安静。所有人都看向我,目光带着期待和促狭。我放下筷子,等着问题。
转瓶子的人是测试组老张。他想了想,笑着问:“程屿,你来公司三年了,好像从没见你谈过恋爱。真心话——你这辈子有没有真心喜欢过一个人?现在还喜欢吗?”
问题一出来,旁边同事都笑了。有人说“老张你问这个干嘛”,有人说“程屿这种理工直男肯定没有”。
我沉默了几秒。
那道目光从长桌另一端穿过来,落在我身上,分量很重。我没抬头,但知道她在看我。
“喜欢过。”我说。
“现在还喜欢吗?”
我端起桌上的清酒杯一饮而尽。酒液辛辣,从喉咙一路烧到胃里。
“不回答。”我说。
“欸,真心话不能耍赖啊——”
“我说的是‘不回答’,不是假话。”我把酒杯放下笑了笑,“再来一轮。”
大家哄了一声说我耍滑头,但也没继续追问,游戏很快转到下一个倒霉蛋身上。包间里喧闹重新升起来,好像刚才那个小插曲从未发生过。
我又倒一杯,慢慢喝着。目光不经意扫过长桌另一端,姜澜正低头看手里的酒杯,拇指沿着杯沿慢慢画圈,脸上的表情被灯光照得有些模糊。
那个动作我见过。三年前在剑桥,每次她紧张或不自在的时候就会这样用拇指画杯沿。这个习惯她一直保留到现在。
团建晚上十点多结束。有人喝多了被同事架着走,有人三三两约着续摊。赵子骞喝了不少但还算清醒,站在餐厅门口拦出租车说要送姜澜回去。姜澜摆摆手说叫了代驾。
我站在人群后面,把外套拉链拉到下巴。十月上海夜晚已经有了凉意,江风吹过来,带着水汽和远处轮船的汽笛声。
“程屿。”
我转过头。姜澜不知什么时候走到我旁边,披上了西装外套,手里拎着包,脸上还残留一点酒意的红。
“姜总监。”我说。
“你今天喝了不少,”她看着我,语气和平时没什么两样,但我总觉得她眼睛在路灯下格外亮,“回去注意安全。”
“你也是。”
她点点头,转身走向停在路边的一辆车。走了几步又回过头,像想说什么。
风吹起她的头发,路灯在她身后投下长长的影子。
“那个问题的答案,”她声音很轻,轻到几乎被江风吹散,“我也想知道。”
说完就上了车,车门关上干脆利落。车灯亮起,驶入夜晚的车流。
我站在原地,手指攥着外套拉链头,攥得指节发白。
03
周末两天我把自己关在公寓里哪儿都没去。冰箱里剩几罐啤酒和半袋吐司,靠着这些过了一天半,大部分时间坐在电脑前写那个数据中台项目的技术方案。写代码对我是一种逃避,敲键盘时脑子可以放空,不用想那些乱七八糟的事。
但这次不太管用。写到周日下午,我盯着屏幕上密密麻麻的架构图,发现自己脑子里想的全是姜澜上车前那句话。
“那个问题的答案,我也想知道。”
她想知道什么?想知道我还喜不喜欢她?还是想知道她当年那样做对我造成了多大伤害?或者她只是想用这句话试探我,看看我还会不会因为她三言两语就乱了阵脚?
我合上电脑,仰头靠在沙发上盯天花板。三年前的事我用了很长时间才学会不去翻。来云帆第一年,整个人像行尸走肉,工作能完成,饭能吃,觉能睡,但总觉得生活里少了某种底色,什么都提不起劲。后来慢慢好了,开始重新跟人交往,重新在工作中找到成就感,开始觉得生活好像又能往前走了。
然后她出现了,把所有我以为已经愈合的东西连皮带肉撕开。
手机震动,赵子骞发来消息:“兄弟,江湖救急,明天中午一起吃饭,有事跟你商量。”
我回了个“OK”,把手机扔到一边闭眼。
周一上午我把技术方案初稿发给了姜澜。邮件正文写得很简短,措辞客气而疏远。她十分钟后回了,也只几个字:“收到,我看看,周三沟通会之前给你反馈。”
公事公办。仿佛周五晚上那句“我也想知道”从未发生过。
午饭时间赵子骞把我拉到公司楼下面馆,点完一碗牛肉面后双手交握放在桌上,表情严肃得像要宣布公司破产。
“我遇到麻烦了。”他说。
“什么麻烦?”
“姜澜。”
我夹了一筷子面,没接话。
“上周五团建之后我周末又给她发了微信聊了几句,”他皱着眉头,像在回忆一场惨烈战役,“她回是回了,但每句话都像在写工作邮件,礼貌周全,滴水不漏。我说十句她回一句,而且那一句一定和工作相关。”
“这不正常吗?”我说,“她是总监你是下属,她能跟你聊什么?”
“问题就在这儿,”赵子骞用筷子戳着碗里的牛肉,“一般女生,就算不喜欢你,你主动了她总会给点反应吧?高兴也好厌烦也好,总有个态度。但她不一样,她就像一堵玻璃墙,看起来透明通透,实际上你根本过不去。”
他描述的这种感觉,我太熟了。姜澜就是这样的人,最大程度上保持礼貌和友善,但友善底下有一条清晰的线,线那边谁都进不去。三年前我进去过,然后被她推了出来。
“所以你打算怎么办?”我问。
“不知道,”他叹了口气,难得露出几分沮丧,“我追女孩这么多年,头一次遇到这种情况。你说她是不是心里有人?”
我喝了口面汤,烫得舌头发麻。
“可能吧。”我说。
“算了,走一步看一步。”赵子骞摇摇头重新打起精神,“对了,周三那个和外部门的沟通会你是不是也要去?姜澜让我也参加,说让我负责做会议纪要。”
“她也叫你了?”
“对啊,说这种跨部门沟通的机会难得,让我跟着学学,”赵子骞咧嘴笑了,“虽然追她这事进展不咋样,但说实话,这个领导确实靠谱,跟着她能学到东西。”
我点点头没再说什么。
周三下午沟通会在六楼会议室举行,和市场部、产品部一起讨论新版本需求排期。这种跨部门会一向难开,各方都有自己的优先级,谁也不让谁,每次都要吵上几个小时。
姜澜坐会议桌主位,手边放着电脑和记事本,面前一杯已经凉了的美式。她今天穿藏青色衬衫,头发挽在脑后,露出修长的脖颈和一对小小的银色耳钉。
我坐她斜对面。赵子骞坐在角落,面前摊着笔记本,做好了记录准备。
会议一开始就火药味十足。产品部提出了一个很激进的新功能方案,要求年底前上线,市场部表示这个时间点正好能赶上圣诞节活动档期,两边联手向研发部施压。
“这个需求我看了,”姜澜声音不高不低,但在嘈杂讨论中异常清晰,“以目前研发资源,年底前上线不现实。我可以给你们两个方案:第一,砍掉三个优先级较低的模块,核心功能十二月中旬交付。第二,保留全部模块,但上线时间推迟到明年一月底。”
产品部负责人叫许曼,三十出头,短发,说话又快又急:“姜总监,这个功能是我们跟竞品对标的重点项目,年底之前不上线,我们整个季度数据都会很难看。”
“我理解你的压力,”姜澜看着她,语气平静,“但把不可能的事情承诺出去,最后交付不了,数据会更难看。”
“你们研发部是不是太保守了?竞品团队规模比你们还小,人家三个月就能上线——”
“竞品的方案我看过,”姜澜打断她,翻开笔记本电脑投屏到会议室屏幕上,“他们只做了前端展示层改动,底层逻辑没动,所以才快。我们这次要改的是核心交易链路,涉及支付、库存、物流三个系统,每一个都不能出问题。你们想要快,可以,但快出来的风险谁承担?”
会议室里安静了一瞬。姜澜切到下一页PPT,上面是她自己做的一份技术风险评估,每个风险点后面都标注了可能影响范围和严重程度。数据翔实逻辑清晰,一看就是下了功夫做的功课。
许曼看着屏幕,嘴唇动了动,最终没再反驳。
我在旁边安静看着,心里说不上来什么感受。三年前我认识的姜澜虽然也聪明,但绝对没现在这么锋锐。那时候她更像一块未经打磨的玉石,温润而有光泽。现在的她像一把开了刃的刀,每一刀都切在最关键的地方。
会议后半程顺利很多,各方在姜澜提出的两个方案之间做了选择,定了砍掉三个次要模块、确保核心功能年底上线的方案。散会时许曼走到姜澜面前,两人低声交流了几句,气氛看起来不算差。
赵子骞合上笔记本凑到我旁边低声说:“你看到没有?刚才那段太帅了,我差点当场爱上她。”
“你已经爱了。”我说。
“不一样,之前是见色起意,现在是真心佩服,”他拍了拍笔记本,“你知道她开会前做了多少准备吗?我昨天看到她办公室灯亮到晚上十点多,就是在整理那些数据和风险点。”
我愣了一下:“你怎么知道?”
“昨天晚上我加完班走的时候看到的。”
我没说话。三年前在剑桥姜澜也是这样,为了一个课题能熬到凌晨两三点。她的聪明不是天生的,至少不全是,更多时候是她比别人花了更多时间和精力。
收拾东西时姜澜叫住了我。
“程屿,你的技术方案我看了,整体思路没问题,但有几个细节需要调整,”她走过来把一份打印好的文档递给我,上面红笔标注了好几处,“数据读写分离方案可以再优化,目前方案在高并发场景下会有性能瓶颈。另外容灾备份部分考虑得不够充分。”
我接过文档翻开。她的批注密密麻麻,但每条都精准到位,有些问题我自己都没注意到。
“我回去改。”我说。
“周三之前给我第二版,可以吗?”
“可以。”
她点点头转身要走,又停住了。
“你今天会上表现不错,”她没有回头,声音比刚才低了些,“提出来的那几个技术边界条件很关键,要不是你提醒,我可能漏掉一个风险点。”
我张了张嘴想说点什么,但她已经走了。高跟鞋敲击地面的声音在走廊里渐渐远去。我站在原地,手里攥着那份批注文档,纸张边缘被指腹捏出了浅浅的凹痕。
赵子骞从后面走过来拍拍我肩膀:“走吧,回去干活了。”
“嗯。”
回工位后我把那份批注文档摊开放在桌上从头到尾看了一遍。姜澜字迹和三年前一样,潦草而有力,改代码时喜欢用红笔,画箭头和框线的方式都跟以前一模一样。
忽然想起一件事。那年在剑桥,有一次我写了个机器学习模型,自我感觉良好发给她看。她花了一整晚帮我改,第二天还给我的时候文档上全是红批注,密密麻麻跟案发现场似的。我开玩笑说她是“红笔杀手”,她白我一眼说“你要是不想被我杀下次就写得好一点”。
那个瞬间的记忆毫无预兆涌上来,清晰得像昨天的事。我甚至能想起她当时坐在图书馆靠窗位置,台灯暖光打在侧脸上,咬一支笔皱着眉头看我的代码,偶尔在纸上写几个字。那副认真得过分的模样,我在旁边看了很久都没舍得打扰。
我用力闭了一下眼,把这些画面赶出脑海,打开电脑开始改方案。
那天晚上我又加班到很晚。办公室人渐渐走光,只剩几盏灯还亮着,空调出风口发出轻微嗡鸣。改完最后一个部分,靠在椅背上揉酸胀的眼睛。
手机屏幕亮了。
姜澜发来的消息:“还在公司?”
我回了个“嗯”。
过了几秒她发来一句话:“来我办公室一趟。”
我盯着那行字看了很久,然后站起来走向五楼东侧。走廊感应灯在我经过时一盏一盏亮起来,像某种无声的预告。走到她办公室门口,门虚掩着,里面透出暖黄色灯光。
我敲了敲门。
“进来。”
推门进去,姜澜坐在办公桌前,面前摊一堆文件,电脑屏幕还亮着,上面是一个打开很久的PPT。她抬头看我一眼,取下眼镜放在桌上,揉了揉鼻梁。
那个动作和三年前一模一样。
“方案改完了?”她问。
“改完了,明天整理好发给你。”
“好。”她靠在椅背上看着我,目光里带着一种我看不太懂的复杂情绪,“坐。”
我在她对面坐下来,像上次一对一沟通时那样。但这回气氛明显不一样。深夜空荡荡的办公室,两个人隔一张桌子对坐,安静得能听见彼此呼吸声。
“程屿,”她叫我的名字,声音很轻,和白天那个雷厉风行的总监判若两人,“你有没有什么想问我的?”
这个问题悬在空气里,像一颗被高高抛起却迟迟没落下的球。
我有太多想问的。你当年为什么不告而别?那条消息到底什么意思?我们之间没有未来,是谁替你做的判断?你知道那之后我花了多长时间才重新学会正常生活吗?你凭什么在消失三年后重新出现在我生活里,还用那种云淡风轻的语气跟我说话?
但我什么都没问。
“你指的是什么?”我说。
姜澜嘴唇动了动,像在斟酌措辞。她垂下眼睛,目光落在桌上那个剑桥杯垫上,沉默了很久。
“算了,”她最终说,“太晚了,你回去吧。”
我站起来走到门口。
“程屿。”
我停住。
“周三那个方案,”她声音在身后响起,又恢复了白天公事公办的语气,“别忘了。”
我拉开门头也不回地走了出去。走廊感应灯在身后一盏一盏熄灭。
04
接下来一周,我和姜澜之间维持着一种微妙的平衡——工作上沟通照常进行,方案改了两版最终定稿,跨部门协作进度也在按计划推进。我们每天至少在一次会议上碰面,偶尔她会在IM上给我发一两条消息,内容全部和工作相关,语气客气而疏远,像那天晚上她办公室里的对话从未发生过。
我觉得这样挺好。公事公办,划清界限,对她对我都是最安全的方式。
但赵子骞不这么想。
周四午饭时间他坐在我对面,一脸严肃把手机推到我面前。屏幕上是他和姜澜的微信聊天记录。我扫了一眼,大概内容是他约姜澜周末看展,姜澜回复周末有工作安排。
“第几次了?”我问。
“第四次,”他把手机拿回去,表情像在研究一道解不开的数学题,“第一次约饭,说约了客户。第二次约咖啡,说下午有会。第三次约电影,说最近没什么想看的。这次约看展,说有工作。四次,每次都有理由,每次都是秒回,但每次都是拒绝。”
“那你还不明白?”我说。
“我当然明白,我又不傻,”赵子骞靠在椅背上叹了口气,“我就是不甘心。你说她到底喜欢什么样的?”
“也许她只是不喜欢办公室恋情。”我找了个听起来最合理的解释。
“不可能,”他摇摇头,“她拒绝我的方式太熟练了,一看就是心里有人。这种女人我见过,刀枪不入油盐不进,唯一能解释的就是她心里住了一个人,那个人把所有位置都占了,别人连门缝都挤不进去。”
我没接话,低头扒饭。
“对了,”赵子骞忽然凑过来压低声音,“你有没有觉得她对你有点不一样?”
我筷子顿了一下:“什么意思?”
“说不上来,就是感觉,”他皱着眉回忆,“上次开技术评审会,你提了一个方案改动,她听你说话时那个表情,跟听别人说话时不太一样。”
“你想多了。”我说,语气尽量平淡。
“可能吧。”他耸耸肩没继续这个话题。
但我心里清楚他没有想多。姜澜对我的态度确实和对别人不一样——不是更好,而是更刻意地保持距离。她对其他同事虽然也客气,但那种客气浑然天成,像呼吸一样自然。而她对我的客气,用力得有些过了,像在刻意证明什么。这一点旁人不一定能看出来,但我能。
周五下午部门里出了一件事。测试组在最新一轮回归测试中发现了一个严重的支付漏洞,在特定条件下可能导致重复扣款。这个漏洞出在我去年负责的支付模块里,虽然触发条件很苛刻,但一旦触发就是生产事故级别。
消息传出来时我正在工位上写代码。赵子骞第一个跑过来,表情凝重地拍拍我肩膀:“老程,支付模块出bug了,姜总监让你去她办公室。”
我站起来,走廊里碰到好几个同事,看向我的目光都带着几分同情。这种级别的漏洞,虽然不是故意的,但作为模块负责人,追责跑不掉。
姜澜办公室里气氛比我想的冷静得多。她坐在办公桌后面,面前摆着测试组提交的漏洞报告,旁边站着质量总监老方和测试组负责人。
“程屿到了,”老方朝我点点头,语气不算严厉但也算不上和善,“这个漏洞你看看。”
我拿起报告从头到尾看了一遍。漏洞原因很快就能定位——一个边界条件判断逻辑有疏漏,在极少数并发场景下会导致重复扣款。这个逻辑是我写的,没得推。
“是我的问题,”我放下报告,声音很平静,“当时写这段逻辑时对并发场景的测试覆盖不够充分。”
老方看了姜澜一眼,欲言又止。
“这个漏洞影响范围多大?”姜澜问。
“线上环境触发概率极低,大概百万分之一级别,目前没收到用户投诉,”测试组负责人说,“但风险确实存在,需要尽快修复。”
“修复方案呢?”
“我今晚出方案,明天提测,”我说,“改动不大,主要是加一个分布式锁和幂等性校验。”
姜澜沉默了几秒,点点头:“可以。老方,质量部配合做回归测试,这次不仅要测这个漏洞本身,相关联模块也全部跑一遍。我要一份完整测试报告。”
“明白。”老方说。
“另外,”姜澜顿了顿,“这次问题虽然是程屿的代码造成的,但根源是当时代码审查流程不够完善。这种并发场景的边界条件在审查阶段没被识别出来。老方,你牵头做个技术复盘,目的不是追责,是完善流程,避免类似事情再发生。”
老方愣了一下,然后点头:“好的。”
“程屿留一下,其他人先出去。”
老方和测试组负责人离开办公室。门关上后房间里只剩我和姜澜两个人。她靠在椅背上看着我,目光里看不出喜怒。
“你刚才说‘是我的问题’的时候,”她开口,语气平淡得像在陈述事实,“你准备好了接受任何后果,包括被追责、降绩效甚至被调离核心项目。对吗?”
“对。”我说。
“为什么不说这个漏洞的代码是两年前写的,当时你还是新人,审查流程也有问题?”
“因为代码确实是我写的,”我看着她的眼睛,“不管当时什么情况,写代码的人是我,出了问题就该我负责。”
姜澜沉默了一会儿,嘴角出现了一个非常细微的弧度。那个弧度太小了,不像是笑,更像一种非常克制的、转瞬即逝的认同。
“你还是这样,”她说,声音低得像说给自己听的,“认定的事就不会躲。”
我没接话。
“修复方案明天给我,周五之前完成上线,”她重新拿起桌上文件,恢复了工作时的语气,“这次我亲自审你的代码。”
“好。”
我转身往外走时听到她在身后说了一句话。声音很轻,像从很远的地方飘过来。
“程屿,以前的事,我会给你一个解释。”
我停住脚步没回头。
“不需要了,”我说,“过去的事就让它过去吧。”
我拉开门走了出去。走廊里赵子骞靠在墙上等我,看到我出来立刻迎上来:“怎么样?姜总监怎么说?”
“修复,复盘,改进流程。”我言简意赅。
“没追责?”
“没有。”
赵子骞松了口气拍拍我肩膀:“那还好那还好,吓死我了。不过说实话老程,姜澜对你确实不一样。换别的领导出了这种漏洞,不管三七二十一先批一顿再说。她倒好,还帮你分析流程问题。”
“她不是帮我,”我说,“她是就事论事。”
“行行行,就事论事,”赵子骞嘿嘿笑了两声,“反正我觉得有戏。”
“什么有戏?”
“我跟她啊,”他拍拍胸脯,“你想,一个对工作这么严谨的人在工作上认可了你,说明她对你的专业能力是认可的。专业认可了,接下来就是——”
“你还没放弃?”我打断他。
“怎么可能放弃?”赵子骞理所当然地说,“你等着,下周我放大招。”
我摇摇头没再说什么。
那天晚上我在公司熬到凌晨两点,把修复方案写完又做了两轮自测。办公室空无一人,窗外陆家嘴灯火渐熄,只剩几栋大楼顶部的航空障碍灯一明一灭地闪。
关掉电脑准备走时路过五楼东侧,发现姜澜办公室灯还亮着。我犹豫了一下没走过去。
电梯门打开时身后传来脚步声。我没回头,但知道是她。
“你也这么晚?”姜澜的声音从背后传来,带着一丝疲惫的沙哑。
“刚改完方案。”我说着走进电梯按住开门键等她。她走进来站在我旁边,隔着一个人的距离。电梯灯光把我们的影子投在对面的镜面墙上,两个人看起来离得很近,但谁都没动。
电梯缓缓下降。
“以前的事,”姜澜忽然开口,声音在狭小空间里格外清晰,“你说不需要解释了。你是认真的吗?”
我看着镜子里她的影子,声音平静得让自己都意外:“你不觉得吗?三年了,大家都变了。你是我的领导,我是你的下属,这个关系挺好,简单清楚,不需要再掺杂别的东西。”
电梯到一楼,门打开。我走出电梯,姜澜在后面叫住我。
“程屿。”
我回过头。她站在电梯里手按着开门键,灯光从头顶照下来把她的五官照得格外分明。她的表情和三年前那个雨夜我最后见到她时一模一样——明明有很多话想说,却什么都说不出口。
“晚安。”她最终只说了这两个字。
“晚安,姜总监。”
我转身走出大楼。十月夜风裹着江水的凉意扑面而来,我把外套拉链拉到最高大步走向地铁站。手机在口袋里震了一下,赵子骞在群里发消息说周末组了密室逃脱局,问有没有人参加。
我回了个“参加”,把手机塞回口袋。生活还是要继续,不管心里有没有一个填不上的洞。
05
周末的密室逃脱局,赵子骞叫了七八个人。除了研发部几个同事,还有产品部许曼和她的两个下属。地点选在人民广场附近一家沉浸式密室,主题是悬疑推理本,据说是全上海最难的那一档。
我到的时候大部分人已经在门口等着了。赵子骞穿一件亮色卫衣站在人群中间正讲规则,看到我来了挥挥手:“老程,这边!”
我走过去,目光在人群里扫了一圈,停住了。
姜澜站在许曼旁边,穿白色卫衣和牛仔裤,头发扎成高高的马尾,看起来和办公室里那个西装革履的总监判若两人。她手里端一杯奶茶,正听许曼说话,嘴角挂着一抹轻松的笑意。
“姜总监也来了?”我压低声音问赵子骞。
“对啊我专门请的,”他得意地挑挑眉毛,“怎么样,没想到吧?”
“你不是说她周末都有工作安排?”
“这次没有,”赵子骞笑了笑,“而且我换了个说法,没说是单独约,说是部门活动她就答应了。我跟你说,这就是策略——先从群体活动开始,降低她的防备心理,再慢慢——”
“行了行了,”我打断他,“进去吧。”
密室场景是一个废弃的精神病院,灯光昏暗,墙壁上全是斑驳血迹和诡异涂鸦。工作人员给我们每人发了一个身份牌和对讲机,然后锁上大门。剧情开始。
第一个房间是停尸房,四面墙壁排列着冰冷金属柜,中间一张锈迹斑斑的手术台。我们需要在二十分钟内找到密码打开通往下一个房间的铁门。一群人立刻分散开来翻箱倒柜找线索。赵子骞自然跟在姜澜身边,殷勤地帮她打手电筒搬东西。姜澜蹲在墙角仔细研究墙上的一串数字,眉头微蹙嘴里念念有词。
我站在另一边翻看手术台上的一本旧病历。病历上的字迹潦草信息零散,需要拼凑起来才能形成完整线索。我看了一会儿,脑子里的逻辑链条自动开始运转,很快就把几页病历之间的关系理清楚。
“这串数字是日期,”姜澜的声音从身后传来,“墙上的数字和病历上的日期对应,应该能推出密码。”
“对,”我头也不抬,“第一本第三页、第二本第七页、第三本第二页,取每个日期最后两位,密码是092752。”
姜澜走过去试了一下。铁门发出一声沉闷的响声,开了。
“厉害,”赵子骞在旁边鼓起掌来,“你们俩配合得也太默契了吧?”
姜澜看了我一眼没说话,率先走进下一个房间。我在后面看着她的背影——白色卫衣,高高马尾,在昏暗灯光下脚步轻快地穿过走廊。这个背影太像三年前了,像那个在剑桥图书馆里穿过一排排书架向我走来的女孩,像那个在康河边草地上笑着朝我招手的人。
我移开目光强迫自己把注意力集中在密室上。
第二个房间是电击治疗室,到处锈迹斑斑的医疗器械。线索比第一个房间复杂得多,需要同时解开一个机械机关和一个密码锁。我们七个人分成两组,一组负责机械一组负责密码。我主动选了密码组,和许曼还有测试组一个小伙子一起。姜澜和赵子骞负责机械机关。
两组隔着一面玻璃墙,能看见彼此但听不见声音。我在密码锁前蹲下开始研究上面的符号规律。这个密码的加密逻辑很有意思,用了多层替换,每一步都需要反向推导。我的大脑自动切换到解题模式,周围一切变得模糊。符号在脑子里排列、重组、推导,一层一层剥开,密码轮廓逐渐清晰。
“程屿,你们那边怎么样了?”对讲机传来赵子骞的声音。
“快了,再给我五分钟。”我说。
“我们这边有点卡住了,这个机械机关有个零件好像卡死了——”
“让我看看。”姜澜的声音从对讲机传来,然后一阵窸窣动静。“这个齿轮要往左转,不是往右。你们看,连杆运动轨迹是逆时针的,往右转会卡住。”
几秒钟安静。“咔嗒”一声脆响,机械机关弹开了。
“好了!”赵子骞兴奋地喊。
几乎同一时刻,我推开了最后一步推导,八个符号在脑子里一一归位。伸出手指在密码锁上依次按下。锁开了。
两道门同时弹开。我们隔一面玻璃墙互相看了一眼。姜澜额头上沁出一层薄汗,眼睛在昏暗灯光下亮得惊人,朝我竖了个大拇指。我也回了一个。
那一瞬间我忘掉了所有事——忘掉三年前的雨夜,忘掉她是我的顶头上司,忘掉那些刻意保持的距离和小心翼翼的回避。剩下的只有两个人在同一个关卡前各自努力、然后同时通关之后那种纯粹的、发自心底的快意。这种默契,三年了居然还在。
第三个房间是院长办公室,也是整个密室最难的一关。线索散落在房间各个角落看起来毫无关联,需要极强的联想能力才能串起来。所有人都被难住了。许曼和两个下属在翻书柜,测试组小伙子在研究墙上画,赵子骞在摆弄桌上一个八音盒。我和姜澜不约而同走到房间角落一块黑板前,上面密密麻麻写满公式和符号。
“这是密码学的内容,”姜澜看着黑板,声音很轻但语速很快,“第一行是凯撒密码,第二行是维吉尼亚密码,第三行……第三行看起来像自定义加密算法。”
“不是自定义,”我盯着那些符号看了几秒,“是AES简化版,看这个S盒排列方式。”
“你确定?”
“确定。去年做过一个加密通信组件,研究过一段时间。”
姜澜点点头拿出手机拍照。然后她做了一件让我意外的事——拉过一把椅子,直接在黑板上开始推导。粉笔划过黑板的声音又快又脆,一行行公式从她手下流出来,像某种流畅的音乐。
我站她旁边看着。偶尔指出方向性错误,偶尔在她跳过某个步骤时替她把细节补上。两个人配合得像排练过无数次,一个负责宏观方向判断,一个负责具体细节执行,几乎不需要多余沟通。
“这个位置有个非线性变换,”姜澜盯着我指出来的那行公式眉头皱了一下,“如果直接用查表法复杂度会降低一半。”
“但查表法对边界条件有要求,”我靠在桌边双手抱胸,“你看第三页那个参数,如果输入超出预设范围,查表法会直接报错。”
“那就在查表之前加一个取模操作,把输入映射到预设范围内。”
“取模会引入碰撞风险。”
“这个场景下碰撞概率低于千分之一,可以接受。”
我们一来一回讨论着,完全忘记周围还有其他人。直到许曼在旁边咳嗽了一声我才回过神来,发现全组人都在看我们俩。
“你们俩……”许曼的目光在我和姜澜之间来回跳转,“是不是以前就认识?”
“不认识。”我说。
“没有。”姜澜几乎同一时刻说。
两个人回答重叠在一起,像一首配合默契的二重唱。赵子骞的目光变了变,但很快被他掩饰过去。
“行吧,”许曼耸耸肩没追问,“那密码解开了吗?”
“快了,”姜澜把最后一行公式写完拍拍手上粉笔灰,“给我三分钟。”
两分四十秒后她推导出最后密码。院长办公室大门轰然打开,通往出口的最后一段走廊出现在眼前。全组人发出一阵欢呼,赵子骞带头冲了出去。
我走在最后面。姜澜也走在最后面。
走廊很长灯光昏暗,脚下地板踩上去吱呀作响。
“你刚才说谎了。”我说,声音很低只有她一个人能听见。
“你不也是。”她没看我,目视前方步伐平稳。
“我说的是事实。”
“哪一部分?”
“不认识的那部分,”我顿了顿,“现在的我们,确实不认识。”
姜澜脚步停了一瞬然后继续往前走。
“你这么想?”她问。
“不是我怎么想的问题,”我说,“这是事实。三年了,你变了很多我也变了很多。你现在是我领导,我是你下属,这就是我们现在的关系。”
“那刚才呢?”她忽然转过身面对着我,走廊尽头的光在她身后勾勒出单薄的轮廓,“刚才你站在黑板旁边跟我讨论加密算法,你说的那些话做的那些判断,是针对你的‘领导’吗?”
我沉默了。
“程屿你骗不了我,”她声音很轻却有一种不容置疑的力量,“工作上你配合我,团建时你躲着我,你用‘姜总监’三个字在我们之间划了一条清清楚楚的线。但你骨子里的东西没变,那些东西——”
“够了,”我打断她,声音比我预想的沉,“那些东西,是你当年不要的。”
她像被什么东西击中一样瞳孔骤然收缩。走廊里的空气仿佛瞬间凝固,远处出口传来其他人的笑声和说话声,但那些声音听起来像来自另一个世界。
“我没有不要,”她声音在发抖但在努力控制,“我只是——”
“只是什么?”
她没回答。她站在那里,垂在身侧的手攥成拳头指节捏得发白。那个在会议室里气场全开条理分明怼得产品部哑口无言的女人,此刻像一个被戳中最疼的地方却不知道怎么喊疼的孩子。
“姜总监!程屿!你们俩磨蹭什么呢?出来了!”
赵子骞的声音从出口传来,打破了走廊里的沉默。
姜澜像被按下了某个开关,脸上表情瞬间恢复正常。她转过身朝出口走去,脚步比刚才快了很多。我站在原地,看着她走进走廊尽头那团明亮的光芒里。那团光吞没了她的身影,像三年前那个雨夜,剑桥的夜色吞没了她的最后一个背影。
06
从密室出来,赵子骞提议去附近一家火锅店续摊。大部分人响应,姜澜犹豫了一下最终也点了头。
火锅店里人声鼎沸,红油锅底咕噜咕噜冒泡,白蒸汽在暖黄灯光下升腾。我们占了两张大桌热热闹闹涮着肉,密室逃脱的余兴还没散,大家七嘴八舌复盘刚才的关卡。
姜澜坐我对面,隔一口沸腾的火锅,中间是升腾的白蒸汽。她没怎么说话,偶尔夹一筷子青菜,大多数时候听别人说,嘴角挂着一抹淡淡的笑。许曼坐在她旁边,两人关系看起来不错,时不时低声交流几句。我听到许曼问她有没有男朋友,她笑着摇摇头说工作太忙没时间。
“那前男友呢?”许曼不依不饶。
姜澜筷子顿了一下,夹起一片肥牛在油碟里涮了涮,声音很轻:“有一个。”
“有一个?什么意思?”
“意思是,有一个忘不掉的人。”她说完把肥牛塞进嘴里用力嚼了嚼,像在嚼一个咽不下去的答案。
我筷子也顿了一下。赵子骞坐我旁边正和对面的人拼酒,没注意这边对话。但我注意到了,每个字都注意到了。
“忘不掉就去找他啊。”许曼说。
“找了,”姜澜声音更低了些,低到几乎被火锅沸腾声淹没,“但他说不需要解释了。”
我低下头把一筷子茼蒿按进锅里,看它在滚烫红汤里翻腾。
吃完饭快十点了,一行人站在路边打车。赵子骞喝了酒脸红得像煮熟的虾,被两个同事架着塞进出租车后座。临走还不忘把头伸出车窗朝姜澜喊了句“姜总监今天玩得开心吗”,姜澜笑着点点头说开心。
人群渐渐散了,最后只剩我和姜澜站在路边。
“你怎么走?”她问我。
“地铁,还来得及。”
“我也坐地铁。”
“你住哪?”
“静安。”
“那我跟你不是一个方向,”我说,“我往浦东。”
“那就在这里分开吧。”她说。
“好。”
谁都没动。
十月夜风吹过空荡荡的街道,梧桐树影子在路灯下摇晃。姜澜站在路灯下面双手插在卫衣口袋里,马尾被风吹散几缕贴在脸颊上。
“今天密室那个密码,”她忽然开口,语气轻松得像随口一提,“你怎么一眼看出AES的S盒的?”
“去年做过一个加密通信组件,”我说,“当时研究过一段时间。”
“你看,这就是你的问题,”姜澜看着我,路灯在她眼睛里映出两个小小光点,“你永远在回答‘怎么做’,从来不解释‘为什么’。你明明可以告诉我你去年做那个组件熬了多少通宵、看了多少论文,但你不说。你只说结果。”
“说那些没意义。”我说。
“有意义,”她往前走了一步距离近了些,我甚至能闻到她身上淡淡洗衣液的味道——薰衣草味,和以前一样,“以前在剑桥你就是这样。帮我改论文改到凌晨三点,第二天轻描淡写说‘顺手改的’。你做的那些事从来不说。”
“你以前不是这样,”我说,“以前你不会在意这些细节。”
“因为那时候我以为以后有的是时间慢慢了解,”她声音低下去,“后来才发现没有时间了。”
风吹过来,带着远处黄浦江的水汽。我看着她,看着路灯下这张和三年前几乎没怎么变的脸,胸腔里有什么东西在剧烈翻涌,像被压在深海底部的暗流终于找到一个裂口。
“你说‘没有时间了’,”我开口,声音比我预想的平静,“是什么意思?”
姜澜没回答。她低下头用脚尖拨弄地面上的一颗小石子,沉默了很久。
“程屿,如果我告诉你当年的事不是你想的那样,”她抬起头目光直直看着我,“你会信吗?”
“那要看你说的是什么。”
“如果我说——”
她手机忽然响了,刺耳铃声划破夜晚安静。她看了一眼来电显示眉头立刻皱起来,侧过身接起电话。
“喂……嗯……好,我知道了……现在?……行,我这就回去。”
挂了电话她脸上表情已经完全恢复工作时的样子。
“公司的事,”她简短说,语气里带着一丝不易察觉的无奈,“数据中台项目测试环境出了问题,我需要回去处理。”
“我跟你一起。”话一出口我自己都愣了一下。
姜澜也愣了一下看我一眼,然后微微摇头:“不用,你回去,明天还要上班。”
“是我负责的模块,出问题应该我在场。”
我们对视了两秒。
“走吧。”她说。
回到公司已经快十一点了,整栋大楼只有零星几扇窗户还亮着灯。我们走进电梯各自站在一边,镜面墙上映出两个人影子,中间隔一道清晰分界线。
测试环境故障比预想严重。一台核心数据库服务器配置出了差错,导致整个数据中台测试链路中断。我花了将近一个小时才定位到问题根源——一个运维脚本里参数写错了。修复倒是快,但需要手动重建几个索引。
姜澜坐在我旁边工位上打开笔记本电脑处理她自己的事。办公区灯光很亮,空调出风口吹着微微暖风,整个空间安静得只剩键盘敲击声。
“修好了。”我靠在椅背上长长呼一口气。
“辛苦了,”姜澜合上电脑看一眼手表,“快一点了,回去吧。”
“你怎么走?”
“打车。”
“这个点不好打车,”我站起来拎起外套,“我陪你到楼下等。”
她看我一眼没拒绝。
电梯里只有我们两个人,楼层数字一格一格往下跳。凌晨电梯间安静得像一个密闭盒子,墙壁镜面反射出两个疲惫人影。
“刚才在路边,”我忽然开口,“你想说什么?”
姜澜沉默了几秒然后轻轻摇头:“算了,今天太晚了改天再说。”
“改天是哪天?”
她转过头看着我,目光里带着一丝意外。
“你以前从来不追问的,”她说,“以前你总是等我自己说。”
“以前是以前,”我说,“现在我想知道。”
电梯到一楼门打开。大厅保安大叔趴在桌上打盹,听见声音抬头看我们一眼又趴回去。姜澜走出电梯在大厅中央停住脚步。她转过身面对着我,白卫衣在昏暗灯光下显得有些发黄,马尾松了几缕碎发垂在额前。凌晨一点的女人,褪去所有妆容和盔甲,看起来和三年前那个站在国王学院门口的姑娘没什么两样。
“你还记不记得,”她说,声音很轻但在空旷大厅里听得清清楚楚,“在剑桥有一次我们谈到未来,你说你想回国做技术,想找一个有挑战性的平台,做点真正能影响很多人的事。”
“记得。”
“我说我想进大公司做到管理层,用自己的方式去改变一些事。”
“也记得。”
“那时候我们觉得未来方向是一样的,”姜澜说到这里声音开始微微发抖,“但其实不一样。你想要的是纯粹技术,而我想要的……比那个复杂得多。”
我看着她等她继续说。
“三年前那个秋天,”她垂下眼睛语速慢下来,“我父亲的公司出了问题。不是小问题,是濒临破产的大问题。他在深圳做制造业做了二十年,那一年被合伙人骗了,资金链断裂,债主堵门,他一个月瘦了二十斤。我妈打电话给我时哭得连话都说不清楚。”
我愣住了。这些事她当年从没跟我说过。
“我需要钱,很多钱,”姜澜的声音变得很平,像在说一件和自己无关的事,“云帆CEO是我父亲多年朋友。他找到我说可以给一个机会——总部事业部有管培生岗位,条件是立刻入职,而且必须全职在深圳。薪水比当时市场价高不少,最重要的是他愿意预支两年薪水。”
“所以你选择了休学回国。”我说。
“对。”
“那条消息……你说我们之间没有未来,是认真的吗?”
姜澜抬起头看着我,眼眶红了但没有哭。
“那不是假话,”她声音哑了,“当时我不确定能不能帮父亲撑过去,不知道未来会变成什么样。我没办法让你等我,也没办法让你放弃剑桥的学业跟我回国。我能做的只有把话说绝了让你死心。”
“所以你替我做决定了。”我声音比想象中平静,平静得连自己都觉得冷漠。
“对,”她点点头嘴角浮起一个苦涩弧度,“我替你做了决定。我觉得这是对你最好的方式,让你毫无负担往前走,别被一个不确定的未来拖着。”
大厅里安静极了。保安大叔不知什么时候醒了,远远看着我们俩,大概在好奇这对男女为什么凌晨一点还在公司大厅站着说话。
“你父亲后来怎么样?”我问。
“撑过来了,但公司还是卖了,”姜澜说,“还完了债,剩下的钱够他养老。我在云帆干了三年做到事业部总监,按约定还清了预支薪水的年限。CEO前段时间找我,说上海这边需要人,问我想不想来。”
“所以你来了。”
“所以我来之前查了一下上海研发部人员名单,”姜澜看着我,眼睛里光在昏暗大厅里格外亮,“第一个名字就是你。”
我把双手插进外套口袋,指节攥得发白。
“你凭什么觉得,”我开口,声音低得像从胸腔深处挤出来的,“三年后你再出现告诉我这些,一切就能回到从前?”
“我没觉得一切能回到从前,”姜澜声音也哑了,“我只是觉得……你至少应该知道真相。你有权利知道真相。”
“然后呢?”
“然后,”她深吸一口气站直身体,又恢复那种接近职业化的平静,“然后你是走是留,是原谅我还是恨我,都是你的权利。”
她说完转身走向大厅门口。自动门感应到她靠近缓缓向两边滑开,凌晨凉风涌进来吹起她头发和卫衣下摆。
“姜澜。”
她停住没回头。
“你从没问过我,”我看着她单薄背影一字一顿,“那两年我是怎么过来的。”
她肩膀抖了一下。
“你只想到了替我决定,但你没问过我愿不愿意等你。你怕拖累我,但你想没想过,被你一声不响丢下,对我来说才是最重的拖累。”
姜澜站在那里一动不动,像一座被夜风吹凉了的雕塑。
“你先回去吧,”我最后说,“明天……还要上班。”
她没动。过了很久她转过身,脸上有两道清晰水痕。凌晨路灯照在上面亮得刺眼。
“对不起,”她声音碎得拼不成完整句子,“程屿……对不起。”
我看着她哭,胸腔里有什么东西碎了又拼拼了又碎。我想走过去,想伸手帮她擦掉那些眼泪,想告诉她没关系了都过去了我不怪你了。但我没动。三年前站在国王学院门口等了一个小时的那个人,把我钉在原地。
“晚安。”我说。然后转身走回电梯。
电梯门缓缓合上瞬间,我看到她站在大厅门口,一个人,被凌晨凉风吹乱了头发。数字一格一格往上跳。我靠在电梯墙上闭上眼睛,指甲掐进掌心肉里。
07
接下来一周,我和姜澜之间那条我划出来的线,变成了一道沉默的墙。
工作上沟通依然在进行,但都缩减到最简洁的程度。IM上的消息只有“收到”“已处理”“明天提交”这种三两个字就能说完的内容。会议上她提问我回答,我汇报她点头,默契得像两台精密调校过的机器。
所有人都感觉到了不对劲。
最先问我的是赵子骞。周三午饭时他坐在我对面,用一种研究bug的眼神看着我:“你跟姜总监之间是不是有什么矛盾?”
“没有。”我说。
“那你最近怎么回事?跟她说话时连眼皮都不抬。”
“正常工作关系不就是这样?”
赵子骞放下筷子双手交叉抱在胸前:“程屿,咱俩认识三年了,你什么脾气我清楚。你对所有人都是客客气气温温和和的,唯独对姜澜,你在刻意保持距离。你对她不是冷淡,是——怎么说,像怕碰到什么东西。”
“你想多了。”我端起汤碗喝一口避开他目光。
赵子骞看了我几秒没追问,只是说了一句让我心里一沉的话:“姜总监这几天状态也不对。开会时还是那么专业,但散会后一个人待在办公室的时候,那种感觉……说不上来,像丢了什么东西。”
我放下汤碗站起来说吃完了先回工位。
回工位上打开IDE,盯着代码屏幕发了二十分钟呆。一行代码没写。
我知道姜澜状态为什么不对。因为那天凌晨我转身走进电梯时,从她眼睛里看到的那个东西——不是伤心,是绝望。是那种把所有勇气用光了、把所有底牌摊开了,却什么都没换回来的绝望。
但我心里那道坎,不是几句话就能抹平的。这不是她欠我多少钱、我该不该原谅她的问题。这是关于信任的问题——她当年选择了不信任我,不信任我能和她一起承担那些重量。她把所有重量背在自己身上,用“为你好”的名义把我推开。这种被剥夺选择权的感觉,比任何伤害都更让我难以接受。
周四下午,一件所有人都没预料到的事发生了。
部门群里突然弹出一条消息,人事部发的全员通知:经管理层研究决定,姜澜总监将调回深圳总部,本周五为她在上海的最后工作日。继任者从总部另行选派,具体人选另行通知。
群里安静了整整三分钟,然后炸了。消息一条接一条往上刷,有震惊的有惋惜的有追问原因的。赵子骞直接跑到我工位旁,手里攥着手机,脸上表情像被人扇了一巴掌。
“你看到没有?她要走了!”
“看到了。”我说。
“才来一个月不到!一个月不到!公司这是什么操作?”
我没回答,因为我也不知道。我点开人事部那封正式邮件从头到尾看了两遍。措辞很官方——“因公司战略调整及业务需要”“姜澜总监将继续在总部担任重要职务”“感谢她在上海期间的贡献”——但越是这样标准的措辞,越让人觉得背后有某种不寻常的东西。
我第一反应是拿出手机给姜澜发消息。打了一行字删掉,又打一行又删掉。
“她想一个人扛下所有的事”这句话突然从我脑子里跳出来,带着一种让人不安的寒意。
周五上午,姜澜站在五楼大会议室里,面前是研发部全体成员。她穿一件深蓝色西装外套,妆容精致头发一丝不苟,和第一天见面时一模一样。
“感谢大家这段时间的配合和支持,”她声音平稳而从容,像在做一次再普通不过的项目汇报,“研发部是很优秀的团队,能在上海这段时间和大家共事是我荣幸。后续工作交接已经和老周对好了,不会影响大家正常节奏。”
台下很安静。赵子骞坐我旁边,嘴唇抿成一条线。
散会后一群人围上去跟她道别。许曼也来了,站在人群外面眼眶红红的。姜澜一个一个回应,握手点头微笑,体面而周全。我站在人群最外面,看她被一群人围在中间,像看一颗正在被潮水淹没的礁石。
她抬起头目光越过人群,准确地找到我。我们对视了一秒。然后她移开目光继续和下一个同事握手。
下午六点,姜澜开始收拾办公室。我在工位上坐了整整一下午,写了不到二十行代码,删了十几行。赵子骞走过来把一个信封放在我桌上:“全组人凑的,给姜总监买了个礼物,你帮我去送吧。”
“为什么是我?”我问。
“因为我去了她不会收,”赵子骞表情难得认真,“但你去,她会。”
我看着他等他继续往下说。
“老程我不傻,”赵子骞低下头嘴角扯出一个有点苦涩的笑,“那天密室逃脱我就看出来了。你们俩之间的那种默契不是刚认识一个月的人能有的。你们以前认识,而且关系不一般,对吧?”
我沉默了。
“你放心我不问了,”赵子骞拍拍我肩膀,“去吧,她在等你。”
我捏着那个信封站起来走向五楼东侧。办公室门半开,姜澜正蹲在一个纸箱旁,把桌上东西一件一件往里放。书架已经清空,墙上工作计划表也摘了,整个房间看起来像一个正在被剥离存在的空间。
我敲了敲门框。她抬起头看到是我,动作停了一瞬。
“来道别?”她站起来拍拍手上的灰,语气轻松得像在说今天天气不错。
“全组凑的礼物,”我把信封放在桌上,“他们让我送过来。”
“谢谢,”姜澜拿起信封没打开,放在纸箱最上面,“回去帮我跟大家说声谢谢。”
我站在那里没走。
“调回总部,”我开口,“是你自己申请的对吧?”
姜澜动作顿了一下,继续把桌上书往纸箱里放。
“公司战略调整,”她说语气平淡,“人事部邮件写得很清楚。”
“那封邮件一个字我都不信,”我往前走一步声音不自觉地提高,“你来了不到一个月,项目刚上手团队刚磨合好,总部有什么战略调整会在这个时候把你调走?”
姜澜停下动作双手撑在纸箱边缘,低着头。
“数据中台那个支付漏洞修复后上线很顺利,”她声音很平静,像在陈述和工作相关的客观事实,“测试环境故障也处理完了。我来上海的三件重要的事,已经完成两件。”
“三件事?”我皱眉,“哪三件?”
她没回答。
办公室安静了几秒。走廊传来同事们下班离开的脚步声和说笑声,那些声音传进这个正在被清空的房间显得格外遥远。
“第三件,”姜澜忽然开口,声音比刚才轻很多,“是想当面告诉你当年发生了什么。”
她抬起头看着我。妆容依然精致,头发依然一丝不苟,但那双眼睛里有什么东西裂开了,露出底下的脆弱的真实的那个她。
“第一件事是把部门带上正轨,第二件事是帮你在工作上争取更多机会和空间。这两件我都做到了。第三件,”她顿了顿嘴角浮起很小一个弧度,“我试过了。你没接受。”
我站在原地,胸腔里像被人塞了一块烧红的铁。
“你做这些,”我声音沙哑得不像自己,“是为了什么?”
“因为这是我欠你的,”姜澜说,声音在颤抖但她没移开目光,“三年前我欠你一个解释,三年后我来还。你不接受是你权利。但我至少要让你知道,当年那个人没有背叛你。她只是……太害怕了。”
“害怕什么?”
“害怕你会为她放弃一切,放弃剑桥学位,放弃你一直想做的事,回国陪她面对那些烂摊子,”姜澜眼睛红了但她硬撑着没让眼泪掉下来,“因为我知道你做得出来。你就是这样的人——认定一件事刀山火海都不会回头。我不能让你那样做。”
“所以你就替我做决定了?”
“对,”她点头,一滴眼泪终于从眼眶滚落但很快用手背擦掉,“我知道这不对,知道这对你不公平。但当时的我只有这一个办法。我家破产了,我爸差点跳楼,我妈哭着求我想办法。我十九岁出国,二十岁在剑桥认识你,二十一岁以为这辈子就会这样和你一起走下去。然后一夜之间天塌了。”
她声音终于碎掉,碎成断断续续拼不完整的句子。
“云帆CEO找到我时说可以预支两年薪水……我没得选,程屿,我真的没得选。要么放弃你,要么放弃我爸妈。只能选一个。”
我走过去绕过那个装了一半的纸箱走到她面前。
“你为什么不告诉我?”我声音很低,低到像在问自己,“你告诉我了我们可以一起想办法。我可以休学,可以回国,可以——”
“不行,”姜澜使劲摇头,“你的学业你的前途,你那么喜欢的东西,我不能让你因为我的事——”
“那你觉得,”我握住她手腕打断她,“没有你,我在剑桥那半年是怎么过的?”
她愣住了。
“你消失之后,”我一字一顿,“我在剑桥待了半年。那半年每天早上一睁眼就看手机,看你有没有回我消息。路过国王学院会绕路走,因为我们约在那里见面你从来没来。写完论文一个人坐在图书馆里,对面那个靠窗的位子空着,以前你总坐那里。”
姜澜手腕在我掌心里颤抖。
“我没放弃学业没放弃技术,我甚至来了云帆,在你不知道的情况下离你越来越近,”我看着她声音低哑,“但你知道这些东西底下是什么吗?”
“是什么?”
“是一个填了三年的洞,”我说,“是一个每分每秒都在提醒我‘你最信任的人可以一声不响走掉’的洞。”
姜澜眼泪终于彻底决堤。她低下头肩膀剧烈颤抖,眼泪一滴一滴砸在纸箱里的书上洇出深色水痕。
她哭了很久。我就那样握着她的手腕没松手也没说话。窗外天色从灰蓝变成深黑,陆家嘴灯光次第亮起,远远透过落地窗映进来。那些光落在她哭花的脸上,落在凌乱的头发上,落在那些被打包进纸箱的过往里。
“程屿,”她终于开口,声音哑得几乎听不出来是她,“你说的那个洞……还能填上吗?”
“我不知道。”我说。
她点点头像得到了意料之中的答案。
“但我愿意试试。”我接着说。
姜澜身体僵了一下,然后慢慢抬起头,用那双哭得通红的眼睛看着我,像没听懂我在说什么。
“你当年没给我选择的机会,”我松开她手腕往后退一步,“现在我给你。调回深圳还是留在上海,这次你自己选,我尊重你的任何选择。”
姜澜张了张嘴没说出话。
“但是,”我看着她把最后那句话一字一顿说出来,“如果你留下来,我要的不是解释不是道歉不是你觉得你欠我什么。我要的是一个成年人之间对等的关系——你可以信任我,把你扛不动的东西分给我;我也可以信任你,相信你不会再一声不响走掉。你能不能做到?”
办公室安静了很长时间。长到走廊感应灯都熄灭了,长到窗外黄浦江上传来了轮船汽笛声。
“我能。”姜澜说。
她声音还在发抖,但那个音节落下来时像在水面上投下一颗石子,涟漪一圈一圈荡开荡了很远。
我看着她——看她哭花的妆,看她被揉皱的衬衫袖口,看她身后那个装了一半的纸箱。然后我做了一件三年来一直想做却没机会做的事。我往前迈一步张开双臂,把她拉进怀里。
她身体僵了一瞬然后整个人软下来,像被抽走最后一丝力气。她把脸埋在我胸口,手指攥着我衬衫后背,攥得那么用力,像在抓住一根在洪水中漂了很久的浮木。
“我不走了,”她声音闷闷从我胸口传出来,“回去我就跟CEO打电话。”
“好。”
“支付漏洞的代码我已经审完了,测试报告也看了,没问题。”
“好。”
“数据中台第二期方案你下周给我。”
“好。”
她从我胸口抬起头,眼睛还红着但嘴角已经浮起微小的真实的弧度。
“你怎么就知道说‘好’?”
“因为在你说正事时打断你,”我也笑了一下,“后果很严重。三年前就知道了。”
她愣了一下然后笑出声。那声笑里还带着没散尽的哭腔,但已经不一样了——像一扇关了太久太久的窗,终于被人推开一条缝。
窗外城市夜色璀璨。远处外滩灯火通明,黄浦江像一条黑色绸带在两岸灯光之间安静流淌。
08
姜澜最终留在了上海。
她给CEO打了一个很长的电话。我坐在她办公室沙发上等着,听她用一种我从未见过的执拗语气和电话那头的人来回交涉。挂断后她靠在椅背上闭眼沉默了很久,然后睁开眼朝我比了个OK的手势。
“留下来了,”她语气里有一种如释重负的轻松,“但代价是今年绩效指标上调百分之二十。”
“百分之二十?”我皱眉,“你能完成吗?”
她看我一眼嘴角微微一挑:“你这是在质疑我能力?”
“不敢。”
“那就闭嘴,回去写你代码。”
我站起来往外走,到门口回头看了一眼。她已经开始重新把纸箱里的东西往外拿了,动作轻快有力,和几个小时前那个慢吞吞收拾东西的样子判若两人。
赵子骞是第一个知道姜澜留下来的人。周一早上他走进办公区,看到姜澜站在会议室门口跟老周说话,整个人愣在原地嘴巴张得能塞进一个鸡蛋。然后他转过头看我,眼睛里写满问号。
“怎么回事?不是调走了吗?”
“不调了。”我说。
“不调了?!”赵子骞声音高了八度,把旁边几个同事目光都吸引过来,“你昨天去送礼物时到底发生了什么?”
“送了个礼物,说了几句话。”
“就这?”
“就这。”
赵子骞用“你当我是三岁小孩吗”的表情看了我足足十秒,然后出乎意料没追问。他往自己工位走去,走到一半又回过头,脸上表情从震惊变成某种复杂的带着几分释然的东西。
“老程,”他说,“追她的事我放弃了。”
“为什么?”
“不为什么,”他耸耸肩笑了一下,“我追女孩是认真的,但我也看得出来有些东西是我追不到的。不是我不够好,是那个位置本来就不属于我。”
他说完就坐回工位戴上耳机打开开发环境。我看着他微微佝偻的背影,心里说不上什么滋味。
接下来的日子,一切开始慢慢、笨拙地回到正轨。
工作上我和姜澜依旧保持着上下级关系。她会在我提交的方案上圈出每一个不严谨的地方,会在技术评审会上当着一群人的面质疑我的架构设计,会在需求排期时把我逼到墙角说“这个时间点必须交付”。我偶尔也会在她做的决策有漏洞时直接提出来,有时候语气并不算温和。
有一回为了一个支付系统容灾方案,我们在会议室里争论了将近一个小时。她说我是过度设计,我说她风险意识不足,两个人各自摊开数据画架构图推演极端场景,旁边同事看得大气不敢出。最后各退一步定了个折中方案——核心链路做双活,非关键模块降级保底。
“你刚才差点拍桌子,”散会后她跟我说语气里听不出生气,“以后注意点。”
“你先拍的信不信?”我说。
她没忍住嘴角翘了一下,然后迅速板起脸转身走了。
这种工作上的“势均力敌”渐渐变成一种奇怪的舒适感。我们互不迁就互不放水,意见不合时该吵就吵,吵完了该配合就配合。以前我总觉得和领导相处需要处处小心,但跟她在一起工作反而没有这种负担——因为她知道我什么水平,我也知道她不会因为意见不同就给我穿小鞋。
私下里我们开始慢慢重建某种被中断太久的东西。
第一顿饭是在公司楼下面馆吃的。加班到晚上九点多,办公区人走光了,她路过我工位说饿了问我要不要一起吃点东西。我合上电脑跟着她下楼,两个人点了两碗牛肉面面对面坐着呼噜呼噜地吃,谁都没说什么煽情的话。
“今天方案修改版我看了,”她夹起一片牛肉语气随意,“比第一版好很多。”
“你批注逼出来的。”我说。
“那不叫逼,叫指导。”
“你管在文档里写‘这个逻辑有问题重想’叫指导?”
“不然呢?”她挑挑眉毛,“我在总部带人时比这狠多了。”
吃完面我们在楼下站了一会儿。她说打车回去,我说好。她上了车隔着车窗朝我挥挥手,车子汇入夜晚车流,尾灯在夜色中划出两道红色弧线。我看着那两道弧线消失,心里忽然觉得很安静。不是空洞的安静,是被什么东西轻轻填满了的安静。
一周后的周末她忽然给我发消息:“今天有空吗?有个地方想去。”
我回了个“好”。
她发来一个地址,是静安区一家小型美术馆。我到时她已经站在门口了,穿一件驼色风衣,围一条红围巾。那条围巾和三年前她在国王十字车站围的一模一样。我盯着那条围巾看了几秒没说什么。她似乎注意到我目光,耳根微微红了一下但也没解释。
美术馆里正办一个当代摄影展,观众不多安安静静的。我们并排走在一幅幅作品之间,偶尔停下来看看,偶尔低声交谈几句。姜澜在一幅黑白照片前停了很久,照片里是一条空旷的街道下着雨,路灯的光在湿漉漉地面上拖出长长的影子。
“像剑桥。”她说。
“像。”
“那时候在剑桥,”她声音很轻轻得像怕惊动那幅照片里的雨,“我最喜欢下雨天。因为下雨时图书馆人特别少,你总能占到靠窗的位置。”
“然后你会坐我对面,”我接上她的话,“每次都把那杯热巧克力放我电脑旁边,说是让我‘顺便帮忙看着’。”
“因为那杯热巧克力本来就是给你的,”她转过头看着我,眼睛里的光芒温柔得像康河上倒映的灯火,“你知道吗,每次去图书馆前我都会绕路去街角那家咖啡馆排十分钟队,就因为他家热巧克力最浓。”
我愣住了。
“你从来没说过。”
“因为你每次接过杯子都说‘谢谢’,然后继续低头写代码连看都不看我一眼,”姜澜说着嘴角浮起带着几分无奈的弧度,“我当时想,这个人是真傻还是假傻。”
“真傻。”我说。
她笑了一下,转过身继续看那幅照片。阳光从美术馆天窗照进来落在她侧脸上,在眼睛下面投下一小片睫毛的影子。
“我也是真傻,”她说,“傻到以为推开你就是对你好。”
走出美术馆时天色已经暗了,街道两旁梧桐树叶被秋风吹得簌簌作响。我们沿着人行道慢慢走,谁都没提接下来去哪里。
“程屿,”姜澜忽然开口,“你还记不记得国王学院门口那棵树?”
“记得,”我说,“那棵歪脖子的柳树。”
“它还在吗?”
“不知道。没回去看过。”
她沉默一会儿然后停下脚步转过身看着我。
“如果有一天我回去了,你愿意跟我一起去吗?”
风吹过梧桐树,几片枯叶从枝头旋落在我们脚边打着转。我看着姜澜——看她穿驼色风衣站在上海秋天暮色里,围我见过的那条红围巾,用一种小心翼翼不像她的语气,问我一个关于未来而不是过去的问题。
“愿意。”我说。
她低下头用围巾下摆遮住半张脸,但我看到了她弯起来的眼睛。
那天晚上我回到家打开电脑,翻到一个三年没碰过的文件夹。文件夹名字叫“Cambridge”,里面是我们那半年的照片。有在图书馆拍的,有在康河划船时拍的,有在周末集市上拍的。照片里姜澜穿各种各样毛衣,笑的时候露出一排整齐牙齿,眼睛弯成两道好看月牙。
我一张一张翻着,翻到最后一张时手指停住了。那是我们在国王学院门口的合影。照片里我搂着她肩膀,她比着傻乎乎的剪刀手,身后柳树被风吹歪了枝条,天空是英伦特有的铅灰色。
我把这张照片设成了手机桌面。
09
十二月,云帆出了一件大事。
起因是一篇发在技术社区上的匿名文章。文章洋洋洒洒三千多字,详细分析了云帆正在研发的一款智能家居产品的技术架构,指出其存在严重数据安全隐患——用户隐私数据在上传至云端过程中使用过时加密协议,理论上可被中间人攻击截获。
文章写得有理有据,代码级别剖析,附带了抓包数据截图和加密算法逆向分析。一石激起千层浪,文章二十四小时内被转发上万次,多个科技媒体跟进报道,公司公关部电话被打爆。
CEO连夜召开紧急会议。
姜澜从会议室出来时脸色很不好。她径直走到我工位前把手机往桌上一放,屏幕上正是那篇匿名文章。
“看过了吗?”她问。
“看了。”
“你怎么看?”
“文章指出的漏洞是真的,”我顿了顿,“写文章的人水平很高,对系统底层理解很透彻,不像外部人员。要么是现员工,要么是离职的老员工。”
姜澜沉默几秒点点头:“和我判断一样。已让安全组启动内部排查,你跟我一起进应急小组,今晚开始。”
“好。”
应急小组当晚拉起来,十几个人挤在五楼作战室里,白板上密密麻麻写满线索和推论。姜澜坐长桌主位,袖子卷到小臂头发扎成紧实马尾,目光像扫描仪一样扫过每一条信息。
这种状态下的姜澜我见过。三年前在剑桥,有一次她毕业论文遇到几乎无解的数据偏差,也是这个表情——眉心微蹙嘴唇抿成一条线,大脑在以近乎恐怖的速度运转。那次她花了一天一夜找到问题根源,是一组训练数据被人为污染了。
“安全组排查结果出来了,”老方推门进来脸色凝重,“过去三个月内离职技术人员共七个,其中三个有接触过这个模块的权限。但查了他们账号都没有异常操作记录。”
“离职前删了操作日志?”姜澜问。
“技术上说如果对日志系统足够熟悉是可以做到的。”
“把那七个人详细资料拿来,”姜澜站起来走到白板前,“包括他们负责的模块、经手的项目、离职前动向。老周联系HR,我要这几个人离职面谈记录。老方带安全组继续深挖服务器日志,重点关注非工作时间异常访问。程屿负责分析文章里提到的那几个漏洞,看看有没有什么只有内部人员才知道的细节。”
所有人领命而去。姜澜站在白板前手里捏一支马克笔,目光在七个名字上来回扫视。她嘴唇动了一下像在默念什么。
凌晨三点,我说了声:“找到了。”
整个作战室的人同时抬头。
“文章里关于加密协议那段分析,”我把笔记本电脑转向众人,屏幕上是两段代码对比,“这段代码写法有一个很独特的习惯——变量命名时用匈牙利命名法加日期后缀。这种习惯在全公司代码库里很少见。已让工具跑了一遍,能匹配上的只有一个人。”
“谁?”姜澜声音像一把被拉紧的弓弦。
“梁仲恺。前研发部高级工程师,三个月前离职。”
作战室安静了一瞬。梁仲恺这个人我有些印象,技术很强但性格孤傲,在部门里人缘不太好。他离职原因写的是“个人发展”,私下里有传言说他和当时直属领导闹得很不愉快。
“他离职前负责什么项目?”姜澜问。
老周翻开电脑里资料脸色变了一下:“智能家居产品数据同步模块。正好是这次出问题那个模块。”
“离职面谈记录呢?”
HR把扫描件投到大屏幕上。面谈记录里梁仲恺在被问到“对公司有什么建议”时写了一句话:“管理层重业务轻技术,迟早出问题。”
姜澜盯着那行字看了很久,然后把马克笔往桌上一扔。
“动机有了,”她说,“现在需要证据。”
天快亮时安全组终于在服务器日志角落里找到一条异常记录。梁仲恺离职前一天晚上,他的账号在非工作时间登录过系统,访问了数据同步模块核心代码库,并且在访问后三十秒内清除了操作痕迹。三十秒清除动作很快,但没快过底层物理日志。
姜澜拿着这份证据拨通梁仲恺电话。电话开了免提,整个作战室的人都能听见。响几声后对方接起来。
“梁仲恺,我是云帆科技姜澜。”
电话那头安静两秒,传来冷淡男声:“姜总监,有什么事吗?”
“那篇文章是你写的。”
不是疑问句,是陈述句。
梁仲恺沉默几秒后轻笑一声:“有证据吗?”
“离职前一天晚上十一点四十七分,你用VPN远程登录公司内网,访问了数据同步模块代码库,”姜澜语气平静而锐利,“你删了操作日志但物理日志还在。需要我把IP地址和时间戳报给你吗?”
电话那头沉默了。作战室里所有人屏住呼吸。
“是我写的,”梁仲恺终于开口,声音里带着一种疲惫的坦荡,“那个加密漏洞我离职前就发现了,也跟当时领导提过,但没人重视。你们所有人都觉得我小题大做,觉得我把时间花在这种‘非功能性需求’上是浪费。好,既然内部反馈没用,我就用外部方式让你们重视。”
“你知道你的行为给公司造成多大损失吗?”姜澜声音冷下来,“今天开盘后股价已跌了四个点。”
“那是你们管理层应该承担的责任,”梁仲恺不退让,“技术债欠了那么久,总有人要来讨。我只是那个来讨债的人。”
“你完全可以走正当渠道——”
“正当渠道?”梁仲恺笑了一声,那声笑里带着浓重讽刺,“我在公司两年,提了不下十次安全风险,每一次都被用‘没发生过实际事故’理由打回来。你知道眼睁睁看着自己做的产品一天天烂掉是什么感觉吗?你不知道,你是管理层,你只关心KPI。”
姜澜握着电话的手指节泛白。
“你说得对,以前安全意识确实不够,”她声音放慢但力度不减,“我在上海上任后第一件事就是推动安全流程改造。你发现的这个漏洞,两周前已被安全测试团队标记了,修复方案正在排期。”
电话那头梁仲恺似乎愣了一下:“你说什么?”
“你离职后很多事变了,”姜澜说,“但你没给这些改变任何机会,选择了你认为最快最能解恨的方式。那篇文章让你解恨了吗?”
长久沉默。
“说实话没有,”梁仲恺声音低下去,那股刺人冷意消失了,剩下沙哑疲惫嗓音,“发出去后我就后悔了。那些数据是我抓包抓到的,但我没意识到的是文章一旦发出去,受伤的不只管理层,还有那些跟我一起熬过通宵的同事。他们还在那里,还在维护那些系统。”
姜澜靠在椅背上闭上眼睛。作战室安静得只剩空调低鸣。
“你现在有两个选择,”姜澜睁眼语气恢复不带感情的职业化,“第一,公开道歉,承认那篇文章出于个人不满发布,并非完全基于客观事实。第二,我们走法律程序。”
“我选第一个。”梁仲恺几乎没犹豫。
“好。道歉声明内容由双方共同确认,今晚前发布。”
“可以。”
“另外,”姜澜顿了顿,“你说得对,技术债总要有人来还。所以如果你愿意,我想请你回来——不是回原来岗位,而是加入新成立的安全审计组。你的技术能力我认可,你对安全问题的敏感度也是我们需要的。”
作战室响起一阵轻微骚动。老周张了张嘴像想说什么,最终没出声。
电话那头梁仲恺沉默了很长时间。
“你是第一个跟我说这种话的管理层,”他说,“以前他们都只想把我弄走。”
“你考虑一下,三天内给我答复。”
挂断电话后姜澜把手机放在桌上揉眉心。她看起来疲惫极了,但眼睛里的光没熄灭。
“老周,你觉得我做错了吗?”她问。
老周沉默几秒缓缓摇头:“不好说。但有一点可以肯定——如果是我坐你位置上,我没这个魄力。”
三天后梁仲恺道歉声明在技术社区发布。又过一周他接受姜澜邀请回到云帆。这件事在公司内部引起不小震动,有人说姜澜手腕高超,也有人说她这是给自己埋雷。但不管别人怎么说,她始终没解释自己为什么这么做。
有天晚上加班时我问了她这个问题。她正吃一碗泡面,听到问题后放下叉子想了想。
“因为我以前也犯过类似的错,”她说声音很平静,“我选择了自己扛所有事,替你在内的人做决定。后来发现这种方式代价太大了。把话说开把人留下,比把人推开难得多,但也对得多。”
她说完低下头继续吃泡面,像只是在说一件和工作相关不太重要的事。但我知道不是。
10
梁仲恺事件后研发部工作节奏彻底变了。姜澜用这次危机作为契机,在全部门范围推动了一次系统性技术债务清理和安全流程升级。数据中台、支付系统、用户隐私保护三个方向同时铺开,每个人工作量翻倍不止。但与之前不同的是这次没人抱怨。因为所有人都看到了那篇文章带来的后果,也看到了姜澜在应对危机时展现出的担当和能力。
赵子骞被调到安全审计组,和梁仲恺一起负责全部门安全审查。这个安排让他一开始很不适应——从一个追女孩失败的人变成一个每天要和“前情敌”共事的人,这种感觉大概不会太好。但不到两周他就和梁仲恺打成一片,两人经常为了一个安全策略争论得面红耳赤,争完了又勾肩搭背去楼下买咖啡。
“你那个兄弟,技术底子不错,”梁仲恺有一次跟我说起赵子骞,语气里难得带几分赞许,“就是脑子太轴,想不明白的事非要一条路走到黑。”
“他追姜总监的事你知道?”我问。
“全公司谁不知道?”梁仲恺笑了一声,“不过说实话那小子放下的速度比我预想的快多了。一般人追不到手总会有点不甘心,他倒好,看清形势后掉头就走一点都不拖泥带水。”
“他说那个位置本来就不属于他。”
“确实,”梁仲恺看我一眼,眼神里藏着一种了然的意味,“那个位置从来都是你的。”
我没接话。
十二月中旬,数据中台安全升级项目进入最后压力测试阶段。这个项目涉及公司最核心交易系统,任何一个环节出问题都会引发生产事故,因此所有人都绷紧神经。
压力测试当晚,姜澜把我、赵子骞、梁仲恺和老方叫到作战室,屏幕上实时跳动各项监控数据。第一轮还算顺利,吞吐量和响应时间都在预期范围内。但从第二轮开始数据曲线出现不正常抖动。
“延迟在上升,”赵子骞盯着屏幕眉头紧皱,“并发数才到预期百分之六十就开始抖了,不对。”
“数据库连接池是不是爆了?”老方问。
“不是,”梁仲恺调出另一组监控面板快速扫一眼,“连接池还有富余,问题出在缓存层。缓存命中率不对——只有百分之四十,正常应该在百分之九十以上。”
所有人目光聚焦在那条持续下跌的缓存命中率曲线上。我看着屏幕大脑飞速运转,缓存策略、数据分区、热点分布,各种可能性在脑子里并行推演。
“缓存雪崩,”我忽然开口,“新增安全校验逻辑改了缓存键生成规则,导致大部分缓存同时失效。不是命中率问题,是缓存键全变了。”
姜澜走到屏幕前盯着监控数据看了几秒:“确认吗?”
“九成把握。”
“解决方式呢?”
“两种,”我快速在脑子里过一遍方案,“第一回滚缓存键生成规则,用渐进式切换代替一次性切换。第二给缓存预热,在流量进来前先把热点数据加载好。建议两者同时做。”
“回滚需要多长时间?”
“给我两个小时。”
“老方通知运维组,压力测试暂停,切换到备用环境,”姜澜转过身语速很快但每个字清晰有力,“程屿改代码,梁仲恺做代码审查,赵子骞盯监控。一个半小时后我要看到修复版本。”
“收到。”
我在键盘前坐定打开缓存模块代码。周围一切声音渐渐退远——赵子骞打电话声、老方敲键盘声、梁仲恺偶尔插嘴提意见声——全变成模糊背景噪音。视野里只剩那些代码行,在屏幕上流动重组变形,一条条在脑子里重新排列。
七十七分钟后我提交修复版本。梁仲恺花十三分钟做代码审查指出一处并发竞争问题,我花六分钟改掉。九十六分钟后修复版本部署到测试环境。压力测试第二轮,缓存命中率稳稳回到百分之九十二。延迟曲线平滑得像一条熨过的丝绸。
作战室响起一阵低低欢呼。赵子骞往后一靠整个人陷进椅子里长长出口气。梁仲恺难得露出笑容朝我竖个大拇指。
姜澜走到我旁边看一眼屏幕上的监控数据点点头:“可以了,今晚就到这儿,大家辛苦了。”
众人收拾东西陆续离开作战室。我还在整理变更记录,姜澜坐我旁边椅子上没走。等最后一个人关上门离开后她忽然开口:“你刚才说‘九成把握’时,万一那剩下的一成是对的呢?”
“那就丢人了。”我说。
她笑了一下,很轻很短,像被风吹过水面泛起的涟漪。
“你从没在我面前丢过人,”她说,“三年前没有,三年后也没有。”
我停下敲键盘的手转过头看她。她靠在椅背上头微微偏向一边,脸上疲惫在暖黄灯光下格外清晰,但她看着我的目光是柔软的。那种柔软和办公室里雷厉风行的女总监完全不搭,却和三年前那个在图书馆靠窗位置喝热巧克力的女孩如出一辙。
“梁仲恺跟我说了句话,”我说,“他说你身边那个位置从来都是我的。”
姜澜眼睛微微睁大,然后脸颊浮起一层很淡的红晕。
“那个梁仲恺,”她别过头去声音里带着一丝不自在,“才回来几天就这么八卦。”
“他说的是实话吗?”
姜澜没立刻回答。她站起身走到窗边,透过落地窗看外面深夜的陆家嘴。东方明珠灯光在夜幕中明明灭灭,远处黄浦江像一条深色绸带蜿蜒穿过这座永不入眠的城市。
“程屿,你还记得你上次问我什么吗?”她背对着我声音很轻。
“哪个问题?”
“你问我,你心里那个洞还能不能填上。”
我站起来走到她旁边。落地窗上倒映出两个人影子,肩并肩站着,像两棵在夜色中并排生长的树。
“我说我愿意试试,”我说,“这句话现在还算数。”
姜澜转过头看我,眼尾微微泛红但眼底带着笑意。
“那你要不要再试一次?”
“试什么?”
“试——”她深吸一口气像攒足勇气,“试着做我男朋友。这次我不会再跑了。”
窗外城市灯火通明,黄浦江上游船拖着长长灯影缓缓驶过。我看一眼玻璃上倒映的两个人影——一个穿格子衬衫头发乱糟糟的程序员,一个穿西装满脸倦容的女总监。看起来很不搭但又意外和谐。
“好。”我说。
“就一个‘好’字?”她皱眉。
“程序员的浪漫,你又不是不知道。”我说。
她瞪我一眼然后笑了出来。那声笑在深夜作战室里回荡,清脆得像有人打翻一盒玻璃珠,珠子一颗颗滚落地上每一颗都在灯光下闪闪发光。
“圣诞节快到了,”她说,“陪我出去走走?”
“好。”
“今年上海冬天比剑桥暖和,”她重新转向窗外声音变得有些悠远,“但那年在康河上划船时零下好几度你都不肯戴手套,手冻得跟胡萝卜似的还要帮我拍照。那些照片还在吗?”
“在,”我说,“前两天刚翻出来设成了手机桌面。”
姜澜偏过头看我,眼睛里有什么东西亮了一下,像一颗被点亮的星星。
“哪一张?”
“国王学院门口那张。你比剪刀手,我搂着你。”
“那张我拍得不好看,”她说但嘴角弧度出卖了真实想法,“刘海被风吹歪了。”
“好看,”我说,“一直都好看。”
她低下头用指尖在玻璃窗上画了一个看不清形状的图案。过了很久,她用一种轻得像怕惊动什么东西的声音说了一句话。
“程屿,谢谢你没放弃我。”
“彼此彼此。”我说。
那天晚上走出办公楼时上海天空难得放晴。冬天夜空干净得像一块洗过的深蓝色玻璃,几颗最亮的星星挂在陆家嘴摩天大楼顶端,努力和满城灯光争辉。姜澜走在前面脚步轻快,高跟鞋在花岗岩地面上叩出清脆节奏。走到路边时她忽然停下来转过身仰头看天空。
“有一颗很亮,”她伸手指着天上,“看到了吗?”
我顺着她手指方向看过去,确实有一颗星星在东方明珠塔尖旁夜空里格外明亮。
“看到了。”我说。
“在剑桥时我也经常看到一颗特别亮的星,”她把双手插进大衣口袋,呼出白气在冷空气中化作小小一团雾,“那时总觉得它在看我。后来回国了,深圳天空太亮看不见星星。找了三年都没找到。”
“现在找到了?”
“找到了,”她转过身看我,眼睛里倒映那颗星星的光芒,“就在刚才。”
风吹过世纪大道两旁行道树,枯枝在路灯下投出纷乱影子。我看着面前这个站在上海冬夜里的女人,她眼睛里有一颗找了三年才重新找到的星星。我走过去握住她的手。她手很凉,指节纤细,掌心里有敲键盘磨出来的薄茧。她愣了一下然后反过来扣住我手指,十指交握用力得像要把三年空缺一次性补回来。
“走吧,”她说,“太晚了。”
“嗯。”
但谁都没迈步。就那样站在深冬街边握着彼此的手,看那颗星星挂在东方明珠塔尖旁边一闪一闪,像某个迟到三年的回答。
11
圣诞节前一周,姜澜在部门群里发了条消息:平安夜她请全部门吃饭,地点在外滩一家能看江景的餐厅。
群里瞬间沸腾。赵子骞第一个回复:“姜总监大气!我必到!”后面跟了一长串“+1”,整整齐齐在屏幕上排了一列。
平安夜那天上海下了小雨。雨水把外滩石板路洗得发亮,万国建筑群灯火倒映在积水中,像地面也镶嵌了一条流淌的星河。姜澜订的餐厅在江边一栋老建筑顶楼,落地窗外就是黄浦江最宽阔的那个弯。来的人比预想还多,不仅研发部人到了,产品部许曼、市场部几个熟人也来了,满满当当坐了三桌。
姜澜今天没穿西装,换一件酒红色毛衣和黑色长裙,头发散下来披在肩上,耳垂缀两颗珍珠。她从一桌走到另一桌挨个敬酒、道谢、说几句贴心话,笑容明媚得像窗外那些在雨夜中依然灿烂的灯光。
赵子骞端着酒杯走过来在我旁边坐下,目光追着姜澜背影看了一会儿,然后转过头看我。
“你跟她在一起了?”他问。
我端起酒杯喝一口没否认。
“我就知道,”赵子骞靠在椅背上长长呼一口气,像把压了很久的什么东西吐出来,“那天你去她办公室送礼物,出来后整个人都不一样了。我当时就猜到了。”
“抱歉,”我说,“一直没告诉你。”
“道什么歉?”赵子骞笑着给我一拳,“我跟你说过,那个位置本来就不属于我。不属于我的东西我不会硬抢。更何况你们俩之间那种东西,我抢不走也没人抢得走。”
他端起酒杯和我碰一下仰头干了。
“不过我得跟你说清楚,”他放下杯子正色道,“你要是敢对她不好,我这个前追求者第一个不答应。”
“行。”我说。
“还有,以后在公司注意点别太明显。虽说公司没明文禁止办公室恋情,但你们俩毕竟是上下级关系,被人说闲话对谁都不好。”
“知道了,”我看着他,忽然觉得这个平时大大咧咧的家伙心思比谁都细,“赵子骞,谢了。”
“谢什么谢,肉麻,”他站起来拍拍我肩膀,“我去敬姜总监一杯,好歹是第一个追过她的人,这个身份得让她记住。”
我笑着摇摇头,看他端着酒杯大步流星朝姜澜走过去。他跟姜澜碰杯时不知说了什么,姜澜先愣了一下然后笑出声,笑完认真跟他握了握手,像在达成某种正式的和解。
聚餐结束后大部分人散了,只剩几个人还在露台上看江景。雨水已停,空气里弥漫着雨后特有的清冽和湿润。黄浦江两岸圣诞灯饰全亮起来,红色金色绿色在深蓝夜幕下连成一片流光溢彩的梦境。
姜澜靠在露台栏杆上手里捧一杯热红酒,蒸腾水汽模糊了她的眉眼。
“赵子骞刚跟我说,”她抿一口红酒嘴角翘起来,“他说他虽然输了,但输给的人是他认可的兄弟,所以不算丢人。”
“他还说什么?”
“还说让我别在工作上欺负你,”姜澜笑得眉眼弯弯,“我说这恐怕不行,欺负他是我的工作乐趣之一。”
“这话是你说的还是他说的?”
“我说的。”她理直气壮。
露台上其他人不知什么时候都走了,只剩我和她站在满城灯火里。江面传来轮船低沉汽笛声,远处海关大钟敲响十一下。
“程屿,”姜澜放下杯子转过身面对我,“圣诞快乐。”
“圣诞快乐。”
“有礼物给你。”
她从包里拿出一个扁扁的盒子,包装很素净,深蓝色纸银色丝带。我接过来拆开,里面是一张照片装在一个简单木质相框里。照片上是我和她,坐在剑桥那棵歪脖子柳树下。阳光从柳条缝隙漏下来在我们身上投下斑驳光斑。她靠在树上膝盖摊一本书,我坐她旁边低头写着什么。
这张照片我从没见过。
“谁拍的?”我抬头问她,声音有些不稳。
“许曼。”
“许曼?”
“对,产品部那个许曼,”姜澜看我表情笑了起来,“她是我清华学姐,高我一届。那年她也在剑桥,只是不同专业。有一天她在河边散步看到我们俩坐在柳树下,就用手机抓拍了这张。我来上海后联系上她,跟她说起以前的事,她把照片发给了我。”
我低下头重新看那张照片。照片里两个人看起来那么年轻那么无所畏惧,像觉得整个世界都踩在脚下。他们不知道即将到来的分别,不知道未来会隔着三年空白和一千多公里距离,更不知道命运会在某个不经意路口让他们重新相遇。
“这是我收过最好的圣诞礼物。”我说。
姜澜看着我,眼睛很亮,不知道是倒映了满城灯火还是含着没出口的情绪。
“三年前就想给你的,”她说,“但还没来得及我们就分开了。现在终于有机会送出去了。”
我把相框小心放进外套内侧口袋,然后从自己包里拿出一个盒子递给她。盒子比她的包装丑多了,纯白纸盒连根丝带都没有,一看就是临时包的。她接过去打开,里面是一条围巾——驼色羊毛的,和她那条红围巾同个牌子。
“上次去美术馆,”我说,“你说红围巾是在剑桥周末集市上买的。我后来找到那个品牌官网订了这条。驼色没红色好看,但更百搭。”
姜澜把围巾从盒子里拿出来摸了摸面料,然后把脸埋进去。过了好一会儿才抬头,眼圈红了但嘴角上扬着。
“你还记不记得,”她声音软软的带一点鼻音,“在剑桥时我抱怨过,英国冬天太冷了,风从领口灌进去冻得要命。你说等回国给我买条最暖和的围巾。这句话我等你等了三年。”
我张了张嘴想说点什么,嗓子像被什么堵住。
“等到了,”姜澜把围巾围在脖子上绕两圈,把下半张脸埋进柔软驼色羊毛里,“很暖和。”
江风吹过来,裹着雨后清冽水汽和远处教堂飘来的圣诞颂歌。姜澜站在露台栏杆边,脖子上围新围巾,酒红毛衣外披深灰大衣,身后是这座不夜城最璀璨的灯火。
“程屿,”她忽然叫我名字语气变得认真,“有件事想跟你商量。”
“什么事?”
“总部CEO上周又给我打了电话,”她转过身手肘撑栏杆,目光越过江面投向对岸高楼,“他说深圳那边有个更大业务板块需要人带,问我愿不愿意明年春天调回去,升一级带将近两百人团队。”
我心往下沉了一下:“你怎么回复?”
“我说需要考虑,”姜澜转过头看我,眼神里有期待也有紧张,“这次不是我自己决定。我答应过你,以后不会再一个人做决定了。所以我想问你——你怎么想?”
江风把她头发吹起来,几缕碎发贴脸颊上。我伸手帮她把头发别到耳后,手指碰到她皮肤凉凉的,带着雨后空气的湿润。
“你想去吗?”我问。
“说实话想,”她没回避我目光,“那个业务板块负责公司智能硬件领域最重要一块布局,挑战很大但也很有吸引力。而且我在深圳待了三年,那边团队资源人脉都在。”
“那就去。”
姜澜愣了一下:“就这么简单?”
“这次不让你去,”我收回手插进自己口袋,“三年后你就会变成另一个姜澜——那个因为放弃自己想做的事,心里始终有一块不甘心的空洞的姜澜。我不想再看到那样的你了。”
她低下头安静了很久。露台上风铃被江风吹得叮叮当当响,远处外滩人潮还在涌动,圣诞气氛笼罩这座城市每个角落。
“那上海呢?”她抬头眼眶又红了,“你怎么办?”
“上海和深圳,飞机两小时,”我说,“周末能飞,长假能待久点。而且我也可以申请调到深圳总部去,技术岗不像管理岗那么受地域限制。”
“你真愿意?”她声音在发抖。
“你觉得我说的哪句话像假话?”
姜澜盯着我看了几秒然后忽然笑了。那声笑里带着还没干的泪意,在安静露台上听起来格外响亮。
“你以前不是这样的,”她说,“以前你什么都顺着我,我说什么你都点头。”
“人是会变的,”我说,“你变了我也变了。我们都变成了更好的人。”
她从栏杆边走过来站我面前仰头看我。睫毛上还挂一颗没干的泪珠,在灯光下亮晶晶像一颗迷你星星。
“那这次我们一起做决定。”
“好。”
她踮起脚尖在我嘴唇上轻轻碰了一下然后退开,脸红得像她身上那件酒红毛衣。
“这个不算,”她说,“刚才风太大没站稳。”
“那你站稳一点再来一次。”
她笑着往后退一步转过身,把围巾往上拉拉遮住大半张脸。然后背对我举起右手比了个OK手势。
“明年春天的事明年春天再说,”她声音从围巾里传出来闷闷的却带着笑意,“今晚的任务是把圣诞节过完。”
我跟在她身后走出餐厅,走进外滩平安夜汹涌人潮。南京路上挤满戴圣诞帽的年轻人和牵手的情侣,街头艺人弹吉他唱圣诞歌,霓虹灯把整条街染成流动的彩色河流。姜澜走在我前面半步,时不时停下来看橱窗里的圣诞装饰,回头朝我笑一下再继续往前走。那条驼色围巾绕在她脖子上,在夜晚人潮中格外显眼。
她走了几步又停下来回头看我。
“程屿。”
“嗯?”
“那个问题的答案,”她眼睛亮亮的,嘴角弧度温柔得像康河上荡漾的水波,“你现在能回答了吗?”
我想起两个月前团建那晚的老张,想起他问我的问题——“这辈子有没有真心喜欢过一个人?现在还喜欢吗?”想起我当时说“不回答”时姜澜坐在长桌另一端用拇指慢慢画杯沿,脸上是路灯照不亮的表情。
我快走两步追上她,在人潮最汹涌的十字路口握住她的手。
“喜欢过,”我说,“现在还喜欢。”
满城圣诞灯光在这一刻同时闪了一下,像这座城市替她眨了下眼睛。姜澜低下头把脸埋进那条驼色围巾里,过了很久才重新抬起来。她眼睛亮得像把黄浦江两岸所有灯光都收进了瞳孔里。
“我也是,”她说,“一直是你。”
远处外滩钟楼敲响午夜钟声。平安夜过去圣诞节来了。江面上所有轮船一起拉响汽笛,低沉悠长声音在夜空中回荡,像整座城市在为某个答案做注脚。
12
春天来时姜澜调回了深圳。
调令下来那天整个研发部都去送了。许曼抱着她哭了一鼻子,赵子骞跟她握手说“深圳那边要有人欺负你跟我说”,梁仲恺站人群外面朝她微微点点头说了句“姜总监保重”。
她一个一个道别,和每个人都说了几句话。轮到我时她只笑了笑,说:“浦东机场T2航站楼下周五。”
周五那天我请了一天假送她去机场。她只带一个登机箱,其余行李提前寄到深圳。值机、安检、走到登机口,一路没怎么说话。
“到了给我发消息。”我说。
“好。”
“到深圳别一忙就不吃饭。”
“好。”
“晚上加班别太晚,你胃不好。”
姜澜看着我眼睛一眨不眨,像要把我此刻的样子刻进视网膜。
“程屿,”她叫我名字,语气很轻,“三年前在剑桥我们最后一次见面时,我没回头看你。”
“我知道。”
“因为我怕一回头就走不了了。”她说到这里深吸一口气站直身体,“这次不一样。这次我会回来。每个周末每个长假每次能请假的时候,我都会回来。”
“好。”
她笑了一下伸手帮我理了理衬衫领口:“你怎么就知道说‘好’?”
“因为等你这件事,”我握住她手腕,“我练了三年,已经很熟了。”
她用力闭了下眼再睁开时眼眶全是亮晶晶水光,但她没让它们掉下来。只踮起脚尖在我额头上印了一个吻,然后转身走向登机口。
走出几步后她回过头朝我挥挥手。
“程屿!”
“嗯?”
“九又四分之三站台!”她声音穿过机场嘈杂人声清清楚楚传进我耳朵里,“暑假一起去!”
“好!”
她笑了。那是我见过最好看的笑——明媚的笃定的带着一点骄傲的,和当年在国王学院门口比剪刀手时那个女孩一模一样,又和那个女孩完全不同。
三年时间改变了很多。让她从剑桥河边那个爱喝热巧克力的女孩变成能独当一面的总监,也让我从一个把心事全藏在代码里的程序员变成学会开口说“我还喜欢”的人。
但有些东西没变。那些东西藏在她的杯垫里我的照片里,藏在深夜作战室的键盘声中外滩平安夜的钟声里,藏在每一次她说“你能不能再试一次”和我回答“好”之间的沉默里。
那是我花了三年才学会的。不长不短,刚好够一个人重新相信另一个人。
*全文完*
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.