创作声明:本文为虚构创作,请勿与现实关联
那天下午两点十七分,恒图科技的服务器机房里,所有人都在盯着同一块屏幕。
周大成的手指悬在键盘上方,一动不动。
他已经在这里坐了将近十八个小时,眼眶发红,工位上摆着三个空咖啡杯。
屏幕上的报错信息一行一行往下刷,每刷一行,机房里就安静一秒。
江博文站在他身后,领带松了一半,声音压得很低:"还要多久?"
周大成没有抬头:"进不去。"
走廊那头传来脚步声,林晓璇推开机房的门,手里拿着手机,神情比前两天平静了一些,但嘴唇绷着。
她在门口站了两秒,看了一眼屏幕,又看了一眼江博文,什么都没说。
三个人都没说话。
机房的风扇低鸣着,屏幕上那行字还在那里,像一把锁,插孔朝外,钥匙不在这个房间里。
第01章
工位上的东西不多,我装了不到二十分钟。
一个帆布袋,装进去三本书、两个充电器、一个保温杯,还有压在最底层的一个黑色封皮小本子。
本子边角已经磨白了,看上去就是普通的草稿本,我顺手把它扔进袋子,压到充电器下面。
林晓璇站在我工位旁边,手里拿着一张离职清单,眼神往袋子里扫了一眼。
"顾晨阳,公司规定,离职当天带走的个人物品需要过一遍。"
我把袋子提起来,递给她。
她翻了翻,充电器、书、保温杯。
翻到那个本子的时候,停了一下,抽出来,随便翻开中间几页——密密麻麻的字,几张歪歪扭扭的示意图,旁边还有一堆看不出规律的数字串。
"这是什么?"
"记算法思路的草稿,"我说,"写到哪算哪,你要留着也行,不过对公司没什么用。"
她又翻了两页,把本子塞回去,把袋子还给我。
"好,签字走流程吧。"
人事主管把离职协议推过来,A4纸,三页,第二页第七条,我盯着那行字看了大概十秒钟:在职期间参与开发的全部成果,知识产权归公司所有。
我把笔放下。
"这条我不签。"
林晓璇抬起头,表情没什么变化,像是早就预料到了。
"这是标准条款,每个离职员工都签的。"
"我知道是标准条款,但我不签这条。"
沉默了几秒,她看了一眼人事主管,然后低声说了一句话,语气比刚才软了一点:"顾晨阳,这不是我的决定,你明白的。
走完流程对大家都好。
我看着她,没说话。
这句话她说得很平,但我听出了底下的另一层意思——她是在告诉我,闹没有用,闹了也只是让自己难看。
我重新拿起笔,在第七条上画了一道,写了"本人对此条有异议,不予确认",然后在旁边签了名。
人事主管皱了下眉,去找法务确认,来回折腾了将近四十分钟,最后拿来一份删掉第七条的版本,我签了。
把工牌交出去的时候,林晓璇已经不在了。
走廊里有人低着头往会议室走,没人跟我打招呼。
我提着帆布袋过安检,闸机嘀一声开了,我走出去,头也没回。
电梯门关上的那一刻,我在镜子里看见自己的脸,平静得像刚从便利店买了瓶水出来。
那天下午我在家附近的面馆吃了碗面,坐在靠窗的位置,外面车来车往,我把帆布袋放在脚边,用筷子搅了搅碗,没什么胃口,但还是把面吃完了。
账上的钱能撑四个月,软著的登记回执两周前已经到了,压在家里抽屉里,我没告诉任何人。
那个时候我就知道,这件事不能急,急了反而什么都拿不回来。
除夕那天我回了趟家,顾建国在厨房炒菜,烟气把整个厨房弄得雾蒙蒙的。
吃饭的时候他问了一句:
"你那个系统,还在跑吧?"
我夹了块鱼,没有立刻回答。
"在跑。"
他点了点头,没再说什么,转头去给自己倒了杯酒。
饭桌上安静了一会儿,窗外有人在放鞭炮,噼里啪啦的声音隔着玻璃传进来,断断续续的。
我看着桌上那碟花生米,想起下午在面馆的感觉,又想起那份删掉第七条的协议,现在压在我床头柜里,和软著回执放在一起。
顾建国又夹了口菜,低头吃饭,不再问了。
他不知道我在等什么,我也没打算解释。
有些事放在那里,就放在那里,时候到了,它自己会动。
第02章
顾建国那句话说完,饭桌上就再没人开口。
我把碗端起来,喝了口汤,没有味道,或者说有味道但我没尝出来。
窗外的鞭炮声断断续续,远处又响了一串,近了,又远了。
那顿年夜饭吃到最后,剩了大半桌菜。
第一年是最好过的。
我这样说,不是说那一年轻松,而是说那一年我知道自己在等什么,心里有底,脚底下踩得住。
软著回执压在抽屉里,账上那点钱我算过,省着用能撑四个月,我没省,我去找了沈嘉宁。
沈嘉宁那时候刚从一家做供应链的公司离职,手里有几个客户资源,没有启动资金。
我们在一家很小的咖啡馆里谈了三个小时,他把我的情况从头听完,没有打断,等我说完才开口。
"你打算什么时候动?"
"不急。"
他看了我一会儿,把杯子推到一边,说:"你那个系统,现在应该还在用吧。"
我说在用。
他说那就等。
他说得很平,不像是在安慰我,更像是在做一道数学题,把几个变量摆出来,得出一个结论。
他说系统的依赖性会随时间增强,等它跑进公司的骨头里,再谈,筹码的重量完全不一样。
我听完没有立刻答应,但我知道他说的是对的。
我们就这样把公司注册了下来,接一些外包项目,不大,能活着就行。
第二年开始顺了一点,接到了两个稳定的客户,沈嘉宁去跑商务,我负责技术,配合得不算难看。
我们很少提恒图科技,不是刻意回避,而是没什么好说的,那件事放在那里,不需要每天拿出来看。
第三年是最难的。
不是生意不好,那一年反而接了几个大单,钱上面松动了一些。
难的是另一种东西,一种开始往下沉的感觉。
我有时候会想,如果一直这样下去呢?
如果那个系统他们就这样用下去,永远不升级,永远不触碰那个临界点,我手里的东西就永远是一张废纸?
那年除夕我又回了家。
顾建国还是在厨房炒菜,油烟机嗡嗡作响,他炒了个青椒肉丝,炒得有点糊,他自己不在意,端上来就摆在桌中间。
吃到一半,他放下筷子,没有看我,只是盯着桌面,问了一句。
"你那个系统,还在跑吧?"
我手里的筷子停了一下。
"在跑。"
他点了点头,又拿起筷子,夹了口青椒肉丝,嚼了几下,说:"那就行。"
就这四个字。
他不知道我在等什么,也不知道那个系统里埋着什么,他甚至不懂软件著作权是什么东西。
可他就是知道,只要那个系统还在跑,这件事就没完。
我不知道他是怎么知道的,可能是做父亲的某种直觉,可能只是他自己的逻辑,但那四个字落下来,我那口快要撑不住的气,稳住了。
年后我回去找了沈嘉宁,把那段时间的动摇说了个大概。
他听完,从抽屉里翻出一份他自己做的评估文件,推到我面前。
"我算过,"他说,"主动起诉,胜算不超过六成,成本在三十万以上,周期两到三年,对方会全力抗辩职务作品。"
我翻了翻那份文件,没说话。
"但如果等授权锁触发,"他继续说,"胜算不是六成,是他们必须坐下来谈。
你懂区别吗?
我懂。
起诉是求着对方给个答案,等授权锁触发是让对方求着你给密钥。
这两件事的性质完全不同。
第四年我们没有再提这件事,沈嘉宁去研究了一些授权协议的案例,我把手边的项目做完,偶尔打开那个记着密钥规则的小本子翻一翻,合上,放回去。
那本子放在书桌最下面的抽屉里,压着一张软著证书的复印件,正本在保险柜里,两把钥匙,一把我拿着,一把沈嘉宁存着。
日子就这样往前走,不快,不慢,走得有点像等水开。
第五年开春,我在行业群里看到一条消息,说恒图科技要对核心系统做大版本升级,引进新的调度框架,计划在年中完成切换。
我截了图,发给沈嘉宁,什么都没说。
他回了一个字。
"稳。"
我把手机放下,在桌边坐了一会儿,走到窗边,看了看外面。
楼下有人骑车过去,风吹着树叶,哗哗的。
我回到桌边,翻开日历,把年中那个月份的日期看了很久,然后用笔在上面画了个圈。
圈画完,我把笔放下,低声说了一句,屋里没有别人,只有我自己听见。
"快了。"
第03章
年中那个月份,我在日历上画了圈,等了整整六周,什么动静都没有。
第七周的周三,沈嘉宁发来一条消息,只有四个字:
"锁触发了。"
我盯着屏幕看了几秒,把手机翻过去扣在桌上,继续改手边的文档。
消息是下午两点十七分来的。
我知道那个时间点意味着什么——恒图科技的运维团队通常在下午两点做例行推送,新调度框架的升级包应该就是那个时段上线的。
版本号一跨过阈值,校验模块就会自动比对许可证状态。
没有有效许可证,核心调度模块直接进只读锁定。
锁一上,整个恒链系统就是一块砖。
沈嘉宁后来跟我说,他当时是在一个行业群里看到的第一手反应。
有人发了条消息,说恒图的供应链系统出了大问题,调度全停,仓库那边已经开始积货了。
消息发出来不到二十分钟,那个人就把消息撤了,但群里已经有人截图在传。
我没有进那个群,但我能想象江博文那天下午的样子。
他是那种遇到麻烦先找人骂一顿再想办法的人。
我在恒图做了三年,见过他发火,声音大得能穿过两道隔音门。
崩溃的第一天,据说周大成带着他的外包团队连夜进场,翻日志,查代码,试着在沙箱里还原调度环境。
周大成在行业里算是有点名气的,做系统运维出身,后来转技术外包,接过几个大厂的应急单子。
江博文应该是花了不少钱把他请来的。
可惜他不知道那个锁嵌在哪一层。
授权校验的逻辑我当年写进了底层调度算法的初始化模块,不是单独挂载的插件,不是能用工具扫出来的独立进程。
它跟核心调度逻辑长在一起,剥不开。
周大成要暴力破解,就得把整个调度模块推倒重写,而调度模块是整个恒链系统的心脏,动它就等于从头再来。
三天。
三天之后,系统还是一块砖。
第三天傍晚,我的手机响了。
号码是陌生的,但我看了一眼区号,心里有数,接了。
"晨阳,是我。"
林晓璇的声音,比五年前低了一些,带着一点我说不清楚的东西,像是在控制什么。
"璇姐,"我说,"好久不见。"
"你知道我为什么打这个电话。"
"不太确定,"我说,"你说说看。"
她停顿了一下,然后说:"系统的事,能不能私下谈一谈?
我知道里面有些东西……
可能跟你有关系。
“我把手机换了只手,走到窗边,外面楼道里有人在搬东西,推车轮子在地板上滚过去的声音。”
璇姐,你说有些东西跟我有关系,"我慢慢说,"什么东西?
热门跟贴