大屏幕上,“研发三组薛宏伟”几个字被投得又大又亮。
我坐在第十排靠墙的位置。
全场都在鼓掌,我没有动,只是盯着那个名字。
他讲得很流畅,很自信,好像那四十七天的煎熬跟他没关系似的。
可我看到他翻到第三页的时候,指尖顿了一下,像是不认识眼前的算法框图。
那一下很短,短到没人察觉。
可我看见了。
于达总监就在这时抬起了头,目光从PPT缓缓落到他身上,声音不大不小:“宏伟,这套系统你们组真的跑通过?”全场安静了一瞬。
薛宏伟的笑僵住了。
而我,依旧一声没吭。
01
事情要从三个月前说起。
那天下午,薛宏伟把我们组的人叫到会议室,说公司接了一个大项目,智慧水利物联网调度系统。
名字听着唬人,说白了就是给水利局做一套自动监控水闸的软件,水大了自动开闸,水小了自动关闸,省得人工跑腿。
项目不大,但来头不小。
于达总监亲自盯这个项目,直接跟水利局的领导对接。谁要做得好,谁就能在领导面前露脸。
薛宏伟坐在会议桌主位上,笑呵呵地看着我:“小林,你技术最好,这个项目的核心算法你来搭。做得好,年底汇报我带你一起上。”
我当时心里一热,点头应了。
后来郑鹏飞在工位上低声提醒我:“你别太好说话。薛宏伟那张嘴,给你画饼的时候从来不眨眼。”
我笑了笑,没接话。其实我心里明白,郑鹏飞是好意,但他说得不对。
我不是好说话,我没得选。
我爸上半年在工地上出了事,从脚手架上摔下来,骨盆开裂,腰椎也伤了。
大夫说后半辈子恐怕很难站起来了。
我妈身体本来就不行,现在天天伺候我爸,药费复查费加起来,一个月少说也得三千多。
我这份工资,是家里唯一的口粮。
薛宏伟是组长,我的续签考核表上,第一栏的签字人就是他。
我要是跟他顶牛,他给我考核打不合格,明年六月合同一到,我卷铺盖走人,我爸的药费就没了。
人穷志短,这话一点都不假。
接下任务之后,我就开始在正常项目工作之外做核心算法。白天做完手头的活,到了晚上,我一个人留在办公室调那套调度逻辑。
数据模型改了一版又一版。
最开始用的阈值算法,跑出来的结果总是迟缓,水都漫过警戒线半分钟了才开闸。
后来我又换了一套预测模型,把上游十几个水文站过去五年的数据全录进去,才勉强让系统提前一分四十秒预警。
别小看那不到两分钟的时间,真要是汛期,那就是能救命的。
郑鹏飞看我天天加班,有时候会给我带杯热的。
那天晚上十一点多,他路过我工位,看了看屏幕,皱起眉头:“你这套东西,做出个完整的以后,千万别全交给薛宏伟。留个心眼,至少自己兜个底。”
我嘴上没说话,心里却记住了。
我的技术底子不是学校那几年攒的,是这三年在公司加班加点一点点磨出来的。
刚来的时候,水闸控制组的老工程师退休的退休、转岗的转岗,留着一堆老代码没一个人懂。
我翻了整整一个月的文档,把那些没人碰的模块一个个啃了下来。
所以这次薛宏伟把核心算法交给我,我一点都不觉得意外。全组上下,能写底层逻辑的,只有我。别人做不到,他才轮得到我。
但我也不是傻子。大学里出来工作这三年,我见过太多嘴上跟你客气、背后捅你一刀的事。
从那天开始,我多了个习惯:每次阶段性做完一个版本,就把全部代码打包,存进自己的加密U盘。
U盘上的密码只有我自己知道,绑定的是我手机上的动态口令。
没有我手机那个六位数验证码,谁插上U盘也打不开。
日子一天天过去。
离年底汇报还有一个半月的时候,基本模型已经跑通了。
我一个人在公司加班到晚上十点,系统模拟洪水来了、闸门自动开了、水位降到安全线、闸门又自动关上,整套流程走下来,屏幕上跳出一行绿色小字:调度成功。
我盯着那行字,愣了半天。
那感觉像是自己养了一个孩子,终于学会走路了。
我做了个简单的汇报PPT,把核心思路画成了一张算法流程图,发给薛宏伟过了一版。
那天他看完,笑了半天:“小林,我就知道你行。这个方案拿上去,今年咱们组稳了。”
我也跟着笑了一下,说:“等年底汇报完,我再把整个文档整理齐。”
薛宏伟摆摆手:“不急不急。你做的方案,我心里有数。到时候我带你一起去跟于总汇报。”
他还拍了拍我的肩膀。
那是我进公司三年头一回觉得,自己总算熬出来了,总算被人看见了。
可事实证明,我到底还是太年轻了。
02
发现U盘被动过,是一个周五的早晨。
那天我照常到公司,推开工位坐下,把U盘从口袋摸出来正想插上电脑,手突然停住了。
U盘上裹着一圈透明胶带,是我上周为了防滑缠的,特意撕了一个斜坡口,好辨认正反。
可现在,那道胶带的边缘微微翘了起来,好像被人揭下来又重新粘回去似的。
我不会记错。
像这种事,我一向仔细。
U盘放在我外套内袋里,每天下班都带在身上,从来没有离过手。
唯一一次离开过我视线,是上个星期二下午。
那天薛宏伟把我叫到隔壁小会议室,说水利局那边来了一份数据补充协议,让我过去帮他的助理对一下参数。
我就顺手把外套搭在了工位椅背上,连口袋里的U盘一起留在了外面。
等我回来,外套还在椅子上,U盘也在口袋里。
当时我没多想。
可现在回想起来,那天我离开工位的时间,刚好有二十五分钟。
我坐在椅子上,心里翻来覆去想了很久,最终没有声张,只是把U盘插进电脑,检查了一遍里面的文件。
文件都在,一个没少,日期也没有改动过的痕迹。
但那个“最后访问时间”让我心里一沉。
系统显示,昨晚凌晨1点24分,这个U盘里的主工程文件夹被打开过一次。
我从不熬夜到凌晨一点。而且昨晚我十点就回家了,U盘一直锁在抽屉里。
我心里发紧,又翻了一遍U盘的文件,发现最外面的工程外壳文件被人翻看过,但最核心的算法参数包没有被动过,因为那个文件单独用动态口令加密过。
没有我手机上的验证码,谁也没办法打开。
我坐在椅子上,后背一层冷汗。
郑鹏飞从后面经过,看出我不对劲。他给我倒了杯水,低声问:“出什么事了?”
我犹豫了一下,还是把U盘的事讲了。
他听完没吭声,过了好一会儿才说:“你最近做的那套算法,薛组长时不时在办公室里提。说年底要靠这个新系统露脸,隔壁几个组长都酸得很。他那个人,嘴快得很,你越往上走,他越要分你一杯羹。”
我捏着水杯,手指有点发白,说:“也许只是他拿去给于总看了看。”
郑鹏飞笑了:“那你觉得,他看你的方案,需要撬开你的U盘吗?”他说完,自己也觉得笑不出来了。
他低头想了想,又开口:“小林,我跟你说个事,你听就行,别去找他闹。你记不记得去年第三季度,咱们组原来那个姓蔡的工程师?”
我点头。那个工程师去年下半年突然辞职,走的时候好像跟薛宏伟闹得非常不愉快,连离职手续都是委托HR办的,没有回公司来过。
郑鹏飞压低声音:“他不是自己要走的。他做了一套算法,薛宏伟拿过去跟大领导汇报,说是自己带团队搞的。老蔡不服气,在部门会上跟薛宏伟对质,说他连那套代码的变量命名规则都不知道。结果薛宏伟恼羞成怒,在考核表上给他打了个D。D,你懂吧?等于变相开除。”
他说到这里,直直地看着我:“那个D评完之后不到一个月,老蔡就走了。”
我手里的水杯晃了一下。半天没说话。郑鹏飞把声音放得更低:“你现在做的那套东西,比老蔡那套值钱多了。你觉得薛宏伟会放过你吗?”
我深吸了一口气,把U盘从电脑上拔下来,放回口袋,在口袋里攥得死紧。
那天晚上加班到最后一个离开办公室,我把工位抽屉里的东西翻了一遍,确认没有任何可疑的装置。
回到出租屋,我打开了电脑上那个很少用的加密文件夹。
里面存着我从开始做这个项目以来的所有过程稿。
从第一版粗糙的数据格式,到后来磨合得越来越顺畅的预测模型,每份文件都带着真实的日期戳和历史版本标记。
我盯着那份文件夹看了很久,心里拿定了一个主意。第二天中午,我提交了一封公司内部异机备份审批邮件。
内容写得很正式:申请缘由写的是“年度重点项目的开发过程留痕”。
备份范围只写了工作目录的完整副本。
密级填了“内部”。
“备份目的”那一栏,我斟酌了半天,还是如实写了:“防止本地设备故障或数据丢失,不涉及外部网络传输。”
审批流程走的是IT部的加密存储归档,公司内部系统,由IT部负责人签字,抄送部门总监。
然后,我用了一个下午时间,把本地工作机上的完整工程文件做了加密打包,通过内部系统提交到公司加密服务器的独立归档区。
审批邮件于11月18日下午三点通过。
这件事,我没有跟任何人提过。
包括郑鹏飞。
03
离年底汇报还有五天,公司的出差通知下来了。
林歆婷,赴上海参加智慧水利行业展会,技术支持,四天。
发通知的行政助理江小婉,把单子递给我的时候,眼睛没敢看我,只说了一句:“薛组长说你这边手头没有特别急的活,让你去跑一趟。”
我心里咯噔一下,却没有拒绝:“好,什么时候走?”
“明天上午。”
我拿着出差通知单回到工位,心里反复琢磨着“手头没有急活”这句话。
整个研发三组,我是最清楚这套系统进度的人。
核心算法还有最后两处参数没有调完,就算出差,我也带着笔记本电脑在酒店里改,一天都没耽误。
但薛宏伟不会知道这些。在他眼里,我走了,工位上空了,电脑屏幕灭了,就等于项目暂时停摆了。
那天下午,郑鹏飞从外面走进来,路过我工位时停了一下,低声道:“出差单子批得这么快,不像他做事的风格。他那人一向爱拖着下属的出差审批,好让活跑不掉。这回一反常态,有点奇怪。”
我没接口。但我知道他要说什么。
出差那晚,我收拾行李时,把外套里那枚加密U盘取了出来。
走之前我反复摸了摸U盘的金属外壳,最后还是把它锁进了出租屋的抽屉里。
公司电脑上的工程文件已经全部做了内部异机备份,加密空间里的完整快照我出差前一晚又重新提交了一次。
11月21日早上,上海展会开幕。
我在展馆待了一天,帮人调试了两次设备,晚上回到酒店时已经快十点了。
手机屏幕突然亮了一下,是郑鹏飞发来的消息。
“你那边怎么样?”
我回了一句:“还在忙。公司那边没什么事吧。”
他没有直接回答,隔了很久发过来一条:“PPT封面已经在改了。”
我盯着手机屏幕,大拇指悬在键盘上方,愣了好一会儿。他在另一头又发了一条:“别想多了,你的那份底稿还在呢。”
我把手机翻过去扣在床头柜上,盯着天花板发了一会儿呆。
我说不好那是什么感觉。有愤怒,有委屈,但更多的是一种又冷又倦的平静。
其实我不是没有想过,薛宏伟会动我的方案署名。
但我总觉得,他至少应该先跟我打声招呼,也许画个更大的饼,许一个更好的承诺,而不是趁我人在外地,偷偷把我的名字擦掉。
我打开笔记本电脑,连上酒店的WiFi,登录公司加密备份系统。
在归档区里看到11月18日那封审批通过的邮件截图,才觉得心里踏实了一些。
那天晚上我在酒店翻来覆去,到了凌晨三点才迷迷糊糊睡着。
第二天展会现场人多嘈杂,我站在摊位后面接洽访客。
口袋里的手机震了一下,我掏出来一看,是江小婉发来的,内容很短:“林工,不好意思。薛组长的意思,我照办了。”
我看了半天,没有回复。
上午十一点,趁去洗手间的空档,我拨通了郑鹏飞的电话。
他接起来,声音压得很低:“他们已经把PPT排完了。第一页主标题是研发三组薛宏伟,还加了个副标题叫一阶段核心成果汇报。”
我说:“我的名字呢?”
他沉默了几秒:“在参与人员页,第六个。”
“第六个。”我重复了一遍。第六个,排在几个连项目都没碰过的同事后面。
郑鹏飞轻声问我:“你打算怎么办?报告后天就做了。要不要我私下找找于总,把事情先透个风?”
我沉默了很久,说:“不用。”
电话那头安静了一会儿:“你真咽得下这口气?”
我没有回答,只说:“我先忙了,展会这边好几个人等着。”然后就挂了电话。
说咽得下那口气是假的。
可我更不能在汇报前把事情捅出去。
现在闹,薛宏伟一句“组内统筹安排”就能把我堵回来。
到时候他再在考核表上做手脚,我连退路都没有。
我必须等一个最合适的时机,等他当着所有人的面,把自己底牌亮出来的那一刻。
只是,我还没有想到于达总监会亲自按下这个开关。
04
出差回来后,已是下午四点。
我推开办公室的门,一股闷热的气流扑面而来。
江小婉抱着一沓文件迎面走过,看到我,脚步微微顿了一下。
她嘴唇张了张,像是想说什么,却只挤出一句:“回来了?”
我点了点头。她没有再说话,低头快步走了出去。
我走到自己工位前,打开电脑,登录公共文件目录,找到了那份正式版PPT。
封面那行字就这样硬生生地撞进眼睛里:“智慧水利物联调度系统一阶段核心成果汇报,研发三组,薛宏伟。”
我盯着那行字看了很久,手指按在鼠标上,指节有点发酸。
其实那几天人在上海,我已经做好了心理准备。
可看到成品的这一刻,心里那根弦还是被狠狠拨了一下,震得半天缓不过劲来。
郑鹏飞端着咖啡过来,站在我身后扫了一眼屏幕,没说话,只是用指尖轻轻敲了两下我的桌面。我心里明白他的意思:冷静。
我翻开参与人员列表。第六位,林歆婷。名字缩在一群人的中间,像一块褪了色的补丁。
我关掉页面,深吸一口气,站起来,走向薛宏伟的办公室。
他正坐在椅子上打电话,看我推门进来,笑容反而更浓了一些。
他对着电话随口说了句“晚点再聊”,放下手机,抬起头看着我:“小林,回来了?上海那边怎么样?”
我没有坐下,只问了他一句话:“薛组长,方案封面的名字,怎么换了?”
他笑了笑,伸手示意我先坐,然后端起杯子喝了一口茶:“你说这个事啊,组里综合考虑了一下。一阶段汇报,要突出统筹成果,不能光提技术贡献的人,显得太小家子气。你年轻,以后机会多的是,别计较这一次。”
我站在原地没有动:“可是这套核心算法架构和全部代码逻辑,都是我写的。”
他脸上的笑容淡了一瞬:“小林,干工作嘛,每个人都有自己的分工。你负责技术,我负责拿方向,拿方向的人,名字排在前面,这也是行业惯例。你还年轻,不太懂这里面的门道。”
我张了张嘴,还想再说什么。
他已经低下头翻开手边一份文件,不看我这边了:“行了,年底汇报完再说。你先去忙吧,明天上午还要彩排。不用你上台,你在下面听一听,有什么细节问题回头再跟我提。”
说完他挥了挥手,像打发一个来交材料的实习生。
我站在他办公室里,那扇玻璃门没有关紧,廊道里吹来的风裹着一股干燥的空调味儿扑在我脸上。我站了大概几秒钟,转身走了出去。
回到工位,我打开电脑里的系统安全日志,翻查过去一周的记录。
结果比我想象的还要直接:从我出差的第二天晚上开始,我的本地工作机在凌晨时段被远程登录过三次。
用户名都是我的,但访问来源IP不是公司前台办公区的网络段。
也就是说,有人用管理员权限远程操作了我的电脑。
操作记录,已经被清干净了。他们拷贝走的东西,是那套核心工程文件里所有不带加密的外壳版本,包括界面截图、数据流图、报告正文。
但那个真正跑得通的算法内核,他们碰不了。
因为我单独打包过那个文件,绑定的是我手机上的动态口令。没有验证码,就算把整个硬盘拆走,他们打开的也是一堆乱码。
我心里悄悄松了一口气。
然后打开内部系统,检查那封保存在加密归档区的审批邮件,确认状态栏里写着已经通过。
我又看了一遍当时的备份清单,里面包含了我所有开发过程中生成的代码快照、日志和测试录像。
日期是11月18日,比我出差早了整整三天。
我关掉页面,低头坐了一会儿。
郑鹏飞适时走过来,往我桌上放了一杯温的豆浆。
他没问刚才在薛宏伟办公室发生了什么,只是压低声音说了一句:“明天大会,于总主持。整个研发中心的人都到齐。”
我捧着那杯豆浆,点了点头。
江小婉从工位那头绕过去的时候,脚步顿了一下。
她好像想告诉我什么,但最终什么也没说,只是眼神里有些说不清的东西,像是内疚,又像是害怕。
我心里苦笑:你也会怕?
05
汇报那天,外头天气挺好。阳光透过会议室的百叶窗,在长桌上划出一道道灰白的光影。
我坐在第十排靠墙的位置。前面乌压压的人头,研发中心从各组骨干到文员全来了,能坐的椅子都坐着人,门口还站着几个。
薛宏伟站在主讲台前,西装笔挺,头发梳得一丝不乱。
他没有领带到场的习惯,这回却打了一条酒红色的领带,显得格外精神。
他把U盘插上电脑的那一刻,我看到他手指有点抖。
不是害怕,是兴奋。
他清清嗓子,开始了:“各位领导、各位同事,今天由我来汇报我们研发三组一阶段的核心成果。这套智慧水利物联调度系统……”
PPT翻过一页又一页。
我坐在台下,隔了老远看着他熟悉得像在背课文一样把我的方案讲得头头是道。
第一页。
第二页。
第三页翻到算法框图的时候,他顿了一下,之后很快接着说下去。
他又会划拉几下鼠标,把那张图放大缩小,假装在讲解。
我心里突然有了一种奇怪的感觉,像是隔着玻璃看另一个人在演一出写着我台词的戏。
原本我以为自己会愤怒到坐不住。但真到了这一刻,我的心脏却跳得很平稳。也许是这三个月来,我早已在心里把这出戏预演了无数遍。
旁边的郑鹏飞不动声色地碰了碰我的胳膊,我低下头,发现他把手机屏幕亮过来,上面就四个字:“他背熟了。”
我没回,又把目光抬回台上。
汇报到中段,一切还算顺当。
薛宏伟对PPT的熟悉程度确实做了功课。
连一些专业术语都念得有板有眼,加上他台风老练,说话抑扬顿挫,台下几个总监频频点头。
就在这时,坐在主位上的于达总监动了动,把手里的资料翻到其中一页,停了下来。
一直没有打断过汇报的他,忽然抬头看了一眼大屏幕,又看了看薛宏伟:“宏伟,你刚才说,这套系统已经做完了端到端全流程自动测试?”
薛宏伟立刻笑着接话:“对,于总。模拟环境下已经跑通过三轮。”
于达点了点头,“啪”地一声合上手里的文件夹:“正好,小李把测试机搬过来了,系统也装上了。你现场给大家演示一下吧。”
会议室里忽地安静下来。
薛宏伟脸上的笑意僵了一瞬。
他下意识地看了一眼于达手里那个文件夹,又转向桌上那台崭新的笔记本,笑着说:“于总,演示环境稍微有点复杂,今天时间也有限,要不,我用PPT里的录屏给大家展示?”
于达摇头,语气不重,却没有半分商量的余地:“你刚才说的端到端全自动测试,是有实操记录的,那跑一遍也就几分钟。耽误不了吃饭。股东那边上次还特意交代过,要看看我们团队的真功夫,你演示一下,大家心里也踏实。”
全场目光齐刷刷地聚焦在薛宏伟身上。
他咽了口唾沫,脸上勉强挂着笑:“那好,我试一下。”说完,他接过了那台测试机,慢吞吞地打开了系统。
屏幕一亮,弹出一个登录框。
他输入了自己的账号和密码,进去之后,主界面出现了一个弹窗:请输入动态口令。
他点在触控板上的手指悬停了。
他翻了翻旁边的笔记本,好像想找什么记录。
翻到某一页时手指停了一下,那页我记得,是他托江小婉问我要的口令说明。
但那上面,只有口令规则,没有当天密码。口令绑定的是我的手机,每六十秒换一次。
他犹豫着输入了一次,错误。又输入了一次,还是错误。
会议室里的人开始交头接耳,嗡嗡的声音像一群绕着头顶飞的蚊子。
于达总监坐在台上,手指没有再翻动他的笔记本,只是静静地看着薛宏伟的侧脸。
薛宏伟的额头上,慢慢地渗出了一层细密的汗。
他转身从口袋里掏出手机,似乎想给人发消息。
可他看了一眼全场的人,又把手机放回了口袋。
他不能在这个时候发消息问,那等于承认自己没有碰过系统。
他站在台上,手扶着那台测试机,一动不动。
我等了很久的那句话,终于从自己嘴里轻轻吐出来,只有坐在旁边的郑鹏飞听到了:“他连自己写的系统,都登不进去。”
热门跟贴