颁奖礼的音乐震得人耳膜发疼,范春贤站在台上,身后大屏轮播着十七项发明专利证书,每一张都写着他的名字。
他正讲到“五年磨一剑”的时候,我手机震了一下,屏幕上跳出一条新消息:系统通信中断,全部控制界面报错,问你有没有时间接个电话。
我没有回复,锁屏,继续看着台上的他。
不到两分钟,电话来了。那头范春贤的声音压得极低,却压不住那丝颤:“姜森,ZC2000锁死了,你……你在代码里放了什么?”
我站在礼堂最后一排的阴影里,轻声说:“我在源代码里加了个注释,范总,系统不认我签的字,没人能改。”电话那头静了很久,然后我听见手机摔在地上的响声,清脆得很。
01
五年前我刚进恒远重工的时候,连车间门朝哪开都分不清。
人力资源把我分到技术研发中心,说是做软件开发的岗位。
到了才知道,这地方跟“开发”二字沾边的活儿根本没人干。
老工程师们图纸画得漂亮,可一提到控制系统、数据接口,全都推说岁数大了学不动。
范春贤当时刚升了技术总监,正愁手里没项目可报。
见我来了,眼睛一亮,把我领到一间堆满旧设备的屋子,指着墙角那台落了灰的工控机说:“小姜,公司想把这套产线控制系统做一次全面升级,搞成咱们自己的核心技术。你是学这个的,来牵头试试。”
我那时候年轻,以为“牵头”就是领导信任我,是机会来了。我应了一声好,当天晚上就留在那间屋子里。
那间屋子没窗户,白天晚上都得开灯。
墙角堆着锈迹斑斑的齿轮和报废电机,空气里常年飘着一股机油混合铁锈的味道,夏天闷得人喘不上气,冬天冷得像冰窖。
我在那儿耗了半个月,把那套用了十多年的老系统的逻辑摸了个透。
准确说,那根本算不上系统,就是几个老师傅凭手感调出来的参数堆在一起,全靠经验硬撑。
碰上设备抽风,操作工只能在屏幕上反复试,试对了就接着干,试错了就停下来等人修。
我把底层的通讯协议重新梳理了一遍,给每台设备画了一张数据链路图,又花了两周写出一套新的控制逻辑,能自动纠偏,能远程监测,出现异常还会自己报警。
就这点东西,听起来不像多难的活儿,我在大学实验室里练过无数遍。可在恒远重工,这就是从零到一。
第一次联机测试成功那天,我站在操作台前,看着屏幕上的数据流稳定跳动,兴奋得手心全是汗。
产线的老师傅老钱凑过来看了一眼,啧啧了两声:“姜工,你这玩意儿比原来那套强多了。”
那时候我不懂什么叫功成不必在我。
我只知道这套系统是我从一行行代码里喂大的,它像我养的孩子,每一段逻辑我都了如指掌。
那天半夜我走出车间,冷风灌进领口,但走起路来浑身都是热乎的。
很快日子就有了盼头。
范春贤开始频繁往我的小屋跑,每次来都带着厚厚一摞申报材料,专利申请书、科研项目书、创新成果鉴定表,整整齐齐地码在我桌上。
“小姜,你把这套系统的技术路线整理成文档,要点写清楚。”范春贤笑着拍拍我的肩,“集团今年有大动作,咱们得拿出点成果来。”我没多想,花了一整夜把系统架构和核心算法写成材料,发到他邮箱。
过了大半个月,他拿着一本红彤彤的证书来找我,说是发明专利批下来了。我接过来翻开,第一页清清楚楚写着“发明人:范春贤”。
我愣了愣。
范春贤大概看出我的表情不对,忙解释:“职务发明,都是挂在项目负责人名下的,这是行规。你放心,该你的都记着呢,等年底绩效评估我会体现的。”
他说得理直气壮,我张了张嘴,终究没说出什么。
那时候我总觉得,把技术做实了比争一个名字更有分量。
我给自己找了条台阶下:只要系统是我写的,范春贤嘴上说一万句他懂,真遇到问题还得来找我。
可五年下来,这个台阶越来越窄,越来越陡。
第一年,范春贤拿我查的资料报了个市级课题,经费二十万,给我的奖金一千五。
第二年,我独立设计的控制模块被纳入公司主打产品序列,范春贤在发布会上言之凿凿地说“这是我们团队昼夜攻关的成果”,但那个团队,自始至终只有我一个人。
每回都是这样。我熬几个通宵把代码写完,把测试跑完,把报告写好,剩下的就是范春贤的事:拿着材料上台、领奖、跟领导合影。
这五年我自己觉得,敲过的代码至少几十万行,喝掉的红牛空罐堆起来能装满一个纸箱。
可回头看看,什么都没有留下。
公积金缴存记录上我的工资涨了一千二,住房补贴加了三百,年终奖倒是每年都有,从不拖欠,因为那点数目用不着拖欠。
真正让人心里发寒的是那些看不见的东西。
02
事情的转折发生在那年冬天,公司下发了一份红头文件,说是集团要在智能制造领域打造一批标志性成果,凡是有发明专利和实际应用成果的技术骨干,都可以申报“年度技术创新领军人物”。
范春贤把这个消息带回来,是在一个周五的下午。
他破天荒地招呼部门所有人开了个短会,会上大讲特讲集团对我们的重视和期望。
我心里清楚,这奖摆明了就是冲ZC2000去的,而我作为这套系统的唯一研发者,至少应该有资格报个名。
散会后我留到最后,走到范春贤办公室门口,还没敲门,就听见里面传来打电话的声音。
范春贤的声音带着笑:“王总你放心,这个奖我拿定了。项目成果扎实,应用数据漂亮,上面几个领导我都打过招呼了。”
我站在走廊里,手指悬在半空,顿了顿,还是敲了下去。
范春贤挂了电话,脸上笑容没散,语气轻快:“小姜,什么事?”我说想在技术创新领军人物的申报材料里加个名字,哪怕排在后面也行,毕竟系统是我起早贪黑做出来的。
范春贤的表情变化不大,依然是笑着的,可那笑里的温度明显低了几分。
他往后靠在椅背上,慢悠悠地说:“小姜啊,你这个诉求我理解。但这个奖项是以部门名义统筹推荐的,材料里主要突出的是项目的整体价值,不是哪一个人的功劳。”他加重了语气,“咱们做技术的,要有大局观。”
我没再说什么,退出办公室的时候,顺手带上了门。
回工位的路上,我路过茶水间,听见两个同事在小声议论:“你说范总今年拿了奖,咱们能不能跟着沾点光?”
“想得美,你没看他把所有项目都挂在自个儿名下吗?”
我端着杯子站在门口,没有进去。
蔡雅兰不知道什么时候也走到了茶水间门口,她没进去,只是看着我,犹豫了一下,轻声说:“姜工,我帮你调一份内部邮件出来,你看看。”
她说的内部邮件,是范春贤发给集团领导的一封请示函。
函里表示:ZC2000系统已达到行业领先水平,为表彰先进、树立标杆,拟推荐本人申报本年度技术创新领军人物。
附件里附了一份项目组成员名单,五个人的名字,排在第一的是范春贤,第二位是宋昊,剩下三个是从其他部门凑数的。
没有我。
我盯着那个附件看了很久,意识到我在范春贤眼里,连名字都不配出现在那份清单上,虽然那行行代码都是我一个人熬出来的。
蔡雅兰轻声说了句:“姜工,你看了就看了,别拿出去说。”我点了点头,把邮件关了。
那晚我回到家,坐在沙发上发了很久的呆。
茶几上放着一沓论文的复印件,全是我这五年整理的。
头几篇的作者栏上,范春贤是“通信作者”,写着“指导”。
唯一一次出现我的名字,是在致谢里:“感谢姜森工程师在项目实施中提供的技术支持。”
技术支持。好一个技术支持。他妈的技术支持。
我妈打来电话,问我今年奖金发了没有,家里准备翻修老房子缺钱。
她问得随意,语气带着笑,但我知道父母轻易不会开这个口。
我捏着手机,用了挺大的力气控制住声音:“发了,过两天就打给你们。”挂完电话我算了算卡里的余额,离老妈要的数,还差了一大截。
第二天到了公司,我在走廊上迎面撞见了宋昊。
他有意无意地搭话:“姜哥,听说范总那个领军人物项目里,有好几个人的名字都是他定的。你干得最多,好处最少,我就说你太老实了。我觉得你该去争取争取。”
我看了他一眼,说:“争什么,争来的东西也没什么意思。”宋昊笑着摇摇头:“你可真是……”话没说完就走了,步伐里带着一种说不清道不明的道貌岸然。
03
真正让我下定决心离开的,是范春贤在我身后划掉我名字的那一刻。
那天是集团项目中期检查的日子,范春贤安排我留在实验室做数据备份,说这种场合不需要太多人去,免得显得研发团队太闲。
我在屋里呆了一个多小时,把ZC2000这五年来的版本迭代记录过了一遍。
从最初的雏形到现在,大的架构调整做了四轮,核心算法升级了不下十次,每次都是我通宵完成的。
这些年我交了无数份报告,写了无穷行代码,最后换来的,只有工位角落里那只越堆越高的红牛空罐。
中午我去餐厅吃饭,路过二楼会议室,门没关严,里面传来范春贤的声音:“我们部门今年在智能化改造上下了大力气,这个系统融合了最新的控制理论和数据算法,应用效果非常显著……”我站在门口听了几秒,推开旁边那扇虚掩的门,投影幕布上刚好打出ZC2000的系统架构图。
那张图是我做的。
右下角有一行小字,标着“技术架构:姜森”。范春贤拿着激光笔在屏幕上比画,口中流畅地讲着她的思路,偶尔停顿一下,像是在等掌声。
就在这时后面有人叫范春贤出去接个电话。他把激光笔往桌上一放,快步走了出去。会议室里剩下几个集团来检查的领导,低头翻着手里的材料。
我鬼使神差地走了进去,绕到电脑屏幕边,看见他打开的PPT文件,翻到最后一页的立项通知。
整个文档里没有我的名字。
立项通知的红头文件在,项目负责人的签字扫描在,就缺那个真正把项目做出来的人。
我退出去,在门边站了一会儿。
宋昊从厕所那边走过来,看见我站在会议室门口,表情微妙地问:“怎么了,看什么呢?”我没答他,转身回实验室。
身后宋昊也跟着进来了,门才关上,他就压低声音:“姜哥,有个事我不知道该不该告诉你。”
我没吭声,他就自说自话地接了下去:“我听说范总打算明年引入一个外包团队,专门做系统运维。集团那边批了一笔资金,说是要搞‘核心人才梯队建设’。”他看着我的表情,又补了一句,“你要做好心理准备,范总可能有想法把你往外调。”我愣住了。
外包团队来做什么运维?
ZC2000的核心代码是我用了五年时间一个字一个字敲出来的,每一处逻辑我都了然于心,根本不需要外人来维护。
这个安排如果坐实,那就说明范春贤准备彻底把我排除在核心之外。
“你怎么知道的?”我问。
宋昊耸耸肩:“我也是听人说。范总让办公室起草一个权限转移的申请,说是要给系统加一道双人验证机制,防止单人掌握全部底层逻辑。说白了就是防你的。”
我沉默了很久,回到工位上坐着。
屏幕自动锁屏进入倒计时,映出我自己的脸,眼窝凹陷,嘴唇发白。
五年前坐在这张椅子上的时候还精神抖擞的,现在像被什么抽干了似的。
当天下午我做了个决定,去范春贤办公室谈了一次。
我说得尽量平静,说如果想引入外包团队我理解,但ZC2000的核心架构是我的心血,如果要动它,希望能提前通知我,我也好多留一点交接的时间。
范春贤坐在大班台后面,手里玩着一支钢笔,听完我的话笑了笑:“小姜你想多了,外包团队只是做外围,核心肯定还是在你手上。你这些年辛苦了,我记在心里。”他拉开抽屉,从里面拿出一个红包推过来,“这是上个月的加班费,你先拿着用。”
我盯着那个红包,没有接。
我走出来的时候,蔡雅兰正好迎面走来,她扫了一眼我身后的办公室门,又看了看我空着的手,低声道:“姜工,你查过你去年调休了多少天,加班费到账了多少吗?”我愣了一下,她继续说,“你的考勤好像有问题,你最好自己去系统里核一下。”我想了想,回到工位上,打开了公司内部的考勤系统。
这一查,我从下午一直坐到天黑。
屏幕上清清楚楚地显示着欠薪的数字和从没见过的白条。
我盯着屏幕上的数字看了很久,那个晚上我对自己说:该走了。
04
第二天早上我七点就到了公司,整栋研发大楼静悄悄的,只有保洁阿姨在拖走廊的地。
我坐到自己工位上,打开那台老得有些卡顿的办公电脑,望着桌面上的ZC2000源代码文件夹,愣了好久。
五年,这个被我从一个空文件夹开始喂大的系统项目,里面躺着三百多个版本,每一版都是我手写的心血。
现在我要走了,这里面所有的存档记录、代码和标注,都是范春贤来占功名。
我在OA系统里填了离职申请,理由写了四个字:个人规划。
提交后,系统自动转给范春贤审批。
我以为他会派人来谈谈劝劝,或者至少打个电话问一句为什么。
没有。
当天下午两点,流程就批了,审批意见栏里写着:“同意,请尽快办理交接。”干脆利落得像我欠了公司多少钱一样。
我盯着那行字看了好半晌,说不上什么感受,一团凉气从胃里往上冒。
五年的工位,五年的夜班,五年来没修完的年假,交代他的时候连多一个字都没有。
我用了三天时间做交接。
系统架构文档、数据库说明、接口规范,我全部整理得整整齐齐。
范春贤没有指定人来接,我便把文档压缩包发到了宋昊的邮箱。
走之前的那天下午,下班后我把所有该整理的东西都整理完了,屏幕上弹出一封邮件提醒,是企业微信的系统提示:“您有新的流程待处理。”
打开一看,是范春贤发来的,是一张内部协作单:“关于ZC2000系统新增外部研发人员账号的申请,请系统管理员审批。”申请人是范春贤,协同对象是三家外包公司的技术负责人。
审批意见一栏,他是“核准”状态。
我看了这张表,盯着那个“新增外部研发人员账号”的申请栏,心里忽然明白了。
原来外包团队根本不是什么“下一年计划”,他们已经把合同签好了,就差把我踢走腾位置。
范春贤让我“做好交接工作”,其实是要我在走人之前把系统通道交出去。
我调出系统权限管理界面,光标停在“核心算法和权限管理”的选项上。
ZC2000所有数据链路的最终校验点,都绑在系统管理员这一个身份上。
这个身份,是我五年前创建这个系统时,用了公司管理员的根权限建的。
后来范春贤的账号被我设成了普通管理员级别,能查看数据和开关一些外围模块,但真正涉及核心算法修改和底层参数校验的操作,必须要“根管理员”授权。
而全公司只有我一个人知道那个“根管理员”的密码是什么。
如果我今天正常走人,那这把钥匙就留在服务器里。范春贤会另找一个“信得过”的技术人员,重置这个权限,届时这五年我的痕迹会彻底消失。
我坐在那块亮着的屏幕前,下了决心。
我将核心算法模块当中那道“设计者校验”的逻辑从系统活跃列表里摘除,锁进了密钥区,并将整个系统的最高权限置为待激活状态。
这台服务器里所有的数据和功能都还靠着底库正常的读写运转,但一旦有人强行修改内核链路的调用关系,或者是重建系统级别的参数,底层就会自动触发那道锁死的保护逻辑,也就是我留的那个“设计者权限校验”。
我不再犹豫,把密码保留在我的U盘里,收拾好了桌面上的东西,所有私人物品塞进一个纸箱,其实也没什么,一只用了很久的旧杯子、三本翻烂的工具书、一盆养了快三年的绿萝。
走出研发中心大门的时候,宋昊追上来,假惺惺地递了根烟:“姜哥,这就走了?范总晚上说请你吃饭送行。”我摆摆手说不用了,转身时侧过头看了看宋昊的表情,他分明是从范春贤办公室那边过来的。
05
离职手续办完那天是周三。
我出了公司大门,在路边公交站台站了一会儿,冬风刮得脸生疼。
脑袋里乱七八糟,五年前来的时候提着一个行李箱,如今走的时候还是提着一个行李箱,里面装的东西没多几样,只是人瘦了不少。
我妈打来电话问顺不顺利,我说还行。
她沉默了一下:“你是不是辞职了?”我不知道她怎么猜出来的,大概是我声音里的疲惫压不住。
我说:“想换个地方发展。”
电话那头安静了很久,我妈说:“那你下一步想好了怎么办?”我说正在找,行业里不缺岗位。
她又问:“那你发的那个奖金呢?”这句话堵在喉头,我说不出话了。
挂了电话我蹲在公交站台旁边,把头低在膝盖上,默默缓了好久。
说不上是委屈还是别的什么,只是觉得这些年好像一直都在跑,跑得精疲力尽,却什么都没抓住。
车来了,我上车坐到最后排,靠着车窗,看着恒远重工那栋灰白色的研发大楼在视线里一点点缩小,最后消失在街道拐角。
新住处是老城区一套合租房,单间月租八百,隔音差,隔壁打呼噜听得很清楚。
我在床上躺了一下午,盯着天花板发呆,直到傍晚手机响起来。
电话那头是蔡雅兰的声音,问了一个让我翻了个身坐起来的消息:“姜工,范总那个技术创新领军人物评上了,今天集团公示,你知道了没?”
我说知道了。
她又补了一句:“下周集团有个年终数字化成果验收会,范总要现场演示ZC2000的远程调度功能。他让外包团队过去对接调试,今天下午外包的技术负责人在系统里跑了一批参数,然后整个核心控制界面报错了,现在全组都在排查,说可能有什么底层配置需要原管理员处理。”
我拿着手机没有接话,蔡雅兰的声音轻了下来:“姜工,他们这会儿在到处问,那个最高权限的校验密码,你知道吧?”她说得隐晦,但我听明白了。
外包团队强行跑参数,触发了那层保护逻辑。
我翻了个身面对墙壁说:“那套系统的架构是我设计的,权限管理规则在源代码注释里都写了,你让他们去看一下,03节开头。”蔡雅兰没有再问,应了一声,挂了电话。
我坐在床上把这段话说了一遍,手指无意识地握紧了手机机身。
老楼的一楼楼道里有人在做饭,油烟味顺着门缝钻进屋里。
我坐在床边把手机举起来又放下,来回好几次。
屏幕上范春贤的号码亮了两次,我没有接。
第三次响起来的时候我接了,电话那头他的声音故作镇定:“小姜,系统这边出了点小问题,外包那边想了解一下你当初的架构设计思路,你看方便回来说是聊一下吗?”
我说:“范总,我已经办完离职了,有什么技术问题你可以让接手的同事看交接文档。”他顿了顿,声音压下来:“是这样的,文档我看过了,写得不是很详细。这个系统现在出现了锁定状态,其他人根本打不开。这件事影响挺大,集团领导都在关注,要不你抽空过来帮个忙?报酬好商量。”
我把手机从耳边拿开,看着屏幕黑了一下又亮起来。
他还在说,语气从刚才的生硬软化到谦卑:“姜森,就当帮老朋友一个忙,这个事压下来对我对公司都不好……”我按下挂断键,屋子里重新安静下来。
我知道他此刻一定很慌,但我更清楚,那个能打开锁的“钥匙”,不能平白交出去。
有些东西烂在肚子里,才叫底气。
06
一周后,集团年终数字化成果验收会如期举行。
我后来从蔡雅兰那里知道了那天的全过程,她当时被安排做会议记录,坐在角落里,把每一个细节都看在眼里。
范春贤那天穿着一件深蓝色西装,头发打理得油光发亮,跟换了个人似的。
早晨签到时,他端着一杯茶在会场里转了三四圈,逢人便笑,嘴里翻来覆去就是那几句“今年我们部门搞出了点小成绩”之类的客气话。
十点整会议开始,主持人简单介绍后,范春贤站上了主讲台。
台下的领导席坐着集团总裁、分管技术的副总裁以及好几个一脸严肃的外聘评审专家。
他清了清嗓子,播放PPT。
第一页是ZC2000系统的展示图,标题写着“面向智能制造的工业控制系统自主研发与应用”,接下来是十七项专利的证书扫描件。
他讲到技术难点的时候自信满满,PPT翻页间,十七项专利证书一页页划过,台下不时传来沙沙的记录声。
讲完创新点后,范春贤说了句“下面进入现场演示环节”,拿起桌上的平板电脑,点开操作客户端。
这套操作界面就是我独立开发的那个,每个按钮的位置、图标、功能,我比任何人都清楚。
他点了一个“启动远程调度”的按钮,屏幕短暂地转了一下,然后跳出几行红色的提示字符,所有数据链路显示断开,设备状态全部变成灰色。
范春贤又点了一下,又跳出同样的提示。
会议室没有声音。
有人在咳嗽,有人放下茶杯,声音格外清晰。
范春贤脸上挂不住了,低头用指尖在平板上戳了好几下,见没有反应,又换了个应用重启客户端。
重复登录三次,结果都一样,他一直切换界面,嘴里嘀咕着“网络问题”之类的话。
台下有人站起来,是外包团队的技术负责人,快步走到台前,低头在范春贤耳边说了句什么。
范春贤脸色变了一瞬,随即挤出一个勉强的笑容,对着台下宣布:“不好意思各位领导,演示系统临时出了点网络故障,我们几分钟之内恢复。”
那几分钟,据蔡雅兰说,像过了一个小时那么长。
技术负责人连了服务器后台,界面调了好几层,越调眉头越深,最后他凑到范春贤耳朵边说了几句话。
范春贤听完那句话的时候,整个人僵住了,像被什么东西钉在台上。
蔡雅兰说她离得近,隐约听到几个字:“需要动态权限里对应的设计者账户来解锁……现在直接和硬锁绑定,我们动不了。”范春贤在台上站了足足有十秒钟没动,那十秒里,台下的人窃窃私语,领导席上有人皱起眉头翻起了材料。
范春贤往后走了两步,弯腰凑在屏幕上看后台日志,指尖在键盘上敲了几个命令。
屏幕上弹出的还是同样的提示,权限校验失败。
他额头上的汗开始往外冒。集团总裁终于发了话:“系统什么时候能恢复?”范春贤站在台上张了张嘴,说:“可能需要延迟几分钟……”
一个年长的评审专家摘下眼镜擦了擦,站起来说:“小范啊,你的申报材料里说这套系统是成熟稳定的,怎么连个现场演示都跑不起来?”会议室里的目光齐刷刷地落在他身上。
蔡雅兰说她从来没有见过一个人站在台上会显得那么小,像被什么东西从四面八方压过去了,却连一个躲的地方都没有,只能在那里硬扛着。
最后,会议被迫中止,系统演示环节推迟到下周。范春贤从台上下来的时候,那件深蓝西装的后背已经湿了一大片。
热门跟贴