会议室空调嗡嗡响着,灯光白得晃眼。
我把笔搁在离职协议上,工整地签下自己的名字。
茶水凉了,没人续。
对面,总经理接过协议,笑着问:“核心代码交接一下吧。”我看着他,也笑了:“您猜猜看?”四周忽然静下来,投了票的人,有人低头翻手机,有人端起杯子又放下。
我没等谁开口,拿起外套,一步一步走向门口。
电梯门关上那一刻,我才发现手心全是汗。
走了很远,我回头看了一眼那栋楼,然后笑了笑。
有些东西,不是投票就能拿走的。
![]()
01
那天早上一进公司,我就觉得不太对劲。
打卡机“嘀”了一声,屏幕上跳出“欢迎”两个字。
我抬头看了一眼大厅里的挂钟,八点十五分,和往常一样。
可大厅里几个年轻人看见我,目光都闪了一下,像是没料到我会在这个点出现。
我没多想,径直上了三楼。
到了办公室,打开电脑,点开工作群。群里安安静静的,没人说话。我翻了半天,才发现自己已经被移出了那个叫“核心业务推进组”的群。
我坐了一会儿,没动。
这种群本来就是个形式,真正的活儿都在系统里。可我盯着手机屏幕,那个“已解散”的字样在通知栏里躺着,心里还是咯噔了一下。
我刚准备打电话问人事,内线先响了。杨丽蓉的声音带着惯有的客气,说下午三点开架构调整会议,让我一定参加。
我说好。挂了电话,我给自己倒了一杯水,坐下来。水喝到一半,林银生端着饭盒进了门。
他比我早两年来公司,干过技术,后来年纪大了转到后勤岗,管管仓库、收发快递。他这人话不多,但耳朵灵,公司里的事,没有他不知道的。
“听说了?”他问。
“什么事?”
“昨天下午,谢总和新来的那个技术总监,在沁园春茶楼坐了两个小时。”林银生压低了声音,“他们聊到九点多才散。”
我端着杯子,没说话。
“你心里有数就行。”林银生拍了拍我的肩膀,走了。走出去两步又回头,欲言又止的样子。我说有话你直说。他说算了,等你忙完这阵再说。
下午三点,会议准时开始。
会上,谢海峰讲了公司的“战略调整”,说为了提升效率,要把核心系统统一归口,由技术总监黄荣轩全权统筹。
讲完,他看向我,语气很温和:“程工,你在公司这么多年了,以后就负责技术顾问这块,把把关、审审方向。”
我听得明白。什么技术顾问,就是把权收走。
我说系统这些年都是我在维护,新来的同事不了解底层逻辑,贸然接手风险太大。
谢海峰笑了笑,说正因为你有经验,所以才让你把关嘛,具体的事就让年轻人多跑跑。
我看向黄荣轩。他三十来岁,穿一件深蓝衬衫,袖口挽得很整齐,正拿着笔在笔记本上写什么。察觉到我的视线,他抬起头,冲我微微点了点头。
散会之后,我回办公室坐了很久。
天快黑的时候,郭哲彦从门口路过,低着头走得很快。
我叫住他:“小郭,下午的会你也在。”他站住了,没有转身,说了一句“程工,我不是不想说”,便走了。
我望着他消失在走廊尽头,心里说不上是什么滋味。
这孩子是我一手带出来的。
刚来的时候连数据库都不会连,是我一个字段一个字段地教了他半年。
现在他坐在那个会议室里,从头到尾没有看我的眼睛。
那天晚上回家,我煮了一碗面,吃到一半没胃口。
女儿程诗涵从外地打来电话,问我最近忙不忙。
我说还好。
她说爸你嗓子怎么有点哑,我说可能是空调开大了。
她嗯了一声,说你别总吃面条。
我说知道了。
挂了电话,我坐在阳台上抽了一根烟。楼下的路灯亮着,小区里没什么人。
我回屋,打开电脑,盯着系统后台发了一会儿呆。
这台电脑我用了七年,桌面上还存着十一年的项目备份。
我点开最早的那个文件夹,名字叫“初版0901”,打开里面的代码,看了看日期。
那是十一年前的秋天。
我关掉电脑,没再看下去。
那一夜,我睡得不踏实。
半梦半醒之间,脑子里翻来覆去的,全是这些年写过的代码、开过的会、应过的酬。
有些事以为早忘了,可躺在床上,它们又一件一件地浮上来,压得人喘不过气。
第二天一早,林银生给我发了一条微信:你小心点,杨丽蓉今天一上班就抱着个文件夹进了谢总办公室。
我回:知道了。
放下手机,我站在镜子前刷牙,看着镜子里的自己。五十多岁的人了,鬓角的白发遮不住,眼角的皱纹也藏不掉。我不怕走人,怕的是走得不明白。
那天上午,我照常把系统里几个小问题处理了一遍,顺手修了财务模块里一个日期格式的显示异常。
这是我这十一年来养成的习惯,但凡看见问题,手就痒。
当时我并不知道,这个顺手改掉的小毛病,后来成了谢海峰手里一张“风险评估”的牌。
下午,杨丽蓉来了办公室。
她手里拿着一份文件,蓝色封皮,封面印着“知识产权归属协议”几个大字。
她把文件放在我桌上,笑着说:“程工,公司新规定,所有参与核心系统的人员都要重新签一下。您先看看,不急。”
我翻了两页。前面是标准条款,后面有一条用黑体字标着:离职后两年内不得从事同行业或类似岗位。我放下文件,问她:“这条之前没有过。”
杨丽蓉说:“是新规,法务部定的。老板已经签字了,大家都得执行。”
我问:“都签了?”
她犹豫了一下,说:“小郭他们都签了。”
我看着那份文件,没动笔。
杨丽蓉等了一会儿,见我不接话,便说那您再考虑考虑,收好文件夹走了。
她走到门口,又回头补了一句:“程工,这周之内要交回人事处,麻烦您抓紧。”
我点了点头。
她走后,我翻开文件,又看了一遍那条黑体字。心里忽然觉得好笑。我在这家公司写了十一年代码,到头来,连两年的退路都要被堵上。
我拿起手机,给一个同行老赵发了条消息。
问他最近行业里有没有合适的机会。
老赵回得快:怎么,要动?
我说还在看。
老赵那边沉默了一会儿,回了一句:你那块的系统,外面的人接不住的。
我看着这句话,愣了好一会儿。
当天晚上,谢海峰在群里发了一条正式通知:自即日起,核心系统开发与维护工作由技术总监黄荣轩全面负责。
通知底下,几个部门经理陆续跟了“收到”。
我没有回复。
我坐在办公室里,把抽屉里的文件翻了一遍。
一本旧笔记本、几份项目总结,还有一张泛黄的便签。
那张便签是十一年前的,上面写着一个项目代号,字迹已经模糊了。
我把便签翻过来,看了看背面,什么都没有。
我把它重新放回抽屉最底层,锁上。
那天晚上我走得很晚。
出办公楼的时候,大厅里只剩保安老刘在值夜班。
他看了我一眼,说程工又加班啊。
我说没有,这就走了。
老刘笑着说,你这人,有事没事都在公司待着,退休了还不习惯吧。
我说是啊,习惯了。
走出大门,夜风迎面吹过来,我紧了紧外套。路灯把影子拉得很长,我一边走一边想,也许这个地方,已经容不下我了。
02
第二天,事情开始变得不对劲。
早上刚到办公室,我看见郭哲彦的工位空了。
桌上那台显示器关了,椅子上放着一个纸箱。
我问旁边的年轻同事小周,他说黄总让哲彦过去帮忙整理新项目的需求文档。
小周说话的时候眼睛没看我,手指在键盘上嗒嗒地敲,敲得很急。
我没追问,坐到自己的位置。
打开系统后台,例行检查了一遍数据。
一切正常。
我想了想,又打开日志文件,翻了最近三天的操作记录。
昨天晚上十一点多,有人用管理员账号登录过系统,查看了核心模块的访问记录。
我看了看账号ID,那是黄荣轩的。
他不是刚接手吗?怎么这么着急看底层的代码?
我没声张,把那几行日志记在心里。
下午,杨丽蓉给我发了一条微信,问我协议考虑了没有,说周五之前要统一交回。我说再想想。她回了一个微笑的表情,没再催。
下班前,林银生来找我。
他在门口站了一会儿,左右看了看,走进来,压低声音说:“你知不知道,黄荣轩这两天在挨个找你们小组的人谈话?小郭、小周、李慧,都谈过了。”
我合上文件夹,问他:“谈什么?”
林银生说:“具体情况我不清楚。但小周出来的时候,脸色不太好看。”
我没说话。
林银生站了一会儿,忽然问:“你听说没有,公司准备上马一套新的供应链系统,预算批了大几百万。谢海峰想用这个机会,把老系统整个换掉。”
我笑了笑:“换掉?”
“他们说老系统太旧了,维护成本高,想推倒重来。”
“那可不是推倒重来的事。”我端起杯子喝了口水,“十年的数据和流程,全在系统里。供应链系统的每一个环节都跟财务、生产、仓储联动着。推倒重来,说得轻巧。”
林银生听了,重重地点了点头。临出门时,他又停下来,转头看了我一眼。我问他干什么,他低声说:“老程,你哪天要是走了,跟我说一声。”
我没答话。
那天晚上回到家,我在书房里坐了很久。
打开电脑,翻出老系统的源代码,一页一页地看。
这些代码是我一个字一个字敲出来的,每一行的注释都还带着十年前的习惯。
我写代码有个习惯,喜欢在注释里记一点当时的心情。比如“这个字段坑死了,改了三天才通”
“这个函数别再动了,再动我翻脸”
“这里加个判断,省得后面的人踩坑”。十几年的注释攒下来,整个代码库就像一本日记。
我看着那些注释,心里忽然有点空落落的。
十一年。从三十岁出头到五十多岁,我把最好的年华都搁在了这堆代码上。到头来,公司的管理层一句话,就能把我从这堆代码旁边赶走。
手机响了一声。是林银生发来的消息:“老程,你们部门小周今天下午交了辞职信。”
我看着这条消息,愣住了。
我叫周凯,是我去年招进来的。
本科应届生,老实,肯学。
我教了他一年,手把手的,从他连SQL都不会到现在能独立写模块。
平时我总说他写得慢,让他自己多琢磨。
可他从来都是我骂了不吭声、改了又拿回来给我看的那种孩子。
他交了辞职信。
我拿起手机,想给小周打个电话。电话拨出去,响了七八声,没人接。我放下手机,又拨了一次,还是没人接。
第二天早上,我在公司食堂碰见了小周。他端着餐盘,找了个角落坐着。我走过去,在他对面坐下。他看见我,先是愣了一下,然后低下了头。
“怎么想到辞职了?”我问。
他端着粥,没抬头,“家里有点事,想回去看看。”
“什么时候走?”
“下个星期。”
我看着他的发旋,半晌,说:“要是遇到难事,可以跟我说。”
他没有说话。
我把我的饭卡放在他面前,说帮我也刷一杯豆浆。
他站起来,默默去了窗口。
回来的时候,他把豆浆放在我面前,又坐下,低着头,像是自言自语一般说了句:“程工,您也早做打算。”
他只用了一句话,就把事情说完了。
我没再问,把豆浆喝完,起身走了。
走出食堂,阳光白晃晃的,我眯了眯眼。
站在台阶上,我给老赵回了一条消息:“老赵,帮我看看到底还有什么。”
老赵回了两个字:“在找。”
同一天下午,公司发了全员邮件:新系统项目正式启动,由黄荣轩担任项目总负责人,郭哲彦任技术组长。
我看着那封邮件,心里明白了一件事。他们不只是要我走,还是要把我的痕迹从这台系统上一块一块地拆掉。
那天傍晚,林银生又来了一趟我的办公室。他关上门,从兜里摸出一个U盘,放在我桌上。
“老程,这是我这些年留意着,存下来的一点东西。”他顿了顿,“主要是考勤记录的备份。你知道的,有些事,台账上未必看得到。”
我看看那个U盘,没有接。林银生把它推到我手边,说:“你拿着。用不用得上是一回事。”
我收起U盘,点了点头。林银生走到门口,又回头补了一句:“那年冬天的事,我一直想问你来着,就是没找到合适的时候。”
他说完,没等我开口,拉开门走了。
我坐在办公室里,外面走廊传来脚步声响。我低头看着那个U盘,握在手里,攥了一会儿,塞进兜里。
![]()
03
投票那天,会议室里坐满了人。
我坐在走廊的长椅上,等结果。空调风吹过来,有点凉。墙上的电子钟跳动着显示时间,每一秒都像是被人拉长了再松回去。
远处的门开了一条缝,有人从里面探出半个身子。我看不太清是谁,只听到有人说了一句:“知道了,我来通知他。”
然后门又关上了。
几分钟后,门打开。
谢海峰走出来,脸上挂着那种很标准的笑意,走到我面前,说:“程工,辛苦你等了一会儿。管理层刚刚开完会,一致认为,为了让新系统顺利推进,核心系统的日常维护工作暂时由黄荣轩总监接管。你这边,就先专注技术顾问的工作。”
他说得很温和,每一个字都像是打磨过的。人群中没有人说话,气氛安静得让人透不过气来。
我问他:“这是投票投出来的?”
谢海峰点了点头:“民主决策嘛。”
我说明白了,站起来。
走的时候,从会议室门口经过,我透过玻璃窗看见里面的人还坐着。
黄荣轩坐在主位旁边,拿笔在纸上写什么。
郭哲彦坐在后排,低着头摆弄手机,没有看见我。
回到办公室,我把抽屉里的东西一样一样收进纸箱。
旧笔记本、水杯、备用眼镜、那本写了十一年的项目总结。
最后,我把那张泛黄的便签从一个文件袋里抽出来,看了片刻,也放进了箱子。
林银生不知道什么时候站在门口。
他靠着门框,看着我收拾东西,嘴里没说话。
我抬起头看了他一眼,问他:“那年冬天的事,你是不是一直想问?”
他沉默了一会儿,说:“是。”
我说:“等忙完了这阵,我说给你听。”
他点了点头,转身走了。
走到走廊尽头时,他的脚步顿了一下,又继续往前走。
我坐在办公室里,纸箱还没装完,外面天已经黑了。
我坐了很久,看着窗外那盏路灯,没有开灯。
那天晚上回到家,我没有开电脑,坐在客厅里发呆。
手机响了一声。是女儿发来的消息,一张照片。照片里是她新租的房子,窗台上放着一盆绿萝。下面跟了一行字:爸,我这边都好,你照顾好自己。
我看着那张照片,放大又缩小,手指按在屏幕上,几次想回点什么,最后还是只打了两个字:“知道。”
放下手机,我翻了翻那些旧文件。
十一年前的项目启动时,公司还是个小团队。
熬了三个月的夜,才把第一版系统赶出来。
我当时写下一行注释:“这辈子没熬过这么多夜,但值了。”后来系统稳定了,公司越做越大,新人也一年比一年多。
我在这个位置上待得太久,久到所有人都忘记了这个系统最开始是怎么写出来的。
新老板要的是掌控感,不是“功臣”。
而公司要的是能跟上时代的人,不是一个固守旧代码的老顽固。
那天夜里,我在黑暗里坐了很久。
我曾经以为,只要把这个系统做好了,公司在,我就在。可我没料到的是,当系统稳定到不再出问题时,我在这个公司里也就变得可有可无了。
门外传来一阵响声,是隔壁邻居家关门的声音。我回过神来,走回书房,打开电脑。登录系统后台,我看着那一片代码,手指敲了敲桌面。
我决定做点什么。
04
第二天一早,我去了人事处。杨丽蓉正坐在办公桌后面,见我进来,脸上挂着意料之中的笑。
“程工,考虑好了?”
我说:“补偿方案呢?”
杨丽蓉愣了一下,显然没料到我这么直接。
她低头翻了翻抽屉,掏出一份打印好的文件,摆在我面前:“按公司规定,主动离职的话,补贴是这样。如果您考虑协商解除,我这边可以尽量争取一下。”
我拿起文件看了几行,心冷了一半。
上面写着的补偿标准只有按照本地平均工资基数计算,我在这里干了十一年,实际工资是几倍于此的数。
而我签字之后,还附了一行字:“本人自愿放弃一切补偿权益。”
杨丽蓉看我在那行字上停留了片刻。她不动声色地拿起笔,在桌上转了一圈:“程工,这是公司的统一模板,回头法务那边还会再跟你沟通。”
我没发火,把文件揣进包里,转身走了。
当天下午,我托一个做律师的老同学查了查最近公司的工商变更记录。
他说公司背后那家资方去年入局的,谢海峰就是这个资方直接派驻过来的人。
黄荣轩的社保关系也在另一家关联公司,两家公司交叉持股。
我听完,心里就有数了。这是一个有备而来的局,棋早已布好。
晚上回到家,我打开电脑,准备把系统里几个重要的模块做个备份。
就在这时,邮箱弹出一封新邮件。
发件人地址是一串字母数字组合,看不出是谁。
我点开邮件。里面没有正文,只有一个附件。
附件是一张扫描件,一张泛黄的纸。纸张上的签字被放大得很清楚,那个名字,是我的名字。
这是十一年前那份事故认定书。
那年冬天,一场酒驾撞上了护栏。
副驾驶坐的是林银生。
他当时喝了酒,伤得不轻。
我在现场做了个决定,把责任担了下来,但和当时的路政人员私下达成了一致,没有记录酒驾。
后来这件事,被他压了下去。但这些年,那份签过字的认定书,一直是我的心病。
我盯着那张扫描件看了很久。
屏幕上的光映着我的脸,我坐在椅子上,一动不动。
想不起自己和林银生那次谈话的细节了。
这些年我一直避着这件事,谁也没问过。
现在它被人翻了出来,放在我面前。
邮件底部有一行字:“程工,明天十点前,去人事处把协议签了。”
我盯着那句话,心里涌上一种说不清的情绪。紧绷、慌乱,更多的是一种深深的疲惫。
电话响了。是林银生打来的。
他的声音带着试探:“老程,今天下午,有人来调过你十一年前考勤记录。档案室的老王说,来的是谢总办公室的人。”
我沉默了一会儿,说:“我知道。”
“你是不是有什么事瞒着我?”
我没有回答。过了很久,我说:“老林,那年冬天的事,我欠你一个交代。等我把这边的事处理完,跟你说清楚。”
林银生没再追问。
电话挂断后,我坐在电脑前,看着那份扫描件,手指停在键盘上,半天没有动。
后来,我打开代码库,一份一份地调出了近十年的项目备份。
我没有去修改代码,而是坐了整整两个小时,确认了一切之后,才做了一个决定。
我拨通了林银生的电话,只说了一句:“过两天,我有点东西放你那儿。”
他在电话那头沉默了几秒:“好。”
那天夜里,我睡得很沉。像是终于放下了什么,又像是准备要扛起什么。
![]()
05
签离职协议那天,是周五。
早上九点,我到了人事处。
杨丽蓉把文件摊在桌上,推到我面前。
谢海峰也来了,坐在旁边沙发上,端着一杯茶。
我拿起笔,一页一页翻过去,没再提补偿的事。
最后那句“本人自愿放弃一切补偿权益”,我看也没看,直接签了名字。
谢海峰放下茶杯,笑着说:“程工爽快。那个核心代码的交接文档,你看看方便的时候让人发一下。财务那边可能还有一些结算流程要走。”
我把笔放下,站起来,看着他,说了一句:“您猜猜看?”
他的笑意顿住。
我没有多解释,拿起外套,转身走出了人事处。
走出办公楼大门,阳光刺得眼睛生疼。
林银生站在台阶下,手里拎着一个塑料袋,里面装着两个橘子。
我走过去,把那个牛皮纸袋递给他。
他接了,没问。
我说:“我来交代那年冬天的事了。那份认定书,是当时路政一个老科员帮忙处理的。我当时没喝酒,喝的是茶。对方家属后来私下和解了。但是……”
“等你缓过来再说。”林银生打断我,“先想好怎么吃饭。”
他转身走了。我站在楼下,久久没有动。过了很久,我掏出手机,看了一眼时间。
深夜。
我坐在书房里,窗帘拉得严严实实。
电脑屏幕发出微弱的蓝光,窗外寂静无声。
我打开系统后台,把核心模块的代码调出来。
手指在键盘上动得很快。
一行一行,注释被替换成了空洞的占位符。
文档字符串被全部清理,字段定义被置换成无序编号。
所有变量名从public变成abstract占位符,让正常阅读的人完全无法看懂。
功能完好无损。但任何人想接手,都会像面对一堆拼图碎片。
我把每一个模块都处理完,只保留了财务接口模块的原样。
因为我知道,谢海峰找的审计公司,只会查最新更新的模块。
只要最新模块“正常”,他们就会在报告上写“风险可控”。
窗外天快亮了。我靠在椅背上,看着屏幕上整齐的代码界,没有关电脑。
天光大亮时,我把一切恢复了原样。
该替换的替换完了,代码库表面上看起来风平浪静。
我关上电脑,煮了碗面,吃了,然后把碗洗了。
手机响了,是谢海峰的秘书。
她客气地提醒我,离职手续走完,门禁卡今天到期。
我说好的。
下午,我到公司办了最后的手续。
交门禁卡的时候,前台小姑娘接过去,看了一眼,又犹豫了一下,说程工您慢走。
我点点头。
下楼时,在电梯里碰见几个年轻同事,他们见到我,都尴尬地笑了笑,没有人说话。
电梯门开,我走出去。阳光照在身上,暖洋洋的。我没有回头。
林银生给我发来一条消息:都办妥了?
我说:办妥了。
他回:那就好。
我坐在公交站台的椅子上,看着路上车来车往。站台边的银杏树叶子黄了,风吹过来,簌簌地往下落。我就那么坐着,什么也没有想。
06
两周后,系统崩了。
那天下午,谢海峰正在办公室里看一个项目汇报。
秘书慌慌张张跑进来,说供应链系统的访问中断了,财务模块无法打开,生产计划同步全部阻塞。
他皱着眉头,说让黄荣轩带人修一下。
秘书犹豫了一下,说黄总已经带人排查了两个小时,找不到原因。
谢海峰放下手机,去了机房。
机房里的气氛绷得紧紧的。
几台服务器指示灯正常跳动,键盘声此起彼伏。
黄荣轩站在大屏幕前,额头渗出细密的汗珠。
他面前铺满了代码截图,一页一页翻着,眉头越皱越紧。
谢海峰问他:“怎么回事?”
黄荣轩说:“核心模块的代码,所有的注释没了。变量名也全部变了,跟之前完全不一样。系统本身在跑,功能看起来正常,但只要一改动,就和数据库匹配不上。”
谢海峰沉默了一下:“不能回滚?”
“回滚了两次,都不行。代码版本库里的数据和线上运行的系统对不上。”黄荣轩的声音低了下去,“程工走之前改过。”
机房安静了几秒。谢海峰的脸僵住了,他转身走出机房,掏出手机,从通讯录里找到我的名字,拨了过去。电话通了,响了三声。
“程工,系统出问题了。”
“我在外地。”
“你什么时候回来?”
“不确定。”
电话挂断。谢海峰站在走廊里,手里攥着手机,周围人来人往,但没有人敢靠近他。他沉默了很久,然后回办公室,关上门。
消息传得很快。
下午四点,三个大客户先后打来电话,说交易系统延迟严重,生产排期的数据完全对不上。
一个客户直言:“如果这个问题不解决,下个季度的合同我们就不续了。”
供应链部门炸了锅。
销售部的人站在走廊里,拿着手机不停打电话,说客户催得急。
生产部的人拿着纸质单据跑上跑下,因为系统里查不到任何库存数据。
黄荣轩带着技术团队连夜排查,凌晨两点,所有人都在机房。
黄荣轩坐在屏幕前,揉着眉心,面前是一堆解不开的乱码变量。
他拨了一个内部电话,低声说:“让郭哲彦过来。”
郭哲彦来到机房,看到那堆代码,脸色也变了。他试着看了一个模块,然后用了一整个小时,仍然没有找到任何可以下手修改的路径。
他放下键盘,说:“这些代码,除非程工本人来恢复,否则谁也动不了。”
黄荣轩看着他,说:“你确定?”
郭哲彦说:“他在里面藏了十年的习惯。每一个变量的命名方式、注释逻辑、字段顺序,都是他一个人写的,别人插不进手。”
机房里的空气像是凝固了,没有人接话。
第二天中午,谢海峰让杨丽蓉打我的电话。
我接起来,杨丽蓉语气客气里带着急:“程工,公司现在遇到了一些困难,您看方便的时候,能不能回来帮帮忙?”
我说:“我不是公司的员工了。”
“我们可以谈顾问费。”
“谢总的审计报告不是说,风险可控吗?”
电话那头沉默了几秒。杨丽蓉说:“程工,这事……真的需要您。”
我说: