分居后的第七天,刘星的生活进入了一种诡异的新常态。
每天早上六点半起床,洗漱,做简单的早餐——通常是速冻水饺或面条。七点叫醒清清,帮他穿衣服,喂他吃饭。七点半送清清去幼儿园,然后挤地铁去公司。晚上六点接清清回家,陪他玩一会儿,哄他睡觉。九点以后,才是属于他自己的时间——如果不用加班的话。
张颖搬去了单位附近的一居室。他们约定,周末轮流带清清。这周清清跟刘星,下周跟张颖。平时两人通过微信沟通孩子的情况,语气客气得像在交接工作。
“清清今天在幼儿园吃了两碗饭。”
“好,他最近胃口不错。”
“老师说明天有亲子活动,你能去吗?”
“明天有会,你去吧。”
“好。”
对话简短,高效,没有一句多余的话。刘星有时候会盯着手机屏幕发呆,想起以前张颖还会发些清清的可爱照片,配上“你看儿子多棒”之类的文字。现在,连照片都没有了。
周五下午,刘星正在工位上修改项目文档,李总的电话打了进来。
“刘星,马上来我办公室,紧急会议。”
声音里的凝重让刘星心里一沉。他关掉文档,拿起笔记本,快步走向李总办公室。
推门进去时,里面已经坐了两个人——王总通过视频会议接入了,还有赵明,也出现在屏幕里。三个人的脸色都很难看。
“坐。”李总指了指沙发。
刘星坐下,打开笔记本。屏幕上,王总的背景是上海银行的会议室,赵明则在一个装修豪华的办公室里。
“刘工,人都到齐了,我就直说了。”王总开门见山,“上海项目出大问题了。银行那边今天上午开了内部会议,决定对我们进行全面审计。”
“审计?”刘星一愣,“为什么?系统不是已经稳定运行两周了吗?”
“不是技术问题。”赵明接话,声音冷得像冰,“是合规问题。银行在内部审计时发现,我们项目中使用的部分开源组件,存在严重的许可证冲突。”
刘星的心猛地一沉。开源许可证冲突——这是软件开发中最容易踩的雷区之一。不同的开源组件有不同的使用条款,有些要求公开衍生代码,有些禁止商业使用,一旦混用不当,就可能引发法律纠纷。
“具体是哪些组件?”刘星问,声音有些发干。
赵明发过来一份文档。刘星快速浏览,越看心越凉。文档里列出了七个有问题的组件,其中三个是严格禁止商业使用的GPL许可证,两个是要求公开代码的AGPL许可证,还有两个虽然许可证宽松,但版本太旧,存在已知的安全漏洞。
“这些组件……是谁选用的?”刘星问。
会议室里沉默了几秒。王总叹了口气:“是上海团队前期选的。当时为了赶进度,没有做详细的许可证审查。刘工,我记得你在架构评审时提过开源组件的问题?”
刘星想起来了。三个月前,在项目初期架构评审会上,他确实提过要对所有开源组件进行许可证审查。但当时上海团队的负责人陈涛信誓旦旦地说:“王总放心,我们都审查过了,没问题。”而王总为了赶工期,也就没再深究。
“我当时提了,但……”刘星不知道该怎么说下去。
“现在不是追责的时候。”李总打断了他,“问题是,银行要求我们在两周内解决所有许可证问题,否则就要中止合同,并保留追诉的权利。”
“两周?”刘星几乎要跳起来,“这不可能!替换这些核心组件,至少要重新开发三个模块,测试时间都不够!”
“我也跟银行这么说了。”王总苦笑,“但他们的新合规总监是个海归,对开源合规极其严格。他说,要么两周内解决,要么他们换供应商。而且……他还暗示,如果问题不解决,可能会把这件事捅给媒体。”
会议室里的空气仿佛凝固了。刘星感到后背发冷。如果这件事被媒体曝光,不仅仅是这个项目黄了的问题,整个公司的声誉都会受损。到时候,别说晋升加薪,能不能保住工作都是问题。
“赵总,您有什么建议?”李总看向赵明。
赵明推了推眼镜,镜片后的眼睛闪着冷光:“我的建议是,成立紧急攻关小组,刘工任组长,调动全公司最精锐的技术力量,二十四小时轮班,必须在两周内解决问题。”
“人员呢?”刘星问,“现在项目组的人手本来就不够,还要抽调精锐……”
“从其他项目抽调。”李总一锤定音,“刘星,这个事你必须扛起来。你是最了解项目的人,也是技术最全面的。只要你能解决这个问题,公司不会亏待你。”
不会亏待你。这句话刘星听了太多次。每一次都意味着更多的压力,更少的睡眠,更深的疲惫。但他没有选择。房贷要还,清清要养,分居后的生活成本更高了——他需要这份工作,需要这份工资。
“好。”他听见自己说,“但我需要几个条件。”
“你说。”
“第一,攻关小组必须有绝对权限,可以调用公司所有技术资源。第二,这两周内,小组成员不参与任何其他工作,所有时间都投入这个项目。第三……”刘星顿了顿,“如果按时完成任务,项目奖金要翻倍。”
李总和王总对视了一眼。王总点点头:“奖金没问题。只要能保住项目,钱不是问题。”
“那就这么定了。”李总站起来,“刘星,你现在就去组织人手。今天下班前,我要看到攻关计划。”
会议结束了。刘星走出办公室时,感觉脚步都是虚浮的。两周,替换七个核心组件,这几乎是不可能完成的任务。但必须完成,因为完不成,他就可能失业。
回到工位,他打开项目代码库,开始分析那些有问题的组件。越分析,心越沉。其中两个GPL组件是整个数据同步模块的核心,替换它们意味着要重写近三万行代码。而数据同步模块,正是之前出过严重事故的那个模块。
手机震了一下,是张颖发来的微信:“明天清清跟我,我早上九点去接他。你晚上把他东西收拾好。”
刘星盯着那条消息,突然很想回一句:“我可能又要加班了,明天早上能不能晚点来?”但他没有。分居后,他不想再让张颖觉得他是个不负责任的父亲——虽然事实上,他可能确实是。
“好。”他回复。
然后他开始写攻关小组的人员名单。第一个写的是小林——年轻,聪明,肯吃苦。第二个是老陈——经验丰富,擅长处理复杂问题。第三个……他犹豫了一下,写下了陈涛的名字。虽然上海团队捅了娄子,但陈涛对项目最熟悉,关键时刻需要他。
名单写完,他发给李总审批。五分钟后,批复回来了:“同意。立即启动。”
刘星站起来,拍了拍手:“所有人,会议室集合,紧急会议。”
十分钟后,项目组的六个人坐在会议室里,脸色凝重。刘星把情况简单说了一遍,然后把攻关计划投在屏幕上。
“两周,七个组件,三个模块需要重写。”刘星的声音很平静,但每个人都能听出平静下的压力,“从今天开始,所有人取消休假,每天工作不少于十二小时,周末全勤。有问题吗?”
会议室里一片沉默。小林张了张嘴,想说什么,但最终还是低下了头。
“刘哥,”老陈开口了,声音里带着疲惫,“我老婆下周四生日,早就说好要陪她……”
“老陈,抱歉。”刘星打断他,“这次真的没办法。项目要是丢了,咱们可能都得走人。”
老陈沉默了。他是老员工,四十岁了,家里有两个孩子,还有房贷。他比谁都清楚失业意味着什么。
“我没问题。”小林举起手,“我单身,加班就加班。”
其他人也陆续表态。最后轮到陈涛——他坐在角落里,一直低着头。
“陈工,”刘星看着他,“上海那边的情况你最熟悉,这次需要你全力配合。”
陈涛抬起头,眼睛红红的:“刘工,对不起,都是我的疏忽……”
“现在不是说对不起的时候。”刘星说,“现在是解决问题的时候。你能配合吗?”
“能。”陈涛用力点头,“我一定尽全力。”
会议结束后,刘星回到工位,开始写详细的技术方案。窗外的天色渐渐暗下来,办公室里的灯一盏盏亮起。同事们都在埋头工作,键盘声此起彼伏,像一场无声的战役。
晚上八点,刘星才想起还没吃晚饭。他打开外卖软件,点了份最便宜的炒饭。等外卖的时候,他给母亲打了个电话。
“妈,清清睡了吗?”
“刚睡下。”母亲的声音里带着担忧,“星星,你又加班?”
“嗯,项目出了点问题,这两周可能都要很晚。”
“那你注意身体,别太累。清清在我这儿你放心,你专心工作。”
“谢谢妈。”刘星顿了顿,“那个……张颖最近联系您了吗?”
电话那头沉默了一下:“昨天打了个电话,问了问清清的情况。星星,你们……到底怎么了?”
“没什么,就是暂时分开住一段时间。”刘星说得轻描淡写,“妈,您别操心,我们都挺好的。”
“好什么好!”母亲的声音突然激动起来,“哪有夫妻分居还叫好的?星星,你是不是做了什么对不起张颖的事?”
“没有,妈,真的没有。”刘星感到一阵疲惫,“就是我们都需要一点空间,想清楚一些事情。”
“想清楚?都结婚三年了,孩子都有了,还有什么想不清楚的?”母亲叹了口气,“星星,妈知道你压力大,但婚姻不是儿戏。张颖是个好媳妇,你别……”
“妈,我还有工作,先挂了。”刘星打断母亲,“您早点休息。”
挂断电话,他靠在椅背上,闭上了眼睛。母亲的话像针一样扎在心里。是啊,婚姻不是儿戏,但他和张颖的婚姻,从一开始就像一场仓促的交易。现在交易出了问题,是继续硬撑,还是承认失败?
他不知道。他只知道,现在他必须先把工作上的危机度过。否则,连思考这些问题的资格都没有。
外卖到了。刘星一边吃炒饭,一边继续写方案。炒饭很油,很难吃,但他吃得很快——时间宝贵,每一分钟都不能浪费。
晚上十一点,技术方案终于写完了。他发给小组的每个人,然后在群里发了一条消息:“方案已发,明天早上九点开会讨论。今晚大家早点休息,明天开始打硬仗。”
小林很快回复:“刘哥,你还不走?”
“马上就走。”
但实际上,刘星又在工位上坐了一个小时。他打开上海项目的代码库,开始一行行看那些需要替换的组件。复杂的逻辑,交织的依赖,像一张巨大的网,把他牢牢困住。
手机又震了。这次是刘莹。
“刘工,您睡了吗?洛杉矶现在是早上,我刚起床,突然很想您。”
刘星盯着那条消息,手指在键盘上方悬停。他想回复:“我也想你。”想说:“我这边又出事了,压力好大。”想说:“你能回来吗?”
但他最后回复的是:“还没睡,在加班。你好好上课。”
“又加班?您要注意身体啊。对了,钱我已经还到您支付宝了,您查收一下。”
刘星打开支付宝,果然看到一笔转账——两万二。他盯着那个数字,突然觉得很讽刺。钱还了,但那些温暖的瞬间,那些心动的情感,也能像钱一样还得清吗?
“收到了,谢谢。”他回复。
“刘工,我下个月有假期,想回国一趟。您……想见我吗?”
这个问题太直接,刘星愣住了。想见吗?当然想。在无数个疲惫的深夜,他都会想起上海的那些日子,想起刘莹的笑容,想起那些短暂的自由和温暖。但现在,他有什么资格见她?一个正在分居的丈夫,一个可能失业的父亲,一个被工作压垮的中年男人。
“等你回来再说吧。”他最后这样回复,“很晚了,我要回家了。”
“好,您路上小心。”
刘星关掉手机,收拾东西准备离开。走出办公楼时,已经是凌晨十二点半。BJ深秋的夜晚很冷,风像刀子一样刮在脸上。街道上空荡荡的,只有偶尔驶过的出租车,亮着“空车”的红灯,像这座城市疲惫的眼睛。
他走向地铁站,却发现末班车已经开走了。只好在路边等出租车。等了二十分钟,才拦到一辆。
车上,司机是个健谈的中年男人:“这么晚才下班?干IT的吧?”
“嗯。”
“不容易啊。我儿子也是干IT的,天天加班,头发都快掉光了。”司机从后视镜里看他,“你们这行赚钱是多,但太伤身体。我儿子才二十八,就有胃病了。”
刘星苦笑。赚钱多?也许吧,但那些钱都流进了房贷、车贷、孩子的教育里,自己一分都没剩下。至于身体……他已经很久没有体检了,不敢去,怕查出什么病来,治不起。
到家时,已经凌晨一点多了。母亲和清清早就睡了。他轻手轻脚地洗漱,躺在主卧的床上。床很大,空空荡荡的。他想起张颖在的时候,虽然两人背对背睡,但至少能感受到另一个人的体温和呼吸。现在,只有冰冷的被褥,和窗外偶尔传来的汽车声。
他打开手机,想看看张颖有没有发消息——没有。聊天记录还停留在下午那条关于清清的交接到。
他又点开李艳的微信。最后一条消息是三天前的:“刘星,最近怎么样?想找你吃饭,又怕打扰你。”
他没有回。不是不想回,是不知道该怎么回。分居后,他反而更不敢见李艳了——好像见了,就坐实了张颖说的“你心里有人”。虽然张颖说了不介意,但他自己介意。他不想在自己最混乱的时候,把别人也拉进这摊浑水。
翻来覆去,怎么也睡不着。刘星干脆坐起来,打开电脑,继续看项目代码。那些密密麻麻的字符在屏幕上跳动,像一场永无止境的舞蹈。他盯着看了很久,突然意识到——这可能是他人生中最艰难的两周。
工作上的最后通牒,婚姻里的分居状态,经济上的沉重压力,还有那些说不清道不明的情感纠葛。所有的问题像潮水一样涌来,要把他淹没。
但他必须挺住。因为倒下,就真的什么都没有了。
凌晨三点,他终于有了一点睡意。关掉电脑,躺回床上。闭上眼睛前,他想起张颖说的那句话:“我们都给自己一次机会吧。”
机会。也许这次项目危机,也是一次机会?如果他能挺过去,如果能保住工作,如果能证明自己的价值……是不是就有资格去思考那些更深层的问题?是不是就有勇气去面对那些不敢面对的感情?
他不知道。
他只知道,天快亮了。新的一天,新的战斗,又要开始了。
在黎明前的黑暗里,他轻声对自己说:“挺住,刘星。你能行的。”
然后他睡着了。梦里,他站在悬崖边上,身后是追兵,面前是深渊。他必须跳过去,跳到对面的悬崖上。距离很远,但他必须跳。
因为不跳,就是死。
跳了,至少还有一丝生机。
这就是他的人生。
永远在跳跃,永远在坠落与求生之间挣扎。
永远停不下来。

