一
我叫周远,今年三十二岁,在省城一家科技公司当了五年程序员。说是程序员,其实就是个写代码的。我们公司做的是物流管理系统,客户主要是中小型物流企业。我在技术部干了五年,从一个小白做到技术骨干。公司的核心系统,百分之六十的代码是我写的。那些代码像我的孩子,我熟悉它们每一个模块、每一行语句、每一个可能出错的角落。我熬夜改过bug,通宵加过班,在沙发上睡过觉,在办公桌下打过地铺。我把青春耗在这家公司,把健康也搭进去了。颈椎病、腰椎间盘突出、慢性胃炎,职业病我一个没落下。五年,我从一个满头黑发的年轻人变成了头发稀疏、眼袋深重的中年人。
去年秋天,公司换了新领导。新来的技术总监姓刘,三十五岁,从大厂空降下来的。他不懂我们公司的业务,不懂我们的客户,不懂我们的系统,但他懂管理。他来了以后第一件事就是开人。老员工一个个被叫进办公室,出来的时候脸色灰败,抱着纸箱走了。走的人越来越多,剩下的人人心惶惶。
我没有被叫进办公室,我等了三天,没等到通知。第四天,人事部的小王来找我。
“周远,刘总让你去他办公室。”
我放下手里的代码,走进总监办公室。刘总坐在大班椅上,手里转着笔,看着我。
“周远,你在公司干了五年了?”
“五年。”
“技术不错,但公司现在要转型,你的能力可能跟不上了。公司决定跟你解除劳动合同。这是补偿方案,你看一下。”
他把一份文件推到我面前。我拿起来翻了翻,N+1的补偿,按最低工资标准算的,少得可怜。我没有争辩,拿起笔签了字。他大概没想到我会这么干脆,愣了一下,把文件收了回去。
“周远,你的工作交接一下,明天就不用来上班了。”
“交接什么?系统是我写的,里面的坑只有我知道。你让新人自己挖吧。”
我转身走了,没回头。身后传来他把笔摔在桌上的声音,闷闷的一声,像某种骨头碎裂的动静。我没理会,收拾东西,抱着纸箱,离开了那栋我待了五年的写字楼。站在大楼门口,阳光刺得我睁不开眼。我在那栋楼里待了太久,久到忘了外面的阳光有多刺眼。我眯着眼睛看了一眼那个巨大的公司Logo,心里说不上是什么滋味。不是恨,是不值。五年的青春,喂了狗。狗吃了骨头还知道摇尾巴,他们连头都没抬。
离职以后,我在家待了两个月。每天睡到自然醒,买菜做饭,看书晒太阳。日子悠闲得不像话,但心里空落落的。写了五年代码,突然不写了,手痒。我买了一台新电脑,配置很高,装好开发环境,却不知道该写什么。我像一个被废了武功的侠客,剑在手,却不知刺向何方。剑是冷的,手也是冷的,心也是冷的。我把它擦了一遍又一遍,放在桌上,等一个出鞘的机会。
机会来得比我预想的快。
那天下午,我接到一个陌生电话。对方自称是某物流公司的技术经理,姓张。他说他们公司用了我们公司的系统,现在系统出了故障,数据对不上,账目混乱,急需修复。他问了几个同事,知道是我开发的,所以找到我。
“周工,您看能不能帮我们修复一下?费用好商量。”
“你们找我们公司售后啊,找我没用。”
“找了,他们搞不定。系统太老了,现在的人看不懂。他们说当时是你一个人写的,别人接手不了。没人接得了,你的代码别人看不懂。你的注释也写得少,别人翻了半天也搞不明白那些变量是什么意思。后来他们不找了,也找不着。”
我握着手机,心里忽然涌上一股说不清的滋味。不是快意,是悲凉。五年,十万行代码,垒起来比我还高。那些代码像一座城堡,每一块砖都是我自己烧的,每一堵墙都是我自己砌的。我把城堡盖好了,他们把我赶走了。现在城堡漏水了,需要我回来修。他们想起我了,晚了。城堡不会漏水,墙会裂,地基会下沉,梁柱会朽。那些砖是我一块一块挑选的,那些字是我一个一个敲进去的,它们认识我。
我是一个被遗弃的工匠,城堡还记得我。
我答应了,开价五千。对方没还价,当天就把系统故障的日志发了过来。我花了一天时间分析问题,又用了一天时间修复。第三天,系统恢复正常。张经理打来电话,千恩万谢,说以后有问题还找我。
那天晚上,我做了一个决定。既然公司用我的系统,又不给我维护费,那我就自己挣这个钱。那些客户本就是我开发的,我比任何人都熟悉。
我的手机开始频繁响起。都是那些物流公司的技术负责人,系统出了故障,找我修复。我一一接下,按次收费。一个月下来,挣了一万多块。比我上班时的工资还高。
我把这个消息发在技术论坛上,引来一片热议。有人说我牛,有人说我狠,有人说我应该把系统开源,让更多人使用。我笑了笑,没有回应。这是我的孩子,怎么能随便给人抱走?他还在襁褓里,我还在喂奶,别人抱走了会饿死。我不能让他饿死。
二
我的前公司,那家把我开除的公司,他们的系统也开始出问题了。先是数据库死锁,然后是接口超时,再然后是数据丢失。客户投诉不断,业务几乎瘫痪。新来的技术团队忙得焦头烂额,却找不到问题根源。他们看不懂我的代码,理解不了我的架构,还原不了我的思路。我的注释太少了,变量名太随意了,模块划分太个人化了。他们像走进了一座迷宫,没有地图,没有指南针,连出口在哪都找不到。
刘总监急得团团转。他找了好几个外包团队,都搞不定。要么报价太高,要么技术不够。他四处打听,终于打听到我的消息。
电话是周五下午打来的。我正坐在阳台上晒太阳,手机响了,是一个陌生号码。
“周远,是我,刘志刚。”
我愣住了。刘志刚,我的前总监,那个把我开除的人。我握着手机,没说话。
“周远,你在吗?”
“在。”
“系统出问题了,客户那边催得紧。你能不能回来帮我们看看?”
我听着他的声音,心里没有一点快意。只是想,早知今日,何必当初?当初我求着你们用我的系统维护,你不肯,现在出问题了想起我了?
“刘总,我回不去。我现在手头有项目,走不开。你们先找别人吧。”
“找了,找了好几家,都搞不定。代码只有你看得懂。”
“那你们把系统换了吧。换一套成熟的,别用我这个半吊子了。”
“来不及了,客户那边等着用。周远,你开个价吧。”
我看着远处灰蒙蒙的天,把手机换到另一只手上。
“六十万。”
电话那头沉默了。
“周远,你这不是趁火打劫吗?”
“刘总,你觉得贵可以不找我。我无所谓的。”
“你——”
他挂了电话,气冲冲地摔了话筒。
我不急。系统不等人,客户不等人,时间不等人。我像一个垂钓者,把鱼线甩出去,等着鱼咬钩。鱼饵很大,鱼钩很尖,鱼很饿。它绕着鱼饵转了几圈,游走了,又游回来,又游走了,又游回来。它在犹豫,在试探,在权衡利弊。我等着,鱼总会咬钩的。
一周后,电话又响了。
“周远,六十万太高了,能不能便宜点?”
“六十六万。”
“你——怎么还涨了?”
“一周时间,涨六万。刘总,你要是不抓紧,下周就是七十万了。”
他沉默了很久,呼吸声在听筒里又重又急,像拉风箱。大概在心里骂我,骂我黑,骂我狠,骂我不是东西。骂完了,还得求我。他放下身段,放下尊严,放下一切。在他的业绩面前,在那张椅子面前,那些东西都不值钱。
“行,六十六万。你什么时候来?”
“明天。你把合同准备好,钱先到账,我再看系统。”
“周远,你别太过分。”
“刘总,不是我过分。是你们当初做得太绝。我给你们干了五年,你们踢我走。现在系统出问题了,你们想起我了。六十六万,一分不能少。你要是觉得贵,可以找别人。我无所谓的。”
他挂了电话。第二天,合同到了,六十六万,一次性付清。钱到账的那一刻,我坐在沙发上,看着手机银行里的余额,心里没有一点波澜。不是高兴,不是解气,是悲哀。悲哀的是,我的价值要用这种方式体现;悲哀的是,他们宁愿花六十六万请我回来,也不愿花六万留下我;悲哀的是,他们都活成了自己当初讨厌的样子。
三
周一早上,我穿了一件干净的白衬衫,去了前公司。前台小姑娘不认识我了,问我找谁。我说找刘总。她看了一眼我的访客登记,表情有些惊讶,拨了内线电话。
“刘总,周远先生到了。”
“让他进来。”
我走进电梯,按了六楼。走廊很安静,脚步声在地毯上化成了无声。我在那间办公室门前停下来,敲了一下,推门进去。刘总坐在大班椅上,面前的桌上放着一沓文件。他看见我,站起来,脸上挤出笑意。
“周远,你来了。快坐快坐。”
“不用了。系统在哪?我先看看。”
“不急不急,先喝杯茶。”
“不用了,刘总。我时间有限,看完系统还要回去。”
他的笑意僵在脸上。他从桌上拿起那沓文件,递给我。
“这是系统这段时间的故障日志,你看看。”
我接过来翻了翻,脸上没有变化,心里已经有数。这些故障,有些是系统本身的缺陷,有些是数据量增大导致的性能瓶颈,有些是运维人员的误操作。它们像一个个肿瘤,长在系统的各个器官上,有的良性,有的恶性,有的已经扩散。我是那个主刀医生,需要把它们一个一个切除,还不能伤到健康的组织。
“这些我能修。但丑话说在前面,我只修这一次。修完以后,系统能正常运行,后续的维护你们自己负责。要是再出问题,另收费。”
“行,行,你说了算。”
我从包里掏出笔记本电脑,连上公司的开发环境,开始干活。键盘声噼里啪啦,像雨点打在窗户上。三年了,久违的感觉。我的手指在键盘上跳舞,一行行代码在屏幕上跃出。那些代码像老朋友,好久不见,但一见如故。
中午,刘总让食堂送了饭菜。我没吃,继续干。
下午,他亲自端了一杯咖啡进来,放在我手边。
“周远,喝杯咖啡,休息一下。”
“放那吧。”
一直到深夜,大楼里只剩下我一个人。我揉了揉酸涩的眼睛,保存代码,提交,打包,部署。系统恢复了。它像一匹病了很久的马,站起来了,嘶鸣了一声,声音不大,但有力。它还能跑,还能驮着货物奔跑千里。它的腿还在,它的肺还在,它的心跳回来了。我摸了摸桌上的键盘,把它装进包里,站起来,走到刘总办公室门口。灯还亮着,他坐在椅子上,双手撑着额头,大概是在等我。
“刘总,系统恢复了。”
他站起来,快步走过来,握着我的手,握得很紧。
“周远,谢谢。”
“不用谢。我是收了钱的。”
我抽出手,转身走了。身后传来他的叹息,我没有回头。
走廊很长,脚步声在瓷砖地面上回荡。那些回音像我写过的代码,一行一行排列整齐。它们在这栋楼的服务器里沉睡,等待着被唤醒。我唤醒了它们,它们又活了。
电梯门开了,我走进去,按了一楼。门关上的那一刻,我看见了走廊尽头站着一个身影,是刘总。他站在那里,望着我,嘴巴动了几下,没发出声音。大概是说“再见”,大概是说“对不起”。
四
我没有再回那家公司。听说系统后来没有再出过大问题。小问题不断,他们又找过我,我没接。不是不想接,是不想再看见那张脸。那张脸曾经对我颐指气使,后来对我卑躬屈膝。谄媚比傲慢更让人恶心。
我把那六十六万存了起来,一部分买了理财,一部分捐给了贫困山区的学校。我捐了一所小学的图书馆,书架上摆满了书,孩子们可以看,可以借,可以带回家。他们不知道这些书是谁捐的,不知道那些书背后藏着一个程序员的故事。他们只需要知道,这世界上有人爱他们,有人关心他们,有人在看不见的地方默默付出够了。
那些书很多,花花绿绿的,挤在一起。它们不说话,但每本书里都有一个世界。孩子们可以在那些世界里遨游,可以成为任何想成为的人,可以去任何想去的地方。我不想成为他们,他们也不想成为我。他们只想成为自己。我也是,只想成为自己,成为一个自由的人,一个能掌控自己命运的人。
去年秋天,我接了一个大项目——为一家物流公司开发一套全新的管理系统。我一个人做,从需求分析到架构设计,从编码实现到测试部署,全包了。这是我离职后接的最大一个项目,也是我职业生涯中最具挑战性的一个项目。我用了三个月,每天工作十几个小时,写了三万多行代码。系统上线那天,客户很满意,当场付了尾款。我拿着那笔钱,在省城买了一套小房子。不大,两居室,朝南,阳光好。我站在阳台上,看着远处的天际线,心里浮起一句话:这房子是我自己挣的,不是他们施舍的。
那六十六万还在卡里,一分没动。那是我的尊严,我的价值和我的底线。
五
上个月,刘总又打来电话。说公司被一家大集团收购了,集团要求更换系统,需要我提供授权。他的语气很客气,跟以前判若两人。像换了个人,温柔,低声下气,甚至带着一丝巴结。
“周远,系统是你开发的,版权属于你。集团那边需要你出具一份授权书,证明公司有权使用这套系统。你能不能帮我这个忙?”
“刘总,授权可以,但我有个条件。”
“什么条件?”
“六十六万。”
“又是六十六万?周远,你不觉得你这辈子跟六十六万杠上了?”
“不是我跟六十六万杠,是你跟六十六万过不去。你当初要是给我六十六万,我也不至于被开除。你把我开除了,现在又来求我,六十六万是给你的教训。”
他沉默了片刻。
“周远,你能不能看在老同事的份上,便宜点?”
“不能。你当初开除我的时候,看老同事的份上了吗?”
他不说话了。他的呼吸声越来越重,越来越急促,像要溺水的人在水里挣扎。我没松手,他也没喊救命。我们僵持着,僵持了很久。他很想骂我,那些脏话在他嗓子眼里滚来滚去,差一点就脱口而出。他咽回去了。不是不想骂,是不敢骂。
“行,六十六万。合同我让人拟,明天发给你。”
挂了电话,我站在阳台上,看着远处灰蒙蒙的天。天上没有云,没有鸟,没有飞机。只有一片灰蒙蒙的空洞。
尾声
合同发过来了,六十六万,一次性付清。我签了字,扫描,发回去。钱到账的那一刻,我打开银行App,看了一眼余额,然后退出去,把手机放在桌上。
那笔钱一分没动,我不需要它。我需要的是他们把还给我,把我的软件还给我,把我的孩子还给我。
他们抱走了我的孩子,虐待他,折磨他,把他的身体搞得千疮百孔。他们不配拥有他,他是我创造的。
那套系统后来还是被换了。新系统功能更强大,性能更优越,界面更美观。它像一个英俊的年轻人,充满活力,充满朝气。我的孩子老了,旧了,不合时宜了,它老了,我也老了。
老了的系统会被人遗忘,老了的程序员也会被人遗忘。代码还在,硬盘还在,服务器还在。它们在那个机房里日夜不停地运转,为那些物流公司处理数据,为那些货车规划路线,为那些仓库管理库存。它们不知道自己的父亲是谁,不知道自己的父亲曾经为它们流过多少汗,熬过多少夜,掉过多少头发。它们不需要知道,它们只需要运转,一直运转,直到报废的那一天。
报废的那一天,它们会被人从机柜里拆下来,擦去灰尘,贴上标签,扔进仓库。它们会和其他废旧的服务器堆在一起,落满灰尘,无人问津。也许有一天,会被回收,会被拆解,会被熔炼,变成新的金属,新的零件,新的服务器。
新的服务器里,会安装新的系统,由新的程序员编写。那些程序员不知道,在他们之前,有一个叫周远的人在这条路上走过,跌跌撞撞,满身伤痕,走得很慢,但从未退后。
他一个人走了很久,走得很孤独。路上没有同伴,没有路标,没有路灯。他一个人摸着黑走,走得很慢,但从未停下。
他走过的地方,后来变成了路。路上有脚印,深一脚浅一脚。那些脚印很快会被新的脚印覆盖,会被风吹散,会被雨水冲刷。人走过的地方总会有路,走过的人总会被忘记,我来了,也会走。
热门跟贴