升职名额被人顶替,我即刻离职,董事长劝忍让,我冷笑:已辞职
楔子
深秋的夜风卷着枯叶拍在玻璃上,林远盯着屏幕上跳动的光标,指尖敲下最后一行代码。七年了,他主导的三个核心项目刚为集团多挣了三千多万,而今晚是晋升评审系统关闭的最后一夜。走廊尽头传来急促的脚步声,王慧气喘吁吁地推开门,眼神躲闪:“林哥,系统里综合评分第一是你,但人力总监办公室灯还亮着,他们好像在改排名。”林远的手指悬在回车键上,窗外的风忽然停了。
第一章 评分第一的名字被划掉
公示栏前围了七八个人,林远站在人群最外圈,目光越过前面同事的肩膀,钉在那张刚贴出来的晋升名单上。
技术部,晋升主管岗:陈立。
他的大脑空白了两秒,像运行中的程序突然被拔掉电源。周围同事陆续回头看他,目光里什么都有——同情、惊讶、躲闪,还有那么一丝难以掩饰的看热闹意味。
“林哥……”王慧从人群侧边挤过来,声音压得极低,嘴唇几乎没动,“昨晚我就跟你说了,系统里你综合评分是9.7,陈立才8.4。但人力那边凌晨三点把数据导出,重新过了权重。”
林远没说话,转身就走。走廊里有人给他让路,他径直上了三楼,推开周海涛办公室的门。
周海涛正站在窗前打电话,见他进来,迅速说了句“回头再说”便挂了。他脸上挂着惯常的和气笑容,但眼神明显在回避。
“周总,我想听个解释。”林远没坐,就站在办公桌前,声音平稳得不像刚被捅了一刀,“评分的事,还有那个权重调整,到底怎么回事?”
周海涛叹了口气,绕回办公桌后坐下,两只手交叉搁在桌面上,斟酌了十几秒才开口:“小林,你的能力,我比谁都清楚。这七年你给部门扛了多少事,我都记着。但这次晋升……是上面的意思。”
“上面是谁?”
“李副总亲自打的招呼,董事长也点了头。”周海涛的声音越说越低,“陈立手上有个市政项目的人脉,他表舅那边牵的线。公司今年的战略方向要拿政府订单,这个节骨眼上……”
“所以我的评分被换掉了。”林远把话接过来,语气里没有疑问,全是陈述。
周海涛没否认,只是从抽屉里摸出烟盒,抽出一根在桌上顿了顿:“小林,听我一句劝,忍一忍。你才三十二,明年还有机会。董事长记得你的贡献,这个亏不会让你白吃。”
林远看着他手里的烟,忽然想起去年也是在这间办公室,周海涛拍着他的肩膀说“这次晋升你最有希望,我肯定为你争取”。那时候周海涛桌上摆的还是他送的那罐茶叶。
“周总,我入职七年,主导了三个核心项目,光给集团多挣的纯利就有三千多万。去年系统升级,我在机房连续待了四天三夜,出来的时候苏瑶说我走路都在打晃。这些……就值一句明年再等?”
周海涛沉默。
林远也没指望他回答,他只是把该说的话说完。沉默在办公室里漫开,窗外忽然传来一声汽车鸣笛,尖锐得像一道口子撕破了什么。
“你先回去冷静冷静。”周海涛终于站起来,伸手要拍林远的肩,“晋升名额虽然只有一个,但年终奖和项目分红上我可以帮你争取——”
林远侧身让开了。
“不用了,周总。”他的声音依然很平,“我回去干活。”
周海涛的手悬在半空,脸上的笑容终于维持不住了。他张了张嘴,喉结上下动了动,最后只挤出一句:“别冲动,有事明天再说。”
林远回到技术部时,陈立正站在他的工位旁边,手里端着一杯刚冲好的咖啡,跟几个同事有说有笑。看见林远进来,陈立转过身,嘴角的弧度藏都藏不住。
“远哥,昨晚又加班到很晚吧?我就说嘛,你那些代码写得太细了,连注释都标得清清楚楚,新人接起来也容易。”陈立把咖啡杯换到左手,伸出右手,像是要握手,“回头我请你吃饭,技术部还得靠你撑着呢。”
这话听着客气,但林远和他都清楚,晋升主管岗意味着什么——接下来所有核心项目的分配权、技术路线的决策权,都将从周海涛手里转移到陈立手上。而陈立要“请”他吃饭,不过是胜利者对失败者的施舍姿态。
林远没接那只手。他走到自己的工位前坐下,电脑屏幕还亮着,上面是他昨晚刚完成的那份技术方案,最后一行注释写着:架构优化建议—林远。
陈立的手僵在半空,脸上的笑终于淡了。旁边几个同事面面相觑,王慧低着头假装整理文件,手指在文件夹上捏得发白。
“远哥,这就是你的不对了。”陈立收回手,端着杯子往自己工位走,经过林远身后时低声丢下一句,“识时务者为俊杰,你在华远待了七年,这点道理还不懂?”
林远没回头,手指搭上键盘,把那份技术方案另存为备份。屏幕上弹出保存成功的提示框,他盯着那个绿色的对勾看了很久。
他想起七年前刚入职那天,周海涛带他参观技术部,指着墙上的标语说“这里是凭本事吃饭的地方”。那面墙上的字现在还在——“技术为本,创新为魂”。只是今天再看,那八个字蒙了一层灰。
苏瑶从外面开完会回来,一进门就感觉到了气氛不对。她走到林远工位旁,看见他手边那份技术方案和屏幕上还没关掉的晋升公示网页,嘴唇动了动,但办公室里人多,她最终只是轻轻把一杯热茶放在他手边,低声说了句:“下午的项目会,我帮你推了。”
林远抬头看她,苏瑶的目光很稳,没有同情,没有询问,只是微微点了一下头。那个点头像在说:我知道发生了什么事,我站在你这边。
这大概是今天唯一让他觉得没那么冷的东西。
他端起那杯茶,茶水很烫,透过纸杯壁直直地暖进掌心。窗外深秋的风又起了,枯叶打在玻璃上,啪啪作响。整个技术部都在正常运转,同事们在工位间走动、电话铃声此起彼伏、键盘敲击声连绵不断,一切如常。
但林远心里清楚,有些东西已经碎了。
那份技术方案还开在屏幕上,光标停在最后一行。他把手从键盘上移开,看向周海涛办公室的方向。透过磨砂玻璃,隐约能看见里面的人影在来回踱步。周海涛在给谁打电话,他大概猜得到。
林远收回目光,对着屏幕深深吸了一口气。七年了,他把最好的时间、最硬的活儿、最笨的忠诚都给了华远。如今评分第一的名字被划掉,只用了一个凌晨。没人跟他谈过,没人问过他的想法,甚至连个正式通知都欠奉。
论坛上那句话怎么说的来着——你以为你是公司的栋梁,其实你只是公司的砖头。砌哪里、扔哪里,全凭别人一句话。
苏瑶在不远处坐下,打开自己的电脑,没再看他,但林远注意到她把工位上的日历翻过了一页。那个动作很轻,但落在林远眼里,像一声闷雷。
他站起来,拿起那份打印好的技术方案,走向技术部尽头的碎纸机。机器嗡鸣几声,把七年的日日夜夜绞成细碎的纸条。纸屑落进收集箱的时候,林远觉得胸膛里有什么东西也跟着碎掉了。
他回到工位,打开邮箱,收件箱里还躺着一封昨天没来得及看的邮件,发件人是远航科技韩磊,主题写着:诚邀面谈——技术合伙人。
邮件是三天前发的,当时他看完就归档了,心想自己不会离开华远。现在他重新点开,把每一个字都读了一遍。
然后他按下了回复键。
屏幕上光标闪烁,林远的手指悬在键盘上方,余光里是苏瑶侧脸的轮廓,是陈立端着咖啡洋洋得意的背影,是周海涛办公室紧闭的门。
他深吸一口气,开始打字。
“韩总,你好。关于面谈的事,我想尽快安排。”
点击发送的那一刻,林远没有觉得解脱,也没有觉得痛快。他只是觉得,七年来第一次,他终于把命运的方向盘握回了自己手里。
深秋的阳光从窗外斜照进来,在他桌面上投下一道光斑,恰好照亮了他手边那张皱巴巴的晋升公示复印件。陈立的名字印在纸上,像一枚扎进掌心的图钉。
林远把那张纸翻过去,背面朝上,压在那杯已经凉透的茶下面。
第二章 茶水间里的真相与冷眼
茶水间的门在林远身后合拢,把走廊里打印机的工作声隔绝在外。他本想来接杯热水,却在拐角处听见了王慧压低的声音。
“真的,我亲眼看到的,人力那边昨晚十一点多还在改系统。陈立的名字本来排第四,后来直接调到了第一位。”王慧背对着门口,手里攥着手机,“李副总亲自打的电话,说这个名额必须留给陈立,谁有意见可以直接找他。”
站在王慧对面的是技术部另一个同事,那人叹了口气:“林远也太亏了,评分系统里他甩了陈立快二十分。”
“评分有什么用?”王慧转过头,正好看见林远站在门口,脸色刷地白了,“远哥……”
林远没说话,走到饮水机前按下出水键。热水哗哗地灌进杯子,氤氲的蒸汽模糊了他的视线。他的手很稳,杯子一次就接满了,没有溅出一滴。
“说下去。”林远抿了一口水,语气平淡得像在听一场与自己无关的项目汇报。
王慧咬了咬嘴唇,最后还是开了口:“周总监找过李副总,说评分差距太大,硬调的话底下人肯定有意见。但李副总回了一句——评分是死的,人是活的。董事会那边赵董没反对,这件事就定了。”
“赵董知道评分吗?”林远问。
“知道。人力把两份档案都递上去了,赵董翻了一下,只问了一句陈立能不能搞定政府那个项目,李副总说没问题,赵董就签字了。”
林远点了点头。杯子里的水汽已经散尽,水面平静得像一面镜子,映着茶水间惨白的灯光。他想起去年董事会,赵建国在台上讲了一个小时的企业文化,说华远最看重的是公平和奋斗,只要你有本事,公司绝不亏待任何一个功臣。当时台下掌声雷动,林远拍得手掌都红了。
“远哥,你也别太……”王慧试图找补,“周总监其实帮你争取过,但李副总那边直接找到了赵董……”
“我知道。”林远打断她,不想再听下去了。拼图的最后一块已经嵌上,整个画面清清楚楚——陈立的表舅是分管技术的副总裁,副总裁手上有董事长想要的政府项目资源,一个晋升名额就是这笔交易的筹码。这就是周海涛常说的“平衡”。
他走出茶水间的时候,正好撞上陈立从会议室出来。陈立身后跟着两个行政,手里抱着会议材料。看见林远,陈立停下来,整了整他那件新买的深灰色西装,领带打得一丝不苟,皮鞋亮得能照出人影。
“林远,下午的项目交接会定在两点,你准备一下。”陈立的语气里带着一种公事公办的腔调,好像那个晋升名额从来就没有争议过,“你手头那三个项目的技术文档要全部移交给我,尤其是恒远那个架构,我看了下,有些设计思路要调整。”
林远看着他,没有立刻接话。两个人站在走廊中间,路过的同事都放慢了脚步。
“文档在我电脑里,随时可以拷。”林远说。
“好。”陈立满意地点了点头,往前走了两步,又停下来,像是想起什么似的,“对了,那个恒远的架构,我昨天研究了一下,你用了一种很取巧的算法,虽然能跑通,但从长期维护角度看太复杂了。我打算重构,你到时候配合一下。”
林远的手指微微收紧了杯子。那套架构是他花了整整八个月时间,熬了无数个通宵设计出来的,从底层逻辑到每一行代码都反复推敲过。恒远项目上线一年,零故障运行,为公司拿下了行业技术创新奖。陈立昨天才拿到文档,今天就敢说“取巧”。
“恒远的架构有完整的测试报告和压力数据,重构之前建议你先看一下。”林远的声音没有什么起伏。
陈立笑了笑,那种笑带着一丝居高临下的意味:“林远,我知道这些东西是你写的,你舍不得。但技术这东西更新很快,不能总抱着老一套不放。我在北大读EMBA的时候,老师说过一句话——今天的最好表现,是明天的最低要求。”
他没等林远回话,转身朝自己办公室走了。身后那两个行政小跑着跟上,其中一个回头看了林远一眼,目光里带着点说不清的东西。
林远站在原地,听见茶水间方向传来王慧低低的声音,像是在跟谁打电话,语气急促。他没去听,转身往技术部办公区走。走到一半,他看见苏瑶从周海涛办公室出来,怀里抱着一摞文件夹,脸色不太好看。
“怎么了?”林远拦住她。
苏瑶停了一下,左右看了看,压低声音:“周总监让我从今天起全力配合陈立做项目交接,所有资料先给陈立过目。我之前跟的恒远项目后续维护,也全部转给陈立那边的人。”
“这是你的项目。”林远说。
“现在不是了。”苏瑶扯了扯嘴角,那个笑有点苦,“陈立刚在周总监那儿说的话跟你有关——他说你对项目文档有‘个人情感依赖’,建议把交接工作交给第三方来做,以确保‘客观中立’。”
林远沉默了好几秒。深秋的风从走廊尽头的窗户缝里钻进来,凉得刺人。
“苏瑶。”他叫她名字的时候声音很轻。
“嗯?”
“你信我吗?”
苏瑶把怀里的文件夹换了个手抱,抬头看他,眼里的东西很坚定:“你做的每一个项目我都跟过,我比任何人都清楚它们是怎么从一张白纸变成能扛千万级流量的系统。陈立要重构恒远,那是他的事。但我觉得你应该做你该做的决定。”
她没有说“忍一忍”,没有说“别冲动”,也没有说“明年还有机会”。她只是说“你该做的决定”。这句话像一道缝隙,让林远心里压了整整一天的东西终于透进了一丝光。
他点了点头,转身走回自己的工位。走廊尽头那面墙上,“技术为本,创新为魂”八个字还在,阳光从侧面照过来,把字体的阴影拉得很长。
林远坐下来,打开邮箱,新建了一封邮件。收件人:周海涛。主题:关于本人离职及相关工作交接的说明。
他打字很快,没有犹豫。这封邮件他早就该写了,只是以前每次想动笔的时候,总有个声音在说——再等等,公司会看到你的付出的。现在那个声音消失了。
屏幕上的光标匀速前进,一行行文字出现在空白的页面上。窗外又一阵风起,枯黄的梧桐叶撞在玻璃上,又被卷走,跌进楼下的车流里,再也看不见。
第三章 董事长办公室里的那杯茶
周海涛是亲自走到林远工位旁来的。他弯下腰,一只手搭在隔板边缘,声音压得很低:“林远,赵董事长要见你。现在。”
林远的手还放在键盘上,屏幕上那封辞职邮件只写了一半。他偏过头看了周海涛一眼。总监的脸上看不出什么特别的表情,只是眉头比平时收紧了一些,嘴角习惯性的弧度也拉平了。
“董事长?”林远重复了一遍。
“对,就现在。他在办公室等你。”周海涛直起身,又补了一句,“泡好茶了。”
林远把没写完的邮件最小化,站起来的时候膝盖发出了一声轻响。技术部办公区里几个人抬起头,目光在林远和周海涛之间来回移动。王慧从行政台后面探出半个身子,眼神里满是欲言又止。林远从她的工位旁经过,听见她极轻极快地说了三个字:“小心点。”
董事长办公室在顶楼,走廊尽头那间,门是厚重的实木,两侧各摆一盆修剪齐整的罗汉松。周海涛敲了两下门,里面传来一个温和的声音:“进来。”
赵建国坐在红木茶台后面,身上是一件深灰色的中式对襟衫,袖口挽到小臂中段。他正用一把竹镊子往紫砂壶里拨茶叶,动作从容缓慢,像是在做一件极需要耐心的事。茶台上已经摆好了两个青瓷杯、一个玻璃公道、一把烧得正沸的铸铁壶。
“远来了,坐。”赵建国抬眼看了一下,手里的动作没停。
周海涛把林远领进来,自己却没坐。他在林远肩头轻轻拍了拍,低声说:“我先回部门,你们聊。”然后退了出去,门无声地合上。
林远在茶台对面的椅子上坐下。这张茶台他以前来过一次,是三年前恒远项目上线成功那天,赵建国把整个项目组叫上来喝茶,当时也是这张台子,只不过那回围了七八个人,说说笑笑,赵建国亲自给每个人斟了一杯。今天只有他们两个。
赵建国把沸水注入紫砂壶,盖上壶盖,用热水淋壶身。蒸汽升腾起来,带着一股炭焙的烟香。他看着那缕白汽,开口了。
“远,你来公司七年了吧?”
“过了春节就七年整。”
“七年。”赵建国重复着,把公道杯拿起来,将泡好的茶汤斟入杯中。琥珀色的液体在青瓷杯底轻轻打旋。“你知道我这公司成立多少年了?二十三年。二十三年里,进进出出多少人,我数不清了。但能让我记住的,一只手数得过来。”
他把其中一杯推到林远面前。
“恒远那个项目,你带着六个人做了大半年,上线当天我看了后台数据,峰值并发破八百万,稳得一批。那个项目让公司拿下了华东区三成的新客户。后来的云枢平台、智联供应链系统,也都是你扛的大梁。七年,你给公司带来的直接利润,不用我算吧?”
林远没碰那杯茶。茶香很浓,但他鼻子里还残留着技术部走廊里那股空调滤网没洗的灰尘味。
“赵总,您有话直说。”
赵建国端起自己那杯,呷了一口,放下来的时候茶杯底座在红木上磕出清脆的一声。
“晋升的事,你心里有想法。”
“我想知道为什么。”
赵建国看着他,眼神里有一种说不清的复杂,像是长辈看一个不懂事孩子的无奈。他往椅背上一靠,手指交叉放在腹前:“远,你业务能力没得说,这一点全公司上下没人否认。但公司不是学校,不是考试考第一就能拿奖学金。公司是一盘棋,每个棋子的作用不一样。”
“陈立那棋子,作用是什么?”
赵建国嘴角微微一动,像是笑,又像不是。他俯身从茶台下面的抽屉里取出一份文件,翻开到某一页,转过来推到林远面前。那是一份合作意向书的复印件,盖着华远集团和某省属企业的公章,金额栏写着“壹亿贰仟万元整”,最后一页的签名栏里,有一个手写签名林远隐约觉得眼熟。
“李副总的表舅,在这个项目里帮忙牵了线。”赵建国收回文件,重新放进抽屉,声音放得更缓了,“省属的那个盘子,我们跟了两年没啃下来。李副总出面之后,两个月就拿到了入围资格。远,你懂技术的复杂,但你不懂人心的复杂。这个名额给陈立,换来的是什么,你看到了。”
林远盯着赵建国的手,那双摆了二十三年棋局的手,骨节分明,指甲修剪得干干净净。他想起那套恒远架构里最核心的容错算法,他当时花了三个月才找到最优解,每一行代码都像是一块精密咬合的齿轮。三千万的利润是真金白银进了公司账户的。
“我做的恒远架构,给公司挣了三千万。加上云枢和智联,前后加起来超过六千万。”林远的声音不高,但每个字都清楚,“这些顶不过一个人脉。”
赵建国的手停了一瞬。茶台上的铸铁壶还在咕嘟咕嘟冒着热气,水汽在两人之间缓缓上升。
“远,你今年三十二了。”赵建国的语气换了一种,像是长辈在劝自家子侄,“有些事不能只看眼前。明年,明年只要我在位一天,那个位置就是你的。我亲口给你承诺。但今年,你帮我这个忙,忍一忍。”
他往前倾了倾身子,手搭在林远搁在茶台边缘的小臂上。掌心温热,指腹有一层硬茧,那是早年跑业务留下的,林远以前听人说过。
“人在江湖,身不由己。你今天坐我的位置,你也会这么选。”
林远低头看着赵建国搭在自己小臂上的那只手。窗外是深秋的城市,灰蒙蒙的天际线上有一排排玻璃幕墙反射着冷光。七年前他刚进公司的时候,工位在最靠里的角落,冬冷夏热,但他觉得那是全世界最好的地方,因为他终于可以做自己想做的技术。后来每上一个项目,他都觉得自己离那个理想更近了一点。直到此刻。
他轻轻抽回了手臂。动作很轻,赵建国的手落回了茶台上。
“赵总,您泡的这杯茶,我喝不起。”
林远站起来。椅子腿在地板上划出很轻的一声响。他看了看那杯从始至终没有碰过的茶,琥珀色的茶汤已经凉透了,叶底沉在杯底,抱成一团。
“公司的大局我理解。李副总的人脉也确实有价值。”林远垂着手,语气平静,“但我加过的那些班、熬过的那些夜、写过的那些代码,不是拿来给大局让路的。您说的江湖,我以前信的,现在不信了。”
他转身朝门口走。走到门边的时候,赵建国的声音从背后传来,仍旧是那个温和的调子,但多了一分不易察觉的硬:“远,出了这扇门,事情就回不了头了。你再想想。”
林远的手已经握住了冰凉的铜制门把。他停了一步,没有回头。
“赵总,您刚才说七年里能让您记住的人一只手数得过来。巧了,能让您记住的项目,也差不多是这么多。恒远、云枢、智联,这三个项目的技术文档,陈立手里应该都有备份了。您让他重构的时候,记得告诉他——那些‘取巧’的算法,每一行都有注释和测试用例。别改错了地方。”
他拉开门。顶楼的走廊空旷安静,日光从落地窗倾泻进来,在地砖上铺出一片刺眼的白。
赵建国没有叫住他。身后只传来一声极轻的叹息,还有铁壶重新注水的声音。那壶水刚刚烧沸过一次,又续了凉的进去,等着下一次沸腾。
林远关上门,沿着走廊往电梯方向走。他的手机在裤兜里震了一下,掏出来看,是苏瑶发来的消息,只有五个字:谈完了吗?他盯着那几个字看了两秒,拇指在屏幕上悬着,最终没有回复,把手机塞回了兜里。
电梯门打开又合上,将他从顶楼带回属于他的楼层。门打开的瞬间,技术部办公区嘈杂的人声、键盘声、打印机声一起涌过来。他站在电梯口,看着那片熟悉得不能再熟悉的空间——靠窗第三排的工位上有他的机械键盘、那只用了四年的保温杯、杯壁上贴着一张恒远项目上线时的纪念贴纸。他觉得自己此刻站在两个世界中间。
第四章 我辞职,现在,立刻
林远回到工位的时候,整个技术部的人都在假装忙碌。王慧从隔断后面探出头,眼神里全是问号,嘴唇动了动,但看到林远面无表情的样子,又把话咽了回去。林远把椅子拉开,坐下,电脑从休眠中亮起来,屏幕上还停留着他昨晚加班到十一点半写完的那份技术方案,第三版优化,针对恒远架构在并发场景下的响应瓶颈,他用了将近三个星期才找到最优解。
他没有看那份文档。鼠标移到左下角,新建了一个空白文档,光标在页面顶端闪动。
辞职信。
三个字打完,他停了一会儿。七年的时间,浓缩在一页A4纸上,其实用不了多少行。林远打字很快,但这一次敲得很慢,每一下都清清楚楚。他没有写情绪化的内容,只写了入职日期、离职原因、希望办理交接的时间。写到离职原因的时候,他的手指悬在键盘上方停了整整五秒。最后他只打了八个字:个人职业规划调整。
打印的时候他选了两份。打印机在茶水间旁边,嗡嗡响了两声,纸页从出纸口滑出来,带着微微的温热。他走过去拿,正好碰见王慧在泡咖啡。王慧端着杯子往旁边让了一步,压低声音问:“赵总怎么说?”
“没怎么说。”林远拿起打印好的辞职信,转身要走。
“林哥。”王慧又叫住他,声音更低了,“我刚从周总办公室门口路过,听到他在打电话,好像是给人力那边打的。陈立的事,可能真的定了。”
林远回头看了她一眼,点了下头。“谢谢。”他只说了这两个字,然后朝周海涛的办公室走去。王慧站在原地,手里的咖啡勺悬在杯口没动,看着他的背影,像是想说什么又不知道怎么开口。
周海涛的办公室门半开着。林远走到门口,看见周海涛正坐在办公桌后面翻一份文件,眉头皱得很紧,一只手捏着眉心。他抬头看见林远,先是一愣,然后目光落在林远手里那张纸上,脸色立刻变了。
“进来,把门关上。”周海涛把文件合上,站起来。
林远走进去,但没有关门。“周总,这是我的辞职信。”他把其中一份放到周海涛桌上,另一份拿在手里,“今天提交,按照合同,我一个月后正式离职。但剩下的年假和调休我想折算进去,实际交接时间大概两周。”
周海涛没有碰那张纸。他绕过办公桌走到林远面前,压着嗓子说:“你先别急。赵总刚才给我打电话了,他说再给你一次机会,有什么事可以坐下来慢慢谈。明年,明年那个位置肯定是你的,这一点赵总可以写进书面承诺。”
“周总。”林远打断他,“您带了我七年。恒远项目最难的三个月,是您帮我挡住了其他部门的干扰,让我专心攻关。这份情我记着。但今天这件事,没得谈。”
周海涛叹了口气,额头上挤出两道深深的纹路。“林远,你听我一句。忍一时风平浪静。你现在走,等于把前面七年的积累全扔了。陈立是什么水平你比我清楚,他坐那个位置坐不稳的,到时候上面自然知道谁才是真正能扛事的人。你何必急于这一时?”
“就是因为我清楚他坐不稳,所以我才要走。”林远的声音不高,但每一个字都像钉在桌面上的钉子,“周总,一个连‘取巧’和‘真功夫’都分不清的团队,待着没意思。”
外面办公区的键盘声不知什么时候停了。林远回头看了一眼,隔着半开的门,他看到陈立站在自己的工位旁边,手里拿着一个文件夹,正朝这边望着。旁边几排的同事也都竖着耳朵,有人干脆转过椅子,光明正大地看。
陈立似乎犹豫了一下,然后走了过来,脸上挂着一个不太自然的笑。“林远,别冲动啊。”他站在周海涛办公室门口,一只手扶着门框,语气像是劝和,“我知道你心里不痛快,换谁都一样。但辞职这种事不能意气用事,你再跟周总好好聊聊。”
林远转过身,面对陈立。两人之间隔着不到三步的距离。陈立比林远矮半个头,此刻仰着脸,那个笑容在嘴角挂着,却到不了眼底。
“意气用事?”林远轻笑了一声,声音里没有温度。他往前走了一步,陈立下意识退了半步,背差点撞上玻璃隔断。“陈立,那个位置怎么来的,你比我清楚。好好坐。不过我劝你坐之前,先把恒远架构的容错算法看一遍。我写的注释,每一行都标了测试边界值。你看得懂的话,最好照原样保留。如果看不懂——”林远顿了一下,“你那个位置,坐着不会舒服的。”
办公区彻底安静了。打印机不响了,键盘声不响了,连中央空调的风声都好像低了下去。陈立脸上的笑僵在那里,嘴角抽了一下,想说什么,喉结动了动,最终一个字也没说出来。
林远不再看他。他转身走回自己的工位,从抽屉里拿出一个早就准备好的纸箱,开始一样一样地收拾东西。保温杯拧开盖子倒掉水,丢进箱子。机械键盘拔掉线,线绕好放进去。桌角那盆绿萝,他想了一下,没有拿。恒远项目的纪念贴纸他没有撕,就留在杯壁上,跟着杯子一起进了箱子。
苏瑶是从会议室出来的。她手里还拿着一沓资料,应该是刚跟产品那边开完需求会。走到技术部区域,她脚步停住了。整个办公区弥漫着一种说不清的沉默,所有人都在看林远收拾东西。陈立站在周海涛办公室门口,脸色铁青。周海涛站在办公室里,一只手撑在桌上,眼睛望着这边。
苏瑶的目光找到了林远。林远刚好直起身来,抱起了那个纸箱。两个人的视线在工位上方撞在一起。苏瑶的眼睛里有什么东西在快速闪动,嘴唇微微张着,像是下一秒就要开口说话。
林远想说什么,但最终只是轻轻摇了摇头。那个动作很轻,幅度很小,但苏瑶看懂了,他不会现在说,也不该在这里说。她的手指收紧,把那沓资料抱在了胸前,指节因为用力而泛白。她点了一下头,很用力地,像是要把某个决定也一起点进骨头里。
林远抱着箱子朝电梯走去。经过王慧的工位时,王慧突然站起来,从桌上抓了一个橘子递过去。“路上吃。”她的声音有点哑。林远接过来,放进箱子,对她点了一下头。
走到技术部门口的时候,身后传来周海涛的声音,比平时低了很多:“林远。”
林远停了一下,没有回头。
“辞职信我收下了。交接的事,明天再说。”
林远没有回应,抬脚走进了走廊。电梯门打开,他抱着箱子走进去。门合上的最后一道缝隙里,他看到苏瑶正站在技术部的玻璃门前,一只手按在门框上,那个橘黄色的影子在他视线里缩成一道窄窄的线,然后被金属门板彻底切断。
电梯往下走。林远低头看了一眼箱子里的东西——键盘、杯子、几本笔记本、一个橘子。三十二岁,七年,装不满一个箱底。
他掏出手机,打开了和苏瑶的对话框。她之前发的那五个字还在,他盯着看了两秒,打了一行字发过去:
“我先回去。明天下午三点,老地方。”
消息发出去,屏幕上立刻弹出对方的正在输入状态,跳了很久,最终只回来一个字:好。
电梯到底层,门开了。深秋的风从大厦门厅灌进来,带着外面银杏叶枯干的气味。林远抱着箱子走出去,前台的小姑娘抬头看了他一眼,欲言又止。旋转门外,是下午四点的天光,灰白、明亮、开阔。
他没有回头。
第五章 手机里的十七个未接来电
林远到家时,天已经擦黑了。他把纸箱放在玄关柜子上,换了拖鞋,先去厨房烧了壶水。水开的声音在安静的屋子里显得格外清晰。他靠着料理台站了一会儿,从口袋里摸出手机,屏幕亮起来的那一瞬间,消息和未接来电像开闸一样涌进来。
十七个未接来电。周海涛打了六个,王慧打了三个,还有几个来自部门同事,最让他意外的是陈立,两个。来电时间集中在下午四点半到五点二十之间。那正是他抱着箱子从大厦走出来的时间,是他站在路边等出租车、把箱子放在脚边、看着银杏叶一片片落在箱盖上的时间。
林远把手机调成静音,扣在餐桌上。水壶咕嘟咕嘟响着,他给自己泡了杯茶,端着杯子坐到沙发上,没有开灯。窗外的路灯透进来一格一格的光,刚好切在茶几边缘。他把茶放在光里,看着水汽缓缓升起来,散开,消失。
手机屏幕又亮了,是王慧发来的消息:“林哥,你还好吗?今天的事我都看到了。陈立刚才在会上说,明天开始技术部的周会由他主持。周总没说话。”
林远没有回复。接着又一条消息弹出来,是苏瑶:“在家?方便说话吗?”他拿起手机,正想拨过去,电话先响了起来。屏幕上跳动的名字是“周海涛”。林远看着那三个字,直到铃声断掉。紧接着又一次响起。他拿起手机直接按了拒接,然后发了一条文字消息过去:“周总,辞职信我已经交了,后续交接按流程走。电话就不接了,抱歉。”
对方几乎是秒回:“林远,你先别急着做决定。董事长那边我已经汇报了,他的意思是明天想找你聊聊。你冷静一晚上,明天上午给我个回话。”
林远没有再看,把手机放回桌上。过了不到半分钟,又震了一下。这次是陈立发来的消息,只有一句话:“林远,今天的事别往心里去。职场上有些事不是我能决定的,改天请你吃饭。”
林远盯着这条消息看了两秒,嘴角微微动了一下,然后长按,选择了删除对话。他把手机翻了个面,屏幕朝下扣在桌上,端起已经温了的茶喝了一口。
门铃响了。
他放下杯子走过去,从猫眼里看到苏瑶站在门外,手里提着一个纸袋。他拉开门,苏瑶站在走廊的灯光下,头发被风吹得有些散,鼻尖微微发红。
“你怎么来了?”林远侧身让她进来。
“发了消息你没回,猜你没心思吃饭。”苏瑶把纸袋放在餐桌上,从里面取出两个打包盒和一双筷子,“楼下那家粥铺还开着,买了你常喝的皮蛋瘦肉粥,还有一份蒸饺。”
“你还没吃吧?一起。”林远去厨房拿了两只碗,把粥分出来。两个人面对面坐在餐桌前,谁也没急着动筷子。安静了一会儿,苏瑶先开口:“今天下午,你走出大厦的时候,我在一楼大厅的茶水间窗户那儿看着你。你抱着那个箱子站在路边等车,等了快十分钟。我看着你上了车才回办公室。”
“为什么不上来找我?”
“我想。但当时陈立在走廊里站着,周总在办公室看着,我如果追出去,明天全公司都会传。我倒无所谓,但对你不好。”苏瑶的声音很平静,“不过现在下班了,不归他们管。”
林远舀了一勺粥送进嘴里,咽下去才说:“你看了我七年,从我来公司第三年开始,好像每次我遇到事,你都在某个角落里看着。”
“因为你从来不说。你高兴不说,委屈不说,要走也不说。”苏瑶放下勺子,目光直接落在他脸上,“今天下午你摇头那个动作,那个意思是你不想让我在那种场合说话。但我有眼睛。评分第一被划掉,换谁都无法接受。你辞职,我不觉得意外。”
林远放下筷子,靠着椅背。“苏瑶,我三十二了。七年,我拿过三次年度优秀员工,主导过三个核心项目,恒远架构的每一行核心代码我都亲手写过。结果呢?评审系统里我的综合评分排第一,人力总监能连夜改排名。董事长能为了李副总手里的人脉,让我忍。”
“所以你决定不回头了。”苏瑶用的陈述句。
“不回头。”林远说这两个字的时候声音很轻,但语气很稳,“我已经想好了,明天开始投简历。行业里做同类技术方向的公司就那么几家,凭我这三年的项目经验,找一个技术负责人的位置不算难。”
苏瑶看着他,眼睛里有一层薄薄的水光,但她笑了。“那你有没有想过,我也要走?”
林远愣了一下。“你的合同……”
“还有八个月。”苏瑶接过去,“但合同约束的是违约金,不是人心。你今天走的时候,我站在玻璃门后面,陈立转身就进了周总办公室,出来之后脸上的表情你没看到。他接手技术部第一天就踌躇满志,这种人掌权,留下的人不会有好日子。尤其是我,这些项目我都有参与,他知道我跟你是一条线上的。”
“先别冲动。”林远说,“我安顿好了你再动,现在走,违约金不是小数目。”
苏瑶没有接这个话,而是低头从包里掏出手机,调出一个页面递给他看。“远航科技,技术总监韩磊,今天下午五点多通过猎头联系我的。对方说他们正在组建新的研发中心,急需有大型项目架构经验的人,问我有没有兴趣。我看了一眼,这个韩磊是远航的联合创始人,技术出身,跟你路子很近。”
林远接过手机,快速扫了一遍招聘页面的内容。远航科技,成立不到四年,在智能物流和工业大数据领域做到行业前三,去年刚完成C轮融资,估值翻了六倍。行业里都知道,远航的技术团队是出了名的硬核,韩磊本人就是技术圈里有名的拼命三郎。
“他怎么会找到你?”林远问。
“猎头说,是韩磊自己列了一份行业内技术人才的名单,他排在前面的几个,包括我。”苏瑶顿了一下,“按照猎头的说法,韩磊习惯先找二把手,再定一把手。所以,他应该也会找你。”
话音刚落,林远的手机震了一下。他翻过来一看,一个陌生号码的来电,标注地是远航科技总部所在的城市。他看了苏瑶一眼,苏瑶微微点头。
林远接起电话。“喂,你好。”
“林远吗?我是远航科技的韩磊。”对方的声音干脆利落,语速比常人快一些,但每个字都咬得很清楚,“今天下午你在华远的事,圈子里已经有人说了。我让猎头查了你的联系方式,希望没有打扰到你。”
“韩总,你好。”林远说。
“我就不绕弯子了。”韩磊说,“你在华远做的恒远架构,我半年前就在一个技术论坛上看到过分享。你把工业物联网的容错算法做到了那个精度,国内不超过五个人能做到。我现在手上有一个更大的项目,需要一个能扛旗的技术负责人。明天或者后天,你方便来我们公司看看吗?不聊职位也行,就当技术交流。”
林远沉默了几秒,看了一眼苏瑶。苏瑶正安静地喝粥,但她握着勺子的手指微微收紧了一些,在听。
“明天下午吧。”林远说。
“下午三点,地址我发你手机上。到了直接找前台,就说韩磊约的。”韩磊说完顿了一下,“林远,多问一句,你确定不回去了?”
“确定。”
“好。那明天见。”
电话挂断。林远把手机放在桌上,看着苏瑶。“明天我去远航。你跟我一起。”
“面试?”
“见面。韩磊这个人做事很直接,他说技术交流就是技术交流。你去,可以以你个人的身份看看那边的方向,不一定要当场做决定。”林远端起碗把剩下的粥喝完,“你说得对,合同是约束,但人心是自己的。不过你还有八个月,怎么走,走不走,你自己定。”
苏瑶站起来收拾碗筷。“明天几点出发?”
“我两点来接你。”
苏瑶点了点头,把打包盒和筷子收进纸袋里。走到玄关换鞋的时候,她忽然转身。“林远。”
“嗯?”
“今天你从电梯里走出来那个背影,我看得特别清楚。”她的声音不大,但每个字都落在空气里,“你抱着箱子,肩膀是平的,背是直的。所以我知道,你没事。”
林远靠在门框上,看着她的眼睛。走廊的灯光从她身后照过来,在她轮廓上镀了一层淡淡的暖色。他想说什么,但最终只是伸手把她耳边那缕被风吹乱的头发轻轻拨到后面。
“路上小心。”他说。
苏瑶笑了一下,拉开门走进走廊。脚步声沿着楼梯间渐渐远去。林远关上门,回到客厅,拿起手机。十七个未接来电的界面已经消失了,取而代之的是韩磊的一条短信,只有简短的地址和一句“明天见”。
他把这条短信置顶,然后退出了消息列表。屏幕暗下去之前,他看了一眼那个华远集团的内部通讯软件图标。图标右上角显示着几十条未读消息的红点。
他没有点开。直接长按,拖动,卸载。
屏幕恢复了干净。
第六章 对手递来的橄榄枝
林远到远航科技楼下的时候,差十分钟三点。他站在园区入口看了一眼,远航的办公楼是园区里最旧的一栋,外墙刷的灰色涂料有几处已经剥落,露出底下的水泥面。一楼大厅只摆了一张长桌,桌上放着签到册和一支圆珠笔,墙边立着一台自助咖啡机,旁边贴了张A4纸,打印着“咖啡免费,请自备杯子”。
这和黄光远办公楼的挑高大堂、大理石前台、穿制服的前台接待员,完全是两个世界。
林远刚在签到册上写完名字,一个穿灰色卫衣的男人从楼梯上走下来。这人个子不高,身材精瘦,戴一副黑框眼镜,镜片后面的眼睛很亮。他走到林远面前伸出手。
“林远,我是韩磊。比约定时间早了十分钟,好习惯。”韩磊的手劲很大,掌心干燥粗糙,像是常年摸电路板或者键盘的人。
“韩总好。”
“别叫韩总,这儿没人这么叫。”韩磊转身往楼上走,步子很快,“叫我韩磊就行。办公室在四楼,没电梯,走楼梯没问题吧?”
“没问题。”
楼梯间的墙上贴满了打印的技术架构图,有些图的边角已经卷起来了,上面还有不同颜色的笔标注的修改痕迹。林远走过的时候扫了两眼,认出其中几张图是远航去年发布的核心调度引擎。图上的改动思路很清晰,但有几处简化虽然提高了响应速度,却牺牲了并发环境下的稳定性。他记在心里,没说什么。
到了四楼,韩磊推开一扇玻璃门。里面是一个大开间,摆了七八张桌子,坐了五六个人,每个人面前至少两台显示器亮着。有人戴着耳机敲代码,有人在白板上画流程图,角落里有人躺在一张行军床上睡觉,身上盖着一件印着远航logo的外套。
“这就是研发中心全部家当了。”韩磊指了指一张空桌子,“坐。”
林远坐下来。韩磊从隔壁桌上拖过来一块白板,顺手拿起一支笔。
“直接开始。我把项目说清楚,你听完给个反馈。”韩磊在白板上画了几个方框和箭头,“远航今年在谈一个千万级的大单,客户是国内最大的冷链物流企业。他们需要一套能同时处理十万台设备的实时调度系统。我们现有的架构跑三万台就顶天了,直接扩会把延迟拉到不可接受的程度。”
韩磊画了一条线,在线下方写了几个数字。“我研究过你在华远做的恒远架构。你的容错算法在设备批量上线时有自适应收敛机制,这是解决冷启动的关键。我们这边的架构师周明提了一个思路,用分区代理来分摊负载,但代理之间的状态同步一直有瓶颈。”
林远站起来,拿过韩磊手里的笔,在分区代理的方框旁边画了一个环形的拓扑结构。“把代理的状态同步从中心节点下放到相邻代理之间,每个代理只和左右两个邻居交换状态。中心节点只做版本管理,不做实时同步。代价是代理的局部视角有延迟,但可以通过版本回滚来补偿。”
韩磊盯着白板看了十几秒,拿起另一支笔在环形结构上画了一个叉。“延迟能控制到多少?”
“稳定状态下五十毫秒以内,异常切换时可能到一百五,但可以设计一个降级策略,异常时先切到只读模式,等状态同步完成再恢复写入。”林远指着环上的节点,“这三个节点可以做优先同步,它们是数据入口。”
韩磊放下笔,看着林远。“你用了多长时间想出来的?”
“从你画完图到现在。”
“三分钟。”韩磊笑了一下,然后把白板擦干净,把笔放在桌上。“行了,技术交流到这儿。我直接说条件。”
他坐回自己的椅子上,双手交叉放在桌上。“远航的技术合伙人,研发总监,负责整个调度平台的产品线。薪资是在华远的两倍,具体数字后面让HR跟你细谈。股权方面,C轮之后我们预留了核心技术团队的期权池,你可以拿到一个点,分四年成熟。”
林远没有接话。他看着韩磊的眼睛,后者也在看他,眼镜片后面的目光很坦荡。
“韩总,我有三个问题。”
“你说。”
“第一,技术合伙人这个头衔,在远航的决策链条里是什么位置。是只带研发团队,还是能参与产品方向的决策。第二,我来了之后,现有的架构团队谁来负责,是我重新搭班子,还是接手原来的团队。第三。”林远顿了一下,“你们看中我什么。”
韩磊听完,摘下眼镜擦了擦镜片。他没有立刻回答,而是重新戴上眼镜,身体往前倾,两只胳膊撑在桌上。
“第一个问题,技术合伙人有董事会观察员席位,产品方向由我和另外两个合伙人加上你,四个人投票决定,你有一票否决权,但只能用在技术方向的分歧上。第二个问题,现有架构团队由你重组,原来的架构师周明会向你汇报,他能力不错,但在大项目上缺全局观,需要你带。第三个问题。”
韩磊停了一下,看着林远。
“你的技术判断力,我在半年前那个技术论坛上就认了。你分享的恒远架构,从头到尾没有一句废话,每个设计选择都有明确的取舍理由,这在行业里很少见。很多人做技术喜欢堆概念,你的东西很干净。但真正让我决定找你的,是另一件事。”
“什么事。”
“你在华远干了七年,主导了三个核心项目,综合评分第一,结果被一个靠关系的人顶了。这种事在这个行业里不新鲜,每个月都在发生。绝大多数人的反应是什么?忍了,等明年。或者闹一场,然后拿一笔赔偿走人,换个地方继续打工。”
韩磊站起来,走到白板前,把刚才林远画的那个环形拓扑结构重新描了一遍。
“你没有闹,也没有忍。你当着董事长的面把辞职信拍在桌上,然后抱了个纸箱从电梯里走出来。整个过程干净利落,没有一点多余动作。”韩磊转过身,“我要的不是一个只会写架构的工程师,是一个愿意为自己的判断承担后果的人。技术可以学,骨气学不来。”
林远沉默了几秒。办公室里有人敲键盘的声音从远处传来,角落里行军床上那个人翻了个身,外套滑到地上,没人去管。
“我可以先做技术顾问。”林远说,“我了解一下远航目前的研发状况,看看我能不能适应你们的工作方式和节奏。顾问期一个月,如果双方都觉得合适,再谈入职的事。”
韩磊没有犹豫。“可以。顾问期间按日结算,费用你定。”
“按市场价就行。”
“那明天开始工作?”
“后天。”林远说,“明天我要处理一些私人的事。”
韩磊没问什么事,点了点头。“行,后天早上九点,你还坐这个位置。对了。”他像是想起了什么,“苏瑶那边,猎头跟她联系过了。如果她来,职位和待遇参照你的标准往下调一级,但期权池里单独给她留了份额。”
林远愣了一下。“你连她也会挖?”
“我说了,先找二把手,再定一把手。苏瑶在恒远项目里负责的是整个系统集成,这种既懂技术又懂项目落地的人,比纯架构师难找。”韩磊笑了一下,“当然,前提是你来了之后她也愿意来。我不会强求,你们自己商量。”
林远站起来,把椅子推回原位。他走到白板前,拿起笔把环形拓扑结构下方的一个节点标注改成了双重保险的边缘计算节点。
“这个设计我再完善一下,后天带完整方案过来。”
韩磊看了一眼改动,挑了挑眉。“你刚才说三分钟想出来的,现在看来不止。”
“你画的分区代理给了我启发。”林远放下笔,“后天见。”
他走出玻璃门的时候,回头看了一眼。韩磊正站白板前,拿手机对着林远的修改拍照。角落里那个睡行军床的人终于醒了,揉着眼睛走过来,和韩磊一起看白板上的内容。
林远沿着来时的楼梯走下去。经过二楼的时候,他听到一间会议室里传来激烈的争论声,有人在白板上飞快地写着什么,声音透过玻璃门传出来,全是技术名词和数字。没有人注意到门外走过去的陌生人。
走出远航大门,深秋的风灌进领口。林远站在园区门口,掏出手机给苏瑶发了一条消息。
“谈完了。后天正式做顾问。韩磊说也给你留了位置,你自己考虑。”
消息发出去不到十秒,苏瑶回了三个字。
“我考虑。”
又过了几秒,又来一条。
“你决定的,我信。”
林远看着那四个字,把手机放进口袋。路边停着一辆共享单车,车筐里落了几片梧桐叶。他扫了码,骑着车往地铁站去。风从耳边过去,吹得头发有些乱,但他没有减速。
第七章 陈立的第一把火
陈立上任后的第一次部门会议,定在周一上午九点。
林远走后的第五天,技术部大会议室里气氛微妙。长桌两侧坐满了人,苏瑶坐在靠窗的位置,面前放着笔记本电脑,屏幕亮着,上面是恒远项目二期架构的评审文档。周海涛坐在长桌顶端,面前摊开一个牛皮纸笔记本,手里转着一支签字笔,但一直没说话。
陈立站在白板前,西装笔挺,头发梳得一丝不乱,手里夹着一支记号笔,神采奕奕。
“各位,新官上任,我不说虚的。”陈立的声音洪亮,目光扫过全场,在苏瑶脸上停了一瞬,“恒远项目的二期架构,我看了三天,大方向是对的,但有优化的空间。林远的方案太保守了,扩展性有余,响应速度不足。我准备引入一套新的分布式缓存方案,整体重构接口层,预计可以将并发处理能力再提升百分之四十。”
会议室里安静了几秒。有人低头看笔记本,有人交换眼神。
苏瑶率先开口,声音很平:“陈主管,恒远二期的接口层是经过压力测试验证的,单节点承载峰值每秒一万两千次请求,分布式缓存方案在理论上限更高,但引入了新的网络跳数和一致性问题。在现有恒远的业务场景下,百分之四十的提升无法覆盖可靠性下降的风险。”
陈立脸上的笑容淡了一点,他转身在白板上画了一个简单的架构对比图。“苏瑶,技术是往前发展的,不能因为用了几年就觉得这个方案不能动。我做技术十几年,缓存方案用过太多种,恒远的场景我很清楚,重构之后的问题我能兜住。”
苏瑶没有退让:“您兜住问题的前提是测试环境完全模拟生产环境,但恒远一期的教训已经证明,上线前的压测数据和实际运行差距很大。一旦接口层出现雪崩,整个系统会在三分钟内全面瘫痪,这个后果——”
“苏瑶!”陈立打断她,把记号笔往桌上一搁,发出清脆的响声,“我是在通知你,不是征求你意见。恒远二期从今天起按照我的方案调整,这周五之前出改造方案。”
会议室里的空气像被人抽走了一截。周海涛终于放下签字笔,清了清嗓子,语气带着惯常的圆滑:“陈主管,苏瑶对恒远项目最熟,她的顾虑不是没有道理。要不这样,我们先组织一次技术评审会,把风险点过一遍,再决定改造范围?这样既推进工作,也稳妥一点。”
陈立转头看向周海涛,眼底闪过一丝不耐烦,但面上还挂着笑。“周总监,李副总上周特意交代过,恒远二期是今年的重点,要求技术部拿出革新方案,不能再走老路。李副总的原话是,要敢闯敢试敢突破,不能被过去的经验捆住手脚。您说,我这边刚接手,总得拿出点新东西来吧?”
话说到这个份上,周海涛沉默了两秒,嘴角动了动,最后只是微微点了一下头。“行,那就先做方案。”
苏瑶的手指无意识地收紧了。
她知道李副总是陈立的表舅,也知道周海涛夹在中间难做。但她看着白板上那个被简化得千疮百孔的架构对比图,想到林远花了三个月反复推演的每一个细节,想到那套架构上线的那个深夜,林远在会议室里对着压力测试数据一行一行检查的身影,胸腔里有什么东西在往上涌。
“陈主管。”苏瑶的声音比刚才低了一度,但每个字都清清楚楚,“恒远二期的架构方案,是经过七十三次压测、四次真实流量灰度验证才定下来的。林远在里面做的每一个取舍,都有备份数据和决策记录。这个方案经得起任何形式的评审。您如果一定要改,请给出书面技术分析报告,逐条说明优化项和对应的风险对冲方案。否则我不会在改造方案上签字。”
陈立的脸色彻底沉了下来,他盯着苏瑶,语气里带上了不加掩饰的压迫感:“苏瑶,你是项目经理,做好执行就行。技术决策的事,我来负责。你要是不愿意做,我可以换人。”
“您可以换人。”苏瑶站了起来,手按在桌面上,身体微微前倾,“但恒远的核心代码逻辑和测试数据在我手里,换人之前,请先把交接流程走完。”
会议室里响起一两声椅子挪动的声响,有人倒吸了一口气。陈立没料到她敢当众顶到这个程度,脸上的表情变了又变,最后挤出一句:“你这是什么态度?是不是林远走了,你也要跟着走?”
苏瑶看着他的眼睛,没有回避,也没有回答这个问题。她合上电脑,拿起桌上的笔记本,说了一句:“我手里的活会按流程推进,但恒远二期的架构改造方案,我需要李副总签字的书面指令才能执行。”然后她转身走向门口,脚步不急不缓。
陈立在身后提高了声音:“苏瑶,你考虑清楚!”
苏瑶在门边停了一步,没有回头,只留下一句话:“考虑得很清楚。”
门带上了。
走廊里空荡荡的,只有保洁推车的声音从远处传来。苏瑶靠着墙站了几秒,手上的笔记本夹得紧紧的,指节发白。她深吸一口气,走进尽头的茶水间,给自己倒了一杯凉水,一口气喝了大半。
茶杯搁在台面上,她掏出手机,点开和林远的对话框。上一条消息还停留在五天前那句“你决定的,我信”。
她打了几个字,删掉,又打,又删。最后发出去的只有一句。
“你的架构,我会替你守住。”
消息显示已读。林远没有回复文字,只回了一个握拳的表情。苏瑶看着那个小小的手势,眼眶一热,嘴角却微微弯了一下。
她放下手机,端着杯子走出茶水间。走廊尽头,陈立正站在会议室门口和周海涛说话,声音压得很低,但语气里的不满清清楚楚。周海涛垂着手,不时点一下头,脸色疲惫。
苏瑶从他们身后走过去,脚步稳稳的,鞋跟敲在地砖上,发出有节奏的声响。路过自己工位的时候,她看到电脑右下角弹出一条内部通知:下周一全员大会,主题为“技术部新战略发布”。
她把通知关掉,打开恒远二期的架构文档,在封面标题旁边打了一行批注:“架构冻结,待书面指令。”然后点击保存,加密,把密钥文件拖入一个只有她和林远知道路径的共享目录。
窗外,深秋的阳光斜照进来,落在显示器边缘,亮得有些刺眼。苏瑶眯起眼睛,把文档最小化,然后打开了远航科技的招聘页面。她盯着那个熟悉的岗位名称看了很久,最终没有关掉。
第八章 远航的第一场硬仗
林远入职远航科技的第一天,韩磊没有给他安排欢迎仪式,也没有给他留适应期。
办公桌上摆着一块移动硬盘和一份纸质文件,封面上打印着一行加粗的黑体字:星火项目技术攻关任务书。韩磊倚在门框上,把一杯美式咖啡递给他,语气里带着一丝试探:“这个项目,行业里三家头部公司都试过,最长的撑了四个月,最短的不到三周就撤了。客户现在把交付期限压到两个月,你敢不敢接?”
林远没有立刻回答。他翻开任务书,目光一行行扫过技术指标——数据吞吐量、响应延迟、并发承载能力,每一项要求都卡在现有行业标准之上。他翻到附件里的架构预研文档,看到第三页时皱起了眉。前东家华远集团内部也做过类似的技术验证,但因为投入产出比不达标被李副总否决了,那份被毙掉的方案编号他至今记得。
“预研文档只到仿真阶段就停了。”林远抬起头,“他们遇到了什么解决不了的问题?”
韩磊竖起两根手指:“两个。第一,在现有算法框架下,提升性能必然导致能耗飙升,客户有硬性温控要求。第二,如果换全新算法体系,没有可以直接迁移的代码库,整个底层要重写,时间成本不可控。”
林远把任务书合上,放在桌面上,手指轻轻敲了两下。“我需要看一下客户的核心业务场景日志,还有他们的硬件环境参数。”
韩磊眼睛亮了一下,转身朝外面喊了一声:“沈玥,把日志包拿过来。”
一个戴着圆框眼镜的短发女生抱着笔记本电脑小跑进来,把屏幕转向林远。她叫沈玥,远航的技术骨干,做数据建模出身,说话语速很快:“日志包已经脱敏了,但时间戳和业务标签都保留着。另外我把硬件资源的实时监控曲线也拉出来了,你看这里——”她指向一条波动剧烈的折线,“高峰期CPU温度直接飙到红线,现有架构做任何线性扩容都只会让情况更糟。”
林远盯着那条折线看了将近一分钟,脑子里快速盘算着各种可能的技术路径。然后他开口,声音不大,但每个字都落得很稳:“旧框架不换。换的是算法模型层。用异构计算加动态负载调度,把高峰期的计算压力从主芯片转移到协处理器上,主芯片只负责核心业务逻辑,温度能降下来。”
沈玥愣了一下,随即摇头:“异构调度我们试过,跨芯片的数据同步延迟会吃掉一部分性能增益,算下来提升不到百分之十,离客户要求差太远。”
“那是因为调度策略是静态分配的。”林远把电脑拉近,手指在键盘上敲了几下,调出一个空白文档,开始画架构草图,“我打算用动态权重算法,让调度器自己学习每个任务块的执行特征,实时调整分配比例。高峰期向协处理器倾斜,低谷期切回主芯片。这个核心调度模块,我来写。”
办公室里安静了几秒。沈玥扭头去看韩磊,韩磊摸着下巴,目光在林远脸上停了片刻。“你估计这个核心模块要写多久?”
“一周。”
沈玥脱口而出:“不可能。我们之前写那个静态调度器花了三周,调通又花了两周。”
林远看了她一眼,语气平静:“我三年前做过一套类似的动态调度原型,当时硬件环境不成熟,没落地。代码框架还在我脑子里。”
韩磊没再多问,拍了拍桌面:“行。项目组人员你挑,沈玥给你做副手,需要谁直接跟她说。从今天开始,星火项目单独一间作战室,其他人不要进去打扰。”
项目启动后的第一个星期,林远几乎没有离开过那间作战室。白板上画满了密密麻麻的函数调用图,地上散落着打印出来的日志分析报告,桌上的外卖盒来不及收拾,角落里堆着三箱功能饮料。
但沈玥的眉头一直没松开。她看着林远交上来的第一版调度模块代码,运行了初步测试后,脸色并不好看:“响应延迟比预估值高了百分之四十,而且是波动性的,说明调度器在某些场景下会来回切换,产生震荡。照这个趋势,别说超过行业标杆,能不能达标都是问题。”
项目组其他成员也开始动摇。负责接口协议的赵明远私下跟沈玥嘀咕:“林远那套算法太激进了,客户要的是稳定交付,不是来给我们当试验田的。韩总这次是不是看走眼了?”
沈玥犹豫了一下,还是在当天晚上的项目例会上把问题摆到了桌面上。她没有直接否定林远的方案,但把测试数据投在屏幕上,波动曲线像锯齿一样上下跳动。“目前的调度震荡问题如果不解决,后面所有优化都是空中楼阁。我们还有六周时间,是继续在这条路上死磕,还是回头用保守方案保底?”
会议室里的目光都落在林远身上。
林远站起来,走到白板前,用记号笔在调度器架构图的某个节点画了一个圈。“震荡的原因是权重衰减函数的收敛速度太慢,每次切换后系统需要重新建立特征模型。我需要重写这个衰减函数,引入历史状态记忆机制,让调度器不需要每次都从零开始学习。”
赵明远忍不住说:“林工,你说重写就重写,时间呢?测试呢?万一新的衰减函数还是不行呢?”
林远转过身,面对所有人,语气依旧平静但带着不容置疑的笃定:“给我三天。三天后如果振荡率降不下来,我主动跟韩总申请换方案。”
韩磊站在作战室门口,不知道什么时候来的,这时插了一句:“给他三天。”
那三天,林远几乎没有合眼。沈玥陪着他调参到深夜,看着他把衰减函数从指数型改成多项式型,又把记忆窗口从固定长度改成自适应滑动窗口。第三天凌晨两点,新的调度器在模拟环境中跑出了第一条平稳曲线。
沈玥盯着屏幕上几乎没有任何波动的性能指标,嘴巴张了张,最后只说出一个字:“稳。”
林远揉了揉眉心,声音沙哑:“明天做全场景回归测试。”
全场景测试的结果震撼了整个项目组。不仅响应延迟降到了目标线以内,数据吞吐量还比预定指标高出了近四成,主芯片峰值温度连红线的一半都没碰到。沈玥把测试报告发给韩磊时,附了一句话:“林远的算法模型可以申请专利。”
韩磊的回信只有四个字:“准备庆功。”
庆功会安排在项目验收后的周五傍晚,远航科技的开放式休息区被布置成了小型宴会厅。客户方的技术负责人亲自到场,举着酒杯对林远说:“我们原本准备的验收标准是行业标杆的百分之百,你们交出了百分之一百三十。这个项目我们后续三期、四期的预算已经批了。”
韩磊接过话头,拿起话筒,环视全场:“星火项目的成功,证明了远航有能力做别人做不了的事。这个成功离不开一个人——林远。”他顿了顿,从口袋里掏出一份烫金的聘书,“从今天起,林远正式成为远航科技技术合伙人,进入公司决策层。”
掌声响起来,沈玥拍得最用力,赵明远站在人群后面,脸上的表情从质疑变成了心服口服。
消息传回华远集团的时候,周海涛正在办公室批阅陈立提交的恒远二期改造方案。方案写得花团锦簇,但他一眼就看出关键架构部分照搬了林远原来的设计,只在参数上做了微调。
他放下文件,拿起手机,技术部的几个前同事群里已经有人转了远航的新闻截图。他盯着屏幕上林远和韩磊握手的照片,脸色沉得像要滴水。
桌上摊开的还有一份客户投诉函——恒远一期的某模块出现偶发性数据丢失,陈立接手后的第一次故障排查报告写得含糊其辞,连根因都没定位到。
周海涛靠在椅背上,目光从照片移到投诉函,再到那份注了水的改造方案。窗外深秋的风吹进来,卷起桌角一张被遗忘的便签纸,上面是林远离职前留下的最后一行字:恒远二期架构已完成冻结,密钥文件在苏瑶处。
他把便签纸揉成一团,扔进垃圾桶,拿起座机拨了一个内线号码。
“苏瑶,你到我办公室来一趟。现在。”
第九章 华远的裂缝从内部开始
苏瑶敲了敲门,得到应允后走进周海涛的办公室。她注意到总监面前摊着好几份文件,最上面那份是她上周提交的恒远一期故障初步分析报告,用红笔圈了好几处。
“坐。”周海涛指了指对面的椅子,自己却站着,走到窗边背对着她,“恒远那个数据丢失的问题,你怎么看?”
苏瑶斟酌了一下措辞:“从故障日志看,丢失发生在批量写入的间隙,触发条件很偶然。我怀疑是缓存刷新策略和写入队列的时序有冲突,但具体要等复现环境搭好才能确认。”
“你怀疑。”周海涛转过身,目光锐利,“你原来的搭档林远离职前,这个模块是他负责冻结的吧?他走的时候有没有留下什么交接文档?”
苏瑶心里一沉,但面上不显:“林远交接得很完整,架构文档、接口说明、异常处理流程都留给陈主管了。当时陈主管签字确认过的。”
周海涛沉默了几秒,手指敲了敲桌面:“陈立接手后,动过缓存刷新那段代码吗?”
“这个我不清楚,代码权限在陈主管那里。”苏瑶说得很谨慎,“不过上周我提交故障报告后调取了生产环境的配置记录,发现刷新周期的参数和原设计文档不一致,从两百毫秒改成了五十毫秒。”
周海涛眉头拧了起来。两百毫秒是林远经过大量压力测试后确定的平衡点,缩短刷新周期会让缓存写入频率提高四倍,如果写入队列的处理速度跟不上,数据丢失的概率就会呈指数级上升。
“你先回去把复现环境搭起来,优先级最高。”周海涛挥了挥手,等苏瑶关上门后,立刻拨通了陈立的电话。
“陈立,恒远一期的缓存刷新参数,谁改的?”
电话那头安静了两秒,陈立的声音带着惯有的圆滑:“周总,那个参数我调过,响应速度上去了,客户反映打开页面快了不少。数据丢失可能是别的原因,我已经让下面的人在查了。”
“你改之前做过压力测试吗?”
“测试肯定做过,但生产环境的数据量和模拟环境不一样嘛。周总你放心,给我两天时间,我保证定位到根因。”
周海涛挂了电话,脸色铁青。他太清楚陈立的套路了,先把话说满,出了事再找理由。他又翻出陈立提交的恒远二期改造方案,对比林远留下的原架构冻结文档,越看越觉得心惊——很多安全冗余模块被删掉了,包括缓存双写校验、写入队列限流保护、异常状态自动回滚。这些模块虽然会让系统在极端情况下反应慢零点几秒,但它们是数据完整性的最后防线。
周五下午,华远集团月度技术例会。赵建国亲自主持,李副总坐在他右手边,周海涛带着陈立和苏瑶坐在长桌另一侧。
“恒远一期的数据丢失问题,处理得怎么样了?”赵建国开口就问,语气不算严厉,但目光直指陈立。
陈立清了清嗓子:“董事长,问题已经定位了,是历史遗留的架构缺陷,林远在的时候就没解决好。我们正在做紧急修复,预计下周可以上线补丁。”
苏瑶低着头翻看手中的故障日志,指甲不自觉地掐进掌心。
“历史遗留?”赵建国身体前倾,“我记得恒远一期上线后稳定运行了整整八个月,是二期改造开始后才出现数据丢失的。周海涛,你来说。”
周海涛感觉到李副总的目光像针一样扎在自己侧脸上。他深吸一口气,选择实话实说:“董事长,我核查了代码变更记录,陈立在接手后调整了缓存刷新周期,还删除了原架构中的几个数据保护模块。这些改动没有经过完整的回归测试,也没有技术评审记录。”
会议室里的空气骤然紧绷。
陈立猛地转头看向周海涛,脸上的笑僵住了:“周总,你这话什么意思?我做的所有变更都是按流程审批过的,李副总当时也签了字。”
李副总放下手中的钢笔,语气平淡:“海涛啊,项目改造过程中有些调整是正常的。现在关键是把问题解决掉,而不是在这里追责。陈立,你加快修复进度,需要什么资源直接跟周总监提。”
周海涛没有接话。他想起林远在的时候,每一次代码变更都有详细的变更说明,每一处架构调整都附带着十几页的测试报告。那时候的技术部,从来不用在董事会上讨论“怎么解决数据丢失”这种基础问题。
赵建国的目光从周海涛身上移开,落在陈立脸上:“修复需要多久?”
“十天……不,一周。”陈立改口很快。
“一周后恒远如果还在丢数据,”赵建国的声音不高,但每个字都带着分量,“你亲自去客户现场解释。”
散会后,周海涛独自留在会议室整理材料。他翻到林远离职前提交的最后一份技术周报,上面详细列出了恒远二期架构的部署方案、风险清单和应急预案。报告末尾有一行小字备注:安全冗余模块为数据一致性核心保障,任何情况下不建议关闭或删除。
周海涛把周报合上,拿起手机走到走廊尽头的窗户边,翻出了林远的号码。他的拇指悬在拨号键上,停了很久,最终还是锁了屏。
他想起赵建国那天在办公室对林远说的话——“忍一忍,明年一定优先考虑你”。想起林远走出董事长办公室时平静得让人发冷的背影。想起那张被揉成团的便签纸上,林远离开前用蓝色圆珠笔写下的最后一句话。
窗外的梧桐叶被深秋的风卷起来,打着旋儿撞在玻璃上,发出细碎的声响。周海涛把手机塞进口袋,走回办公室时路过技术部的开放工区,看见陈立正站在白板前,用马克笔比划着什么,身边围了四五个年轻工程师。
陈立的声音从工区那头传来,带着一贯的自信:“这个问题的根因我已经锁定了,是缓存和数据库之间的时序竞争。改一行代码就能解决。”
周海涛停下脚步,看着白板上陈立画的那条时序图。他清楚地记得,林远当初设计这套架构时,专门用一个独立线程处理缓存写入和数据库事务的同步,从物理上避免了竞争中出现的可能性。陈立画的图里,那条同步线程不见了。
“陈主管,”一个年轻工程师怯怯地开口,“同步线程被去掉的话,写入顺序怎么保证?”
陈立愣了一下,随即用马克笔在图上画了一条虚线:“不需要那么复杂,数据库本身有事务隔离。你们按我说的改就行。”
那个年轻工程师还想说什么,被旁边的人拉了拉袖子,把话咽了回去。
周海涛转身离开,回到自己的办公室关上门。他坐在桌前,把陈立的二期改造方案、故障报告、代码变更记录摊了一整桌。沉默了很长时间后,他从抽屉最深处摸出一份泛黄的纸质文件——那是林远四年前提交的恒远一期原始架构设计书,封面右下角印着华远集团的蓝色标识,扉页上有一行手写的字:系统稳定性大于一切。
他把那份设计书翻开,翻到缓存刷新机制那一页。旁边空白处还有林远当年用铅笔画的时序分析图,工整得像印刷体。周海涛用手机拍下了这一页,然后把设计书重新锁进抽屉。
他打开电脑,给赵建国发了一封邮件,主题是“关于恒远项目技术风险的专项汇报”,正文只写了一句话:建议重新评估陈立的技术决策权限,附林远原始设计文档扫描件。
邮件发出后,周海涛靠在椅背上,闭上眼睛。窗外暮色渐沉,技术部的灯还亮着,隐约能听到陈立高声说话的声音。他知道,华远技术部的裂缝,已经从林远离开那一刻开始,一点一点蔓延开来了。
第十章 苏瑶的选择
苏瑶收到那封邮件的时候正在整理恒远二期的故障日志。邮箱弹窗跳出来,发件人是远航科技人力资源部,主题只有一行字:关于研发副总监岗位的面试邀请。
她盯着屏幕看了几秒,手指没动。
邮件正文措辞正式而克制,写明是经林远推荐,远航科技希望邀请她面谈,岗位方向是研发副总监,负责架构评审与项目落地。末尾附了三个可选时间段。
苏瑶把页面关掉,继续翻看故障日志。可她的视线停在屏幕上,一个字也没读进去。她索性合上电脑,起身去茶水间倒水。路过开放工区时,陈立正站在苏瑶组里那个刚毕业的工程师座位旁,手指点着屏幕上的代码:“这一块逻辑删掉,用我的实现替换,不用再问我。”
那工程师抬头看了苏瑶一眼。苏瑶脚步没停,端着杯子走进茶水间。她靠在料理台边,热水注满杯子后溢出来烫了手指,她才回过神。
当天下午,周海涛把她叫进办公室。
“恒远二期的修复方案,你看过了?”周海涛问,声音比平时低。
“看了。”
“你觉得根源在哪?”
苏瑶沉默两秒:“同步线程被删了。写入顺序失去保障,缓存和数据库事务之间存在竞争窗口。”
周海涛目光沉沉地看着她:“你当初参与过原架构设计?”
“我负责的是数据链路层。”苏瑶说,“但我看过完整的架构文档。林远在设计评审会上逐页讲过。”
周海涛没接话,手指在桌面上无声地敲了两下。半晌才说:“恒远那边给了最后通牒,下周之前再出现一次数据丢失,他们会启动合同违约条款。陈立说他有把握。”
苏瑶没评价。周海涛也没再追问,只让她回去整理一份数据链路层的技术说明,以备客户质询。苏瑶点头出了办公室,回到工位后重新打开那封远航的邮件,把面试时间定在了第二天下午。
当晚她拨通了林远的电话。
“远航的邀约我收到了。”苏瑶靠在自家阳台上,晚风把晾晒的衬衫吹得猎猎作响。
电话那头安静了一瞬,林远的声音传来:“是我推荐的。但我没跟他们说太多,只提了你参与过三大项目的核心模块。剩下的靠你自己。”
“你不怕我去了抢你饭碗?”
林远笑了一声,那笑声很轻,却带着一种苏瑶熟悉的分量:“我巴不得你来抢。”
苏瑶攥着手机,夜色里嘴角弯了一下:“明天下午面试,祝我好运。”
“你从来不需要好运。”林远说,“你需要的只是一个能看懂你方案的人。”
第二天下午,苏瑶请了半天假。她没跟周海涛说去哪里,只填了调休单。远航科技的办公楼在城市另一头,从华远打车过去要四十分钟。苏瑶在车上把文件夹重新翻了一遍,里面装着她熬夜整理的完整方案——基于林远原架构思路的优化设计,针对恒远一期运行两年积累的数据,她对缓存刷新机制做了分层改造,将单一同步线程升级为异步多级缓冲,理论上可以把数据一致性保障提升一个量级。
面试官除了远航人力总监,还有韩磊本人。苏瑶进门时韩磊正低头翻她的简历,听到动静抬起头,目光在她身上停了两秒,直接开口:“林远跟我提过你,但简历上没写你参与过恒远一期的架构设计。”
“我负责数据链路层。”苏瑶把文件夹放在桌上,没有寒暄,“一期架构的核心是同步线程保障写入顺序,但运行两年后我们发现,单一同步线程在并发峰值时会成为瓶颈。我做了一套分层缓冲方案,在保留原架构安全冗余的前提下,把吞吐能力提升了百分之三十。”
韩磊翻看方案的速度慢下来。他翻到第三页,手指停在流程图的一个分支上:“这里,为什么选择异步回写而不是双写?”
“双写会引入新的不一致窗口。”苏瑶说,“异步回写配合版本号校验,可以在不修改原架构核心逻辑的前提下解决问题。最关键的是,这套方案可以平滑迁移,不需要停服改造。”
韩磊抬起头,眼神里的审视变成了一种近乎欣赏的确认。他合上方案,侧头对人力总监点了下头,然后看向苏瑶:“什么时候能入职?”
“我需要先处理好原公司的交接。”苏瑶说,“一周。”
韩磊站起来,伸出手:“研发副总监,直接向我汇报。欢迎加入远航。”
苏瑶握了手,没有多余的客套。走出远航大楼时天色将暗,她站在台阶上呼出一口气,掏出手机给林远发了一条消息:面完了。下周一入职。
林远秒回:恭喜。晚上请你吃饭,老地方。
苏瑶回到华远时已是下午四点多。她走进技术部,径直去了周海涛办公室。周海涛正对着电脑蹙眉,见她进来抬了抬下巴示意坐。
苏瑶没坐。她把一张打印好的辞职信放在周海涛桌上。周海涛低头看了一眼,眉头猛地拧起来。
“苏瑶,你这是什么意思?”
“辞职。一周后走,交接清单我明天发你。”
周海涛把那页纸拿起来又放下,手指按在纸面上:“你考虑清楚了?恒远二期的修复工作还没完成,你是数据链路层最熟悉的人。”
“陈立说他有把握。”苏瑶说。
周海涛沉默了几秒,声音放缓:“我知道林远的事让你有想法,但公司的情况你也清楚。陈立那边……董事长已经定了调子。你在这个时候走,对你以后在行业里的发展未必有利。”
“周总,”苏瑶的语气平静,“我在这家公司五年,做了三个大项目,从来没有在晋升名单上出现过。去年说名额有限,今年说综合平衡。我理解公司的难处,但我也得为自己的职业生涯负责。”
周海涛嘴唇动了动,最终没有反驳。
苏瑶转身往外走,刚拉开门,迎面撞上陈立。陈立手里端着一杯咖啡,显然刚从周海涛办公室门前经过,听到了谈话。他歪着头看苏瑶,嘴角挂着一种轻飘飘的笑:“哟,苏经理这是要走?去找林远?远航那个小公司,他自身都难保,你过去能干什么?”
苏瑶停下来,看着陈立。
陈立笑了一声,压低声音:“林远输了。他在华远干了七年,连个主管都没混上,灰溜溜地走了。你去投奔他,图什么?”
部门开放工区里几个人悄悄抬头看向这边。周海涛在办公室里站起身,眉头紧锁。
苏瑶看着陈立那张带着优越感的脸,想起林远离开那天平静的背影。她开口,声音不高却字字清楚:“失败者不会永远失败。但偷来的位置,永远坐不稳。”
陈立脸上的笑僵住了。苏瑶没有再多看他一眼,转身沿着走廊往外走。身后传来陈立压着嗓子的一句什么,她没有回头。
苏瑶离开华远那天是个周五。她把工位收拾得干干净净,只带走了自己的一盆绿植和一个马克杯。抱着装杂物的纸箱走出大楼时,深秋的风把她的头发吹起来。她站在台阶上,目光扫过停车场。
一辆深灰色轿车停在出口旁边,驾驶座的车窗降下来,林远靠在座椅上看着她。
“上车。”他说。
苏瑶抱着纸箱走过去,拉开副驾驶的门坐进去。纸箱放在腿上,绿植的叶子从箱口探出来,随着车子的启动轻轻摇晃。
“新办公室有花架。”林远说,视线看着前方,嘴角微弯。
“你安排的?”
“韩磊安排的。他说研发副总监的工位要采光好,绿植随便放。”
苏瑶没接话,偏头看着窗外。华远集团的大楼在后视镜里一点点缩小,最终被街角的梧桐树彻底遮住。她收回目光,落在自己膝盖上的纸箱里。那盆绿植的叶片上还沾着清晨留下的水珠,在车窗透进来的光线里亮了一下。
林远打开车载音响,放的是一首老歌,旋律舒缓。他没有问她离职的具体经过,也没有评价华远任何一个人。车子汇入车流,朝着城市另一头的远航科技驶去。
过了很久,苏瑶说:“陈立说我投奔你是去找死。”
林远打了下方向盘,语气平淡:“那你要不要告诉他,我们准备把恒远三期也拿过来?”
苏瑶偏过头看他。林远目视前方,脸上没什么表情,但握着方向盘的右手食指在轻轻敲击。那是他在思考时惯有的小动作。苏瑶认得这个动作。
她没有再问,只是把绿植往纸箱里面扶正了一点。车子驶过一个路口,阳光从侧窗倾泻进来,照得她睁不开眼。她眯着眼看向前方,远航科技所在的写字楼已经在道路尽头露出了顶部轮廓。
第十一章 三千万订单的连锁反应
林远盯着屏幕上跳动的数据流,手指在键盘上飞快敲击。韩磊从外面推门进来,手里攥着一部手机,脸色不太对。
“刚收到消息,恒远那边正式发函了。”韩磊靠在门框上,把手机屏幕转过来给林远看,“华远的技术服务评分掉到B级,恒远决定终止二期合同,尾款冻结。同时,恒远的技术负责人张总约你明天见面,想谈三期合作。”
林远停下手上的动作,接过手机翻了翻邮件内容。恒远是华远最大的客户,每年贡献近三千万的订单,二期项目原定由林远主导,他离职后交给陈立接手,如今才不到三周,评分已经跌了两个等级。
“陈立改了我的架构。”林远把手机还给韩磊,语气没什么起伏,“他把核心调度模块从异步改成同步,节约了初期开发时间,但并发性能直接腰斩。恒远那边的测试报告里写了,数据吞吐量只有之前的三分之一。”
韩磊吹了声口哨:“三千万的单子,就这么砸了?”
“还没砸,是暂停。”林远转回屏幕,“张总找我,说明他们还没死心。但华远那边如果拿不出修复方案,续约基本没戏。”
韩磊凑过来看林远的屏幕:“你在做什么?”
“算一笔账。陈立改动的部分如果全部回退,加上重新测试和部署,至少要三周。恒远的业务窗口期只有十天,等不起。”
韩磊眼睛亮了:“你有更快的方案?”
林远点开一个架构图,指尖在屏幕上划过:“不用回退。我在原架构里预留了一个旁路通道,当时没启用是因为华远的技术栈不支持。远航的服务器可以跑,我可以在这个通道上做增量修复,五天完成。”
韩磊一巴掌拍在林远肩膀上:“兄弟,这就是我花大价钱请你来的原因。”他掏出手机开始拨号,“我现在约张总明天上午见面,你把方案整理一下。”
林远点头。韩磊走到门口又回头:“对了,苏瑶的入职手续今天办完了,她明天到岗。你要不要她去对接恒远的技术细节?她对原始架构最熟。”
“不用。”林远想了想,“让她先熟悉远航的代码规范,恒远这边我自己来。”
韩磊比了个明白的手势,快步离开。
第二天上午的会面安排在恒远大厦顶楼的会议室。张总五十出头,头发花白,见林远进来主动起身握手,力道很足。
“林工,我直说了。”张总坐下后连茶都没碰,“二期现在这个状态,董事会那边很不满意。我们给华远发了正式函件,要求他们十天内拿出修复方案,否则合同终止。但说实话,我对他们没信心了。”
林远把笔记本电脑打开,推到张总面前:“张总,这是我在远航重新设计的增量修复方案。不动原架构,在旁路通道上做性能补偿。部署周期五天,并发能力可以恢复到原有的百分之一百二十。”
张总戴上眼镜,盯着架构图看了足足两分钟。会议室里安静得只有中央空调的风声。他抬起头,目光锐利:“你离开华远了?”
“是。”
“为什么?”
林远顿了一下:“个人发展原因。”
张总笑了一声,把电脑推回来:“我在行业里干了二十多年,什么原因没见过。你走了,陈立上位,项目开始出问题。林工,我不是打听别人的家事,我只关心我的系统能不能稳定跑起来。你告诉我,这个方案需要恒远配合什么?”
“测试环境权限,还有一百万的预付开发费。”
张总直接拿起手机拨了个电话,对着那头说了几句,挂断后对林远点头:“测试权限下午开通,预付明天到账。三期合同等二期修复验收通过后直接签,还是三千万。”
林远站起身,张总握着他的手多说了句:“林工,你这个人值这个价。华远换掉你,是他们没眼光。”
林远从恒远大厦出来时接到韩磊的电话,说预付款到账了。他站在台阶上,深秋的风灌进衣领,手机又震了一下,是苏瑶的消息:听说恒远那个单子被你拿下了?
林远回复:还没签,但预付款到了。
苏瑶秒回:这才叫反击。
林远看着那四个字,没再回复,嘴角往上勾了勾。他把手机揣进口袋,走下台阶。身后恒远大厦的玻璃幕墙反射着上午的阳光,明晃晃地铺在路边。他走了几步,突然想起七年前刚进华远时,也是这样站在一栋高楼下,踌躇满志。那时候赵建国亲自面试他,握着他的手说“华远需要你这样的人才”。七年过去,那句“需要”最终变成了董事办公室里一杯凉掉的茶。
林远摇摇头,把这些念头甩开。他掏出车钥匙,走向停车场另一头那辆深灰色的车。苏瑶说过这颜色太低调,他当时没接话,心里想的是这颜色和当年入职华远第一天穿的那件衬衫一模一样。有些东西变了,有些东西他不想变。
当天下午,华远集团内部已经乱成了一锅粥。恒远暂停合作的消息传到赵建国耳朵里时,他正在接待一个外地考察团。他端着茶杯和客人寒暄了半小时,等人一走,茶杯往桌上一放,脸色沉得能滴出水。
“叫李副总来。”
李副总匆匆赶到董事长办公室,赵建国把恒远的函件复印件扔到他面前:“三千万的订单,说停就停。你告诉我,技术部在干什么?”
李副总捡起函件看了两眼,额头冒汗:“陈立那边已经在组织攻关了,但恒远那边……嗯,配合度不高。”
“配合度不高?”赵建国抬起头,“恒远跟我们合作了六年,什么时候配合度不高过?我告诉你实话,张总刚刚给我打了电话,话里话外的意思是——他们看中了远航的人。”
李副总脸色变了。赵建国盯着他:“远航的人,你听明白了吗?”
“董事长,陈立接手时间短,项目复杂度高,出现问题是正常的磨合期——”
“磨合期?”赵建国打断他,“林远走之前,恒远项目从来没出过B级以下评分。现在人家直接把尾款冻结了。你跟我说磨合期?”
李副总咬了咬牙:“周海涛作为技术部负责人,交接工作没有做到位。陈立接手时拿到的文档不完整,架构说明有缺失——”
“行了。”赵建国摆摆手,“你出去吧。叫周海涛来。”
李副总退出办公室,走廊里脚步匆匆。他回到自己办公室,拿起电话拨通周海涛,劈头盖脸一顿训斥,把恒远项目的问题全部归咎于技术部交接不力。电话那头周海涛一直没吭声,只在最后说了一句:“李总,我十分钟后到你办公室。”
十分钟后,周海涛推门进来,李副总正站在窗前打电话,见他来了手一摆让他坐。周海涛没坐,站在办公桌前,看着李副总挂断电话。
“周海涛,恒远这事你得给我一个说法。”李副总转过身,语气不善。
“说法?”周海涛的声音平静得反常,“李总,恒远二期是陈立从第三周开始全面接手的。他改动核心架构没有走评审流程,没有做压力测试,测试报告我是看了恒远反馈才知道的。”
“你作为技术部负责人,项目出了问题不是你担责是谁担责?”
周海涛看着李副总,嘴唇抿成一条线。沉默持续了将近半分钟,然后他开口了,声音不高,但每个字都像钉子:“李总,我在华远干了十二年。陈立来之前,技术部所有项目按时交付率是百分之九十八。陈立来了三年,这个数字降到了百分之七十一。今年三个核心项目,两个延期,一个评分跌到B。”
“你什么意思?”
“我的意思很明白。李总,你是陈立的表舅,你给他铺路让他顶了林远,这我管不着。但路铺得再平,走不稳的人照样会摔。”
李副总的脸一下子涨红了:“周海涛,你注意你的言辞!”
“我注意了十二年。”周海涛从西装内袋里掏出一个信封,放在李副总桌上,“这是我的辞职信。技术部的事,你让陈立自己扛吧。”
李副总猛地站起来,周海涛已经转身走出了办公室。门在身后关上的一刻,走廊尽头的技术部工区传来一阵低声议论,有人看到周海涛出来,目光齐刷刷地投过来。周海涛没有看任何人,径直走向电梯。
电梯门合上时,他的手机震了一下。是林远发来的消息:听说恒远那边停了,如果需要帮忙……
周海涛看着那行字,拇指悬在屏幕上很久。他最终回复了一个字:谢。然后他把手机收回口袋,靠在电梯壁上,闭上了眼。电梯平稳下行,数字一格一格跳动,像极了某种倒计时。
第十二章 董事长桌上的辞职信
周海涛的辞职信在当天下午四点整摆上了赵建国的办公桌。
秘书放下信封时特意低声说了一句:“周总监是在电梯口交给李副总的,李副总没有拆,直接让我送上来的。”
赵建国正在批一份战略合作框架协议,笔尖悬在签名栏上方停了两秒。他放下笔,拆开信封,抽出那张薄薄的A4纸。全文没有一句抱怨,只写了感谢公司多年培养、因个人原因请辞、望批准、工作交接已同步整理完毕这几行字。末尾的签名遒劲有力,力透纸背。
赵建国把信纸翻过来看了看背面,空白一片。他又翻回正面,在台灯下逐字读了一遍,像是想从这些字里找出某种隐藏的线索。秘书还站在桌前,他摆了摆手:“你先出去,把门带上。”
办公室安静下来,窗外的城市天际线被深秋的暮色压得很低。赵建国靠回椅背,目光落在对面书架上那排厚厚的项目档案册上。那是技术部每年归档的项目报告,脊背上贴着年份标签,从七年前一直排到今年。他忽然站起身走过去,指尖划过前几册,抽出了最靠左的那一本。
翻开第一页,是林远的入职登记表。照片上的年轻人穿着白衬衫,眉目清朗,证件照里带着一丝不易察觉的紧张。赵建国想起七年前终面时的场景,那天他正好路过会议室,HR总监递来一份简历说“这个年轻人笔试和实操都是第一”。他推门进去只问了两个问题,林远的回答简洁到近乎木讷。他当时心想,技术岗位不需要太会说话的人,能做事就行。
事实也确实如此。赵建国一页页往后翻,项目立项书、阶段性汇报、结项报告,每一份都批注清楚、数据详实、逻辑链条完整。有一页附了一张手绘的系统架构图,线条工整得像印刷体,旁边用铅笔标注了七八处优化思路,字迹密密麻麻却不潦草。他又翻到去年恒远项目的卷宗,林远在项目总结里写了一句话:系统上线后,客户方运维人员培训覆盖率需达到百分之九十以上,否则存在误操作风险。后面跟着陈立接手后补录的一条备注:因工期紧张,培训压缩为线上文档自学。
赵建国盯着这两行字看了很久。
他合上档案册,放回书架,又抽出第二本、第三本。每翻开一册,那些被他忽略的细节就多浮现一层。林远连续三年在年度考评里被标注了“建议列为重点培养对象”,但周海涛提交的晋升推荐表里,林远的名字总是排在第二位。他翻到去年的评审记录,林远的综合评分是九点四分,陈立是八点一分,两个数字并排放着,后面跟着李副总签批的一行小字:建议综合考虑管理潜力和项目资源协调能力。
“管理潜力。”赵建国低声念了出来。他想起自己当年创业时最恨的就是这种似是而非的评价体系,可不知不觉间,华远内部也长出了这样的藤蔓。他坐回椅子,拿起手机翻到通讯录里的“林远”,拇指悬在拨号键上。
窗外暮色更浓了,整座城市亮起零星灯火。赵建国按下了拨号键,听筒里传来不紧不慢的振铃声。响了六声,无人接听。他又拨了一遍,这回响到第四声时被直接掐断。
他退出通话界面,翻到苏瑶的号码。这次响了不到两声就接通了。
“董事长。”苏瑶的声音平静,背景里隐约有键盘敲击声。
“苏瑶,我是赵建国。”他顿了顿,努力让语气显得如常,“林远最近怎么样?”
电话那头沉默了几秒。苏瑶的声音依然平静:“他在远航,挺好的。”
“你帮我转告他,我想约他见一面,有些事当面聊比较好。”
又是一阵沉默。赵建国听到键盘声停了,苏瑶似乎换了个地方,脚步声在空旷的空间里有些回响。然后她开口了,语速不快,但每个字都咬得很清楚:“董事长,我可以帮您转达。但我有句话想说。”
“你说。”
“林远在华远七年,三次晋升机会都被以大局为由压下来。第一次说他还年轻,第二次说岗位编制不够,第三次说陈立更需要这个平台。”苏瑶的声音没有起伏,却像一条平稳流淌的河流,“他从来没有因为这些事找您抱怨过。去年恒远项目最紧张的时候他父亲住院,他只在手术当天请了半天假,晚上回来接着加班改方案。这些事您可能都不知道。”
赵建国握着手机的手微微收紧。窗外有直升机掠过夜空,螺旋桨的轰鸣声从远处传来又渐渐消失。
“苏瑶,公司有公司的考量——”
“我知道。”苏瑶打断了他,语气依然温和,却带着某种终结的力量,“所以林远现在替远航做考量了。董事长,有些东西失去了,就不是用条件能换回来的。”
电话里安静得能听见彼此的呼吸。赵建国张了张嘴,喉结上下动了动,最终只说了句“好,我明白了”,便挂断了。
手机屏幕暗下去,映出他略显疲惫的脸。他把手机放在桌上,目光再次投向那排档案册。书架上有一格空着,那是他准备用来放今年优秀项目档案的位置。恒远三期,原定是林远负责的,卷宗至今没有归档,因为项目已经暂停了。
赵建国拉开办公桌最下面的抽屉,里面整整齐齐码着十二封辞职信,都是这一年来各部门骨干提交的。他随手抽出几封翻了翻,离职原因一栏写的都是“个人发展”“家庭原因”之类的套话,但人事部做的离职面谈记录里,好几个人的原话是“看不到公平晋升的希望”。
他把这些信放回去,关上抽屉。桌面上周海涛的辞职信还摊开着,签名处墨迹浓黑。赵建国伸手把它翻了过去,扣在桌面上,然后拿起内线电话:“通知各部门,明天上午九点开全体高管会,议题只有一个——技术部三个核心项目的现状和后续方案。”
他放下电话,又坐了很久。夜完全黑了,办公室没开大灯,只有台灯投下一圈昏黄的光。赵建国拉开左手边的第一个抽屉,从一摞文件底下抽出一张泛黄的纸。那是七年前林远的面试评价表,在“综合评价”一栏里是他亲笔写的四个字:技术顶尖。后面本来还想写点什么,但当时被一个电话打断了,后来再也没补上。
他把这张纸和桌上的辞职信并排放在一起,灯光下两个笔迹一旧一新,一个写着“技术顶尖”,一个写着周海涛的辞职理由。赵建国看着这两张纸,忽然想起自己创业第一年,合伙人在年三十晚上撤资走人时说的话:老赵,你把人心当成本,迟早要还的。
他那时候不理解这句话,现在好像有点明白了。
窗外不知什么时候下起了细雨,雨滴敲在玻璃上发出细密的声响。赵建国站起身走到窗前,看着下面灯火通明的城市。远处有一栋写字楼的顶层广告牌刚换了新画面,蓝底白字,隐约能辨认出“远航科技”几个字。他看了很久,雨幕模糊了视线,那几个字渐渐化成一团光晕。他转身走回办公桌前坐下,拿起手机对秘书发了一条消息:帮我查一下远航科技最近所有的公开动态,包括人事变动的消息。明天开会前放到我桌上。
发完消息,他重新翻开林远当年的项目档案,从第一页开始,一页一页地看下去。台灯的光映在纸面上,那些工整的批注和严密的数据在夜色里显得格外安静,像是在诉说一个被忽略了太久的答案。
第十三章 登门道歉与开出的天价
雨停了。
赵建国到得比约定时间早了二十分钟。他让司机把车停在远航科技所在的写字楼对面,隔着一条街看那栋楼的旋转门。门是玻璃的,映出灰白色的晨光,时不时有人进出,步伐都比华远的人要快一些。他认出其中一个背影是韩磊,穿着深灰色大衣,正和一个年轻人边说话边往楼里走,手势干脆利落。
副驾驶座上的公文包鼓鼓囊囊,里面装着三份文件。赵建国已经看过每一份不下五遍,连标点符号都记得清楚。股权协议里的数字是他亲手加的,比给李副总的还高出三个百分点。技术副总裁的任命书上,他让法务特意留了空白日期,意思是林远什么时候回来,什么时候生效。陈立的辞退决定放在最上面,虽然是复印件,红头文件格式,内容只有一行:即日起解除劳动合同,永不录用。
韩磊定的见面地点在远航科技楼下的咖啡厅,靠窗的角落。赵建国进门的时候,林远已经坐在那里了。他穿了一件深蓝色毛衣,袖子挽到小臂,面前放着一台笔记本电脑和半杯美式。和一个月前在华远技术部加班时相比,他看起来没什么变化,但赵建国一眼就看出来,那种疲惫烦闷的神情从林远脸上消失了,取而代之的是某种笃定。
“赵总。”林远站起身,和他握了握手,力度适中,时间很短。“坐。”
赵建国坐下,把公文包放在旁边的椅子上。服务员过来,他点了杯普洱,然后直接切入正题:“林远,我今天来,第一件事是道歉。”
他把公文包打开,三份文件依次摆在桌面上,转向林远的方向。他的手指点在辞退决定上:“陈立上个星期已经离开公司了。这不是为了让你回来才做的决定,是他确实不能胜任。他的错误给公司造成的直接损失,目前统计是三千万,还在追责。”
林远低头看了一眼那份文件,表情没什么变化。他的目光扫过股权协议上的数字,又看了看任命书,然后端起咖啡喝了一口。
“第二件事,”赵建国继续说,声音比平时慢,像是在斟酌每一个字,“当年是我错了。我低估了你的价值。我拿你换了李副总那条人脉线,以为换来了政府项目的入场券,结果那个项目到现在都没批下来。用技术骨干换空头支票,这个账我算错了七年。”
咖啡厅里有人在磨豆子,机器发出沉闷的嗡鸣。窗外人行道上有人推着早餐车经过,轮子碾过地砖发出咯噔咯噔的声响。赵建国把这些声音听得很清楚,因为他等林远的回应等了几秒钟,这几秒钟里他只听到这些。
林远把咖啡杯放回去,将三份文件拢了拢,推回赵建国面前。
“赵总,谢谢您专程过来。您的来意我明白了。”他的语气平静得像在讨论一份普通的技术方案,“我在远航现在是技术合伙人,有自己的团队,方向也是我定的。您应该已经查过了,我们上个月拿下的那个客户,原本是华远的。”
赵建国的眼皮跳了一下。他确实查过了,那个客户是三千万年度订单,终止华远合约的书面理由写的是“技术团队稳定性存在重大不确定性”。这句话在行业里传开之后,华远又丢了两个同量级的客户。这就是他今天坐在这里的根本原因。
“所以呢?”赵建国问,“怎样才肯回来?”
林远摇了摇头。这个动作很轻,但赵建国看得清清楚楚。
“我不回去了。”林远说,“赵总,您给的条件确实很大方。副总裁的位置,股权,还有亲手处置陈立的姿态。但这些加在一起,对我来说还是同一个逻辑——您需要我的时候,我才有价值。”
赵建国张了张嘴,想说什么,被林远抬手止住了。
“我不是在指责您。商业环境就是这样,我理解。”林远的眼神很清醒,没有愤怒,也没有得意,像是在陈述一个技术事实,“但在远航,我是在搭架构,不是在补漏洞。韩磊找我第一天,给我看的是公司未来三年的技术路线图,问我想在哪一块签字。我在华远七年,从来没有被问过这个问题。”
赵建国沉默了。他端起已经凉了的普洱喝了一口,茶水很涩。他想起自己当年创业时问过合伙人同样的问题,后来合伙人走了,他再也没问过任何人。
“不过,”林远的声音缓了缓,“华远现在的技术难关,我们可以谈合作。”
赵建国抬起头。
“远航的核心架构授权可以给华远用,包括我正在优化的那套算法模型。技术服务费按项目算,走远航的对外报价体系。”林远翻开笔记本,在上面划了几下,“细节让韩磊和法务去谈。我能保证的是,现有系统的漏洞可以在两周内堵上,不会影响你们手头项目的交付。”
赵建国听完,靠在椅背上。他带来的三份文件还摊在桌上,红头文件的抬头朝着天花板。他忽然意识到,林远刚才推回文件那个动作,比任何语言都更准确地说明了一件事:这个曾经被他用“大局”压了七年的年轻人,现在跟他用的是同一套游戏规则,但立场完全反过来了。
“好。”赵建国说,“合作方案我接受。但我有一个条件。”
林远看着他。
“协议上加一条:华远未来所有核心技术决策,必须有远航代表参与评审。”赵建国说完,顿了顿,“这一条是我自愿加的,不是交换条件。华远需要外部技术判断,内部已经没人能给出客观意见了。”
窗外的阳光终于透进来,在桌面上铺开一片暖色。林远看了赵建国几秒钟,然后伸出手。
“成交。”
两只手握在一起,比见面时多停留了两秒。赵建国感觉到林远掌心有薄薄的茧,那是常年敲键盘和握鼠标磨出来的。他想起七年前面试时,这个年轻人手上也是这样,当时他觉得这说明不了什么,现在他知道了,这代表一个人日复一日在一线打磨真本事的痕迹。
赵建国起身准备离开。他把三份文件收回包里,拉链拉好,然后站在桌边犹豫了一下。
“苏瑶在你们那边,干得怎么样?”他问。
林远的嘴角微微上扬,是赵建国第一次在他脸上看到这种表情。“她很好。下周我们有个新项目启动会,她主导。”
赵建国点了点头,拎起公文包。走到咖啡厅门口时他回过头,林远已经重新打开笔记本电脑,屏幕上密密麻麻的架构图铺满了整个画面。年轻人专注的侧脸和当年在华远加班时没什么两样,但赵建国忽然清楚地意识到,这已经不是他的员工在给他干活了——这是一个平等的合作方在解决他的问题。
他推开门走出去,晨风灌进外套领口,有些凉。司机把车开过来,赵建国坐进后座,从包里掏出那份股权协议看了最后一眼,然后塞进座椅前方的文件袋里。车驶入早高峰的车流,远航科技的大楼在后视镜里越来越小,最终被一栋新建的商业综合体挡住。赵建国闭上眼睛,脑子里还在回响着林远刚才那句话——我不回去了。
这四个字没有情绪,没有攻击性,甚至带着一点温和。但赵建国听懂了其中全部的分量。他掏出手机给周海涛发了条消息:合同签了,让法务准备对接。发完消息,他把手机放在膝盖上,看着窗外流动的街景,心里明白了一件事:他今天带去的三份文件,唯一起到作用的是那份辞退决定。林远看它的那一眼,看的不是陈立的结局,而是看清了旧秩序里所有人都是棋子的本质。
车拐上高架桥,阳光从云层后面整个透出来,照在前挡风玻璃上有些刺眼。赵建国抬手遮了遮,忽然想起苏瑶在电话里说的最后一句话:有些东西失去了,就不是用条件能换回来的。
他现在完全理解了。
第十四章 合作,但不是回去
林远把合作方案的框架发给韩磊时,韩磊回了四个字:条款够狠。林远没解释,只让他跟法务对接。他知道韩磊的性格,嘴上说狠,动作比谁都快。果然第二天下午,远航科技的法务团队就把正式协议发到了华远集团。
签约定在三天后,地点选在远航科技的会议室。韩磊原本建议放在第三方场地,林远说不用,就放在远航。他需要赵建国坐在他每天工作的环境里,看他究竟拥有了什么。
签约那天早上,林远比平时早到了四十分钟。他把会议室重新检查了一遍,投影仪、文件、签字笔、茶水。苏瑶路过门口,看他弯着腰摆正最后一瓶矿泉水的位置,停下来靠在门框上。
“紧张?”
“不紧张。”林远直起身,“怕有人做手脚。”
苏瑶笑了一声,转身走了。走出几步又回头,补了一句:“陈立昨天办完离职了。”
林远停了一瞬,把矿泉水瓶又往前挪了半寸。“我知道。”
“他好像想找你。”
“找我干什么,交接已经完成了。”
苏瑶没再说什么,脚步声顺着走廊远去。林远站在空荡荡的会议室里,看着落地窗外楼下车水马龙的街道,想起七年前入职华远第一天,他提前半小时到,坐在工位上把技术文档从头到尾读了一遍。那时候他觉得只要把事做好,其他的都会顺理成章地来。
赵建国到得很准时,只带了一名法务和一位技术总监。没有随行队伍,没有记者拍照,低调得不像一个集团董事长的出行。韩磊在门口迎接,握手寒暄几句后,引着他们进了会议室。
林远站在投影幕布旁边,赵建国进门时他们的目光碰了一下。赵建国先开口:“林总监,气色比上次好多了。”
“赵董请坐。”林远拉开椅子,没有接那句话。
会议流程简单直接。韩磊先介绍了协议框架,技术授权范围、服务周期、费用结算方式、争议解决机制。华远的法务盯着几条关键条款逐字推敲,远航的法务对答如流。林远坐在长桌一侧,偶尔补充一句技术细节。赵建国坐在对面,大部分时间在听,手里的签字笔转了一圈又一圈。
“第七条第三款,”华远的法务忽然抬头,“合作期间产生的衍生技术成果,归属权需要明确。”
远航法务刚要开口,林远先说话了:“衍生成果分两类。基于远航核心架构的改进部分,归远航;华远在应用层做的定制开发,归华远。边界在协议附件二里写清楚了。”
华远的技术总监翻到附件二,看了几页,凑到赵建国耳边说了句话。赵建国点了点头。
“可以。”华远法务在条款旁打了个勾。
协议定了下来。两份正本摆在桌上,赵建国先签,笔尖在纸面上停留了片刻,然后落下。他签完推给林远。林远拿过笔,翻开最后一页,签上自己的名字,字迹工整,和七年前入职登记表上的一模一样。
互换文本后,双方的人各自收好。韩磊起身说去安排午餐,华远的技术总监跟着他往外走。会议室里只剩下赵建国和林远。
赵建国没有急着走。他把签字笔搁在桌上,手指点了点协议封面。
“我想加一条补充条款。”
林远看着他。
“华远未来所有核心技术决策,必须有远航代表参与评审。”赵建国说完,停顿了一下,“这一条是我自愿加的,不是交换条件。华远需要外部技术判断,内部已经没人能给出客观意见了。”
林远盯着赵建国的眼睛看了几秒。这个在商场上摸爬滚打了三十年的男人,此刻说出这句话的时候,语气里没有施舍,也没有恳求,像是一个人在承认自己盖的房子缺了地基。
“可以。”林远翻开自己的协议,拿起笔在空白处加了一行字,字迹清晰,力道匀称。加完后他把协议转过去给赵建国看。
赵建国俯身读了那行字,点了点头。他站起身,扣好西装外套的扣子,拿起公文包。走到门口时,他停下脚步,没有回头。
“苏瑶在你们那边,干得怎么样?”
“她很好。”林远的语气平稳,但嘴角的弧度藏不住,“下周我们有个新项目启动会,她主导。”
赵建国的背影像是在那句话里停顿了一瞬。然后他推开门,脚步声沿着走廊远去。
林远独自坐在会议室里,把协议和补充条款从头到尾读了一遍。阳光从百叶窗的缝隙里漏进来,在他手背上投下一道一道细长的光带。他站起来走到窗边,看到赵建国坐进楼下的黑色轿车,车门关上,车身缓缓汇入主路车流,最终被高楼遮挡。
他回到工位时,手机震了一下。一条陌生号码的短信:林远,陈立。能聊两句吗,我在负二层停车场。
林远看着那行字,拇指悬在屏幕上。他想起七年前入职那天,陈立是第一个跟他打招呼的人,拍着他的肩膀说兄弟以后互相照应。后来项目立项会上陈立第一次抢了他的发言机会,再后来年终考评陈立把自己的名字写在他前面,再后来晋升公示上陈立的名字覆盖了他的。
他把手机装进口袋,按了电梯。
负二层停车场光线昏暗,空气里混着混凝土和汽车尾气的味道。陈立靠在一辆银色轿车旁边,西装外套搭在手臂上,领带松了半截,皮鞋上沾着灰。看见林远从电梯口走出来,他直起身,往前迎了两步,又停住了。
“协议签了?”陈立先开口,声音比平时低了不少。
“签了。”
“恭喜。”
林远没接话,站在两米开外,手插在裤兜里。停车场的日光灯嗡嗡作响,一辆车从坡道上下来,车灯扫过他们之间的地面,又拐进了远处的车位。
陈立沉默了一会儿,像是在组织语言。“我来找你,就是想知道一件事。我坐在这个位子上,把你挤走了。你现在回来帮华远,为什么?”
林远看着他。陈立的脸上没有了往日那种圆滑的自信,下巴上冒出一层淡青色的胡茬,眼睛里有血丝。他大概很多天没睡好,也许从项目出问题那天开始就没睡好。
“我不帮华远。”林远说,声音不响,但在空旷的停车场里很清晰,“我的架构还在华远的系统里跑着,我的算法模型还有人在用。漏洞不修,我的技术就背着骂名。我是对我的东西负责。”
陈立张了张嘴,没发出声音。
“还有,”林远往前走了一步,“苏瑶还在华远做过项目,你们部门还有几个认真做事的人,他们的工作不应该被你和李副总的关系户毁掉。我对他们负责。”
陈立的肩膀塌下去一截。他低头看着自己皮鞋上的灰,忽然苦笑了一声。“你知道吗,我一直以为只要把你弄走,我就能坐稳那个位置。你走了以后我才发现,你做的那些东西,我根本接不住。”
林远没有回应这句话。有些道理不需要别人来点破,自己碰了壁自然明白。
“离职手续办完了?”林远问。
“办完了。”
“那就好。行业的门槛没你想的那么低,换个地方从头开始,别再靠关系了。”
林远说完转身走向电梯口。身后传来陈立的声音,带着一点沙哑:“林远,对不住。”
林远脚步没停,伸手按了电梯上行键。金属门打开,他走进去,门合上时他看到陈立还站在那辆银色轿车旁边,日光灯把他的影子拉得很长,一直延伸到斜坡的暗处。
电梯上行。林远靠在轿厢壁上,闭了闭眼。手机又震了,是苏瑶发来的消息:启动会的方案我改完了,你回来看看。他回了一个字:好。
走出电梯,走廊尽头的会议室里传来韩磊的笑声和餐盒碰撞的声响。林远推开玻璃门,阳光铺了满桌,苏瑶坐在靠窗的位置,笔记本电脑屏幕上是他熟悉的架构图,旁边放着一杯没喝完的咖啡。她抬起头,看了他一眼,什么也没问,只是把屏幕转过来。
“这里,我把缓存层重新设计了,你看能不能过。”
林远在她对面坐下,手指点在屏幕上,开始一帧一帧地看。窗外主路上车流不息,远航科技的新招牌在午后的阳光里泛着金属光泽。他的手机再次亮了一下,是赵建国发来的短信:协议已存档,下周一派技术对接组过来。他没有立刻回复,把手机翻了个面扣在桌上,继续看苏瑶的方案。
手指划过触摸板,架构图放大,一行行代码注释整整齐齐。他的笔在旁边的便签纸上随意画了几笔,一个全新的模块结构渐渐成形。
苏瑶凑过来看了一眼,说:“这个思路比上一版清晰。”
“改完发我,晚上一起对。”
苏瑶点头,拿回电脑。林远起身去倒水,经过走廊时看到墙上的公司愿景挂图,落款是远航科技创始团队。他的名字排在韩磊后面,居第二个。他端着水杯看了几秒钟,没有多停留,转身回到了工位。
第十五章 合伙人会议上的新椅子
远航科技的新办公室在软件园三期B座十二层,整层面积比原来大了三倍。韩磊把钥匙扔给林远的时候说了一句:“布局你来定,技术团队你最熟,怎么舒服怎么来。”
林远接过钥匙,在空荡荡的毛坯空间里走了一圈。水泥地面,裸露的天花板管道,西面整墙都是落地玻璃,下午的光线从百叶窗缝隙里切进来,在地面上排出一道道光纹。他站在靠近东南角的柱子旁边停了停,掏出手机给装修公司发了一条消息:靠窗这一排,先预留十二个工位再加四个可移动工位。
“十二个?”苏瑶的声音从门口传来,她手里拎着两杯咖啡,踩着高跟鞋绕过地上的线缆,走到他旁边递过一杯,“研发一组满编才八个人。”
“还有算法组和测试组。”林远接过咖啡喝了一口,“接下来两个月要进一批新人,椅子不够的话,我担心又像上次那样,新人来了坐会议室。”
苏瑶看了他一眼,没再多问。她比谁都清楚,上个月林远在内部系统里提交了一份人员扩编申请,韩磊当天就批了。这在远航的历史上很少见,韩磊批预算向来慎重,有时候一个测试设备申购单能在系统里挂三周。但林远那份申请只用了几个小时就走完了流程,审批记录里韩磊的批注就四个字:按此执行。
装修队第二天进场。林远把工位布局图发给韩磊确认时,特意在技术区旁边加了一间小会议室,比标准会议室少一半面积,只放一张圆桌和四把椅子。韩磊回复得很快:这间做什么用的?
林远打字回复:技术评审用,不设行政座次,谁写代码谁坐主位。
韩磊回了一个OK的表情。当天下午,这间小会议室就被装修图上标注为“评审室B”,没有放在行政会议室列表里。
苏瑶的入职手续办得比预想中快。她正式出任远航研发副总监那天,林远在评审室B开了一个短会,只有五个人参加,全是即将组建核心架构组的技术骨干。苏瑶坐在圆桌靠门的位置,面前摊开一份项目规划书,封面上写着“新架构1.0技术路线图”。她发言的时候,林远靠在椅背上听,偶尔在笔记本上记几个关键词。她讲到数据层设计时停顿了一下,看了他一眼,他微微点头,示意继续。
散会后其他人陆续离开,苏瑶留下来收拾投影连接线。林远靠在门框上,忽然说了一句:“你还记得去年秋天这个时候吗?”
苏瑶手上的动作停了一下,侧头看他。“哪个秋天?”
“就是在华远,晋升公示出来那天。”
苏瑶把线缆卷好放进收纳盒,直起身看着他。“当然记得。那天你从赵建国办公室出来,全部门的人都以为你会忍下来。周海涛在走廊上拉住你说了半天,让你别冲动。陈立站在工位旁边假装看电脑,眼睛一直往你那边瞟。”
“我当时写辞职信只用了三分钟。”林远笑了一下,走到圆桌旁拉开一把椅子坐下。
“你打印出来递给周海涛的时候,手一点都没抖。”苏瑶也坐下来,双手捧着已经不热的咖啡杯,“部门里七八个人都看见了。我当时站在打印机旁边,心里想的是,这个人以后肯定能站起来。”
“站起来不够。”林远看着落地窗外的园区草坪,几个年轻人正坐在长椅上吃午饭,“一个人站起来,下面的人还是坐着,那叫孤胆英雄。我要的是所有人都能站着干活。”
苏瑶没有接话。她看着林远侧脸上的光影,想起一年前那个从董事长办公室走出来、衬衫袖口还沾着咖啡渍的男人。那时候他脸上没有太多表情,但眼睛里有一种很硬的东西。她当时说不清那是什么,现在明白了,是底线被踩到之后的反作用力。
新办公室装修进入第四周时,十二个工位已经全部安装完毕,电脑和显示器也陆续到位。林远特意让行政多采购了十把人体工学椅,堆在储物间备用。苏瑶有一次路过储物间门口,看见他蹲在地上检查椅子的滑轮,起来的时候膝盖顶到了门框,揉了半天。
“你亲自验货?”她问。
“这批椅子是给新人的,第一印象很重要。”他拍了拍手上的灰,“程序员工位配什么椅子,直接能看出公司把技术当成本还是当资产。”
苏瑶愣了一下,然后笑了。“韩磊给了你多少预算,让你这么花?”
“预算是一回事,怎么花是另一回事。”他直起身,把储物间的门关上,“华远那边技术部的椅子我坐过,腰托是坏的,反应了半年没人修。”
这句话说得很轻,但苏瑶听出了里面的意思。没有抱怨的语气,更像是一种参照。他在用过去的经历校准现在该怎么做,而不是被过去困住。
两周后,远航新项目启动会在一号会议室举行。这是林远来远航后主持的第三次全体技术会,会议室里坐了二十多人,大部分是研发和算法组的工程师。韩磊坐在最后一排靠墙的位置,手里转着一支笔,没有发言。
林远用遥控器翻到最后一页PPT,画面简单,只有三行标题和一个表格结构。他站在投影幕布旁边,手里的激光笔没有打开。
“第三个议题,股权激励方案。”他的声音平稳,会议室里翻笔记本的声音瞬间停了。
“这是初稿。覆盖范围包括核心架构组、算法组和测试组骨干,分四年成熟,第一年25%。”他用遥控笔翻了一页,表格里列着岗位类别和对应的激励份额,“规则写在附件里,有一条我需要特别说明。”
他顿了一下,目光扫过会议室里每一张脸。
“方案由技术委员会集体决定分配,不看职级,看代码贡献量和项目主导度。我的那一票,权重只占两成。”
底下有人低声交流了几句。坐在前排的一位资深工程师抬了抬手,问了一个很实际的问题:“那行政和产品线的同事怎么算?”
“产品线另有激励通道,正在和HR那边同步做。行政支持岗不在这个盘子里,他们会走年终绩效。”林远回答得很干脆,“技术股权池只给技术产出者。这不是分蛋糕,是先做一个样板出来。”
韩磊在后面轻轻用笔敲了一下桌面,没有说话。散会后人群陆续离开,苏瑶走到他旁边低声说:“你刚才那句话,韩磊在下面拿笔圈了三个字。”
“哪三个?”
“技术产出者。”苏瑶把笔记本合上,“他圈完之后写了两个字——靠谱。”
林远没有接话,低头把投影仪关掉。落地窗外园区路灯已经亮了,新办公室的灯带沿着天花板边缘铺了一圈,冷白光落在崭新的工位和空椅子上。
储物间里那十把备用椅子还整齐地摞着,标签都没撕。
第十六章 迟来的年终奖与不迟来的决定
华远的年度总结会定在十二月最后一个周五。林远是从行业新闻里看到消息的,标题只有一行:华远集团承认重大技术失误,年度亏损逾四千万。配图是赵建国站在发言台后面的照片,面容比一年前苍老了许多,领带系得比以往都紧。
苏瑶把手机递过来的时候,林远正蹲在远航新办公室的储物间里清点一批新到的开发板。他看了一眼屏幕,继续低头数数,数到十七的时候停了下来。
“陈立被列进行业协会的黑名单了。”苏瑶站在储物间门口,声音不大,“全行业技术岗备案,五年内不得担任项目负责人。”
“李副总呢?”
“引咎辞职,公告里写的是‘因个人原因’。”苏瑶把手机收起来,“周海涛也走了,没等年终结算就办了手续。”
林远把手里的开发板放回纸箱,站起身拍了拍膝盖上的灰。他走到窗边,外面飘着小雪,园区里的路灯在薄雪上投下模糊的光晕。远航的办公室暖气开得很足,玻璃上凝了一层水雾。
“周海涛回老家了。”苏瑶走到他旁边,“王慧昨天给我发消息说的,在县城开了个小饭馆,店名叫什么‘老周家常菜’。”
林远没说话,抬手在玻璃窗上画了个圈,水雾散开,露出外面灰白色的天空。
三天后,林远开着车上了高速。苏瑶坐在副驾驶,导航里女声播报着前方出口信息。后备箱里放着两瓶酒,是林远前一天特意去买的,不是什么名贵牌子,就是周海涛以前在部门聚餐时爱喝的那种。
县城不大,下了高速又开了二十多分钟,导航停在一排临街商铺前。招牌是红底白字,门脸不大,玻璃门上贴着“开业大吉”的红色贴纸,边角已经有些卷了。
推门进去的时候,店里没有其他客人。四张方桌靠墙摆着,桌上铺着白色塑料桌布,角落里的暖气片发出咕噜咕噜的响声。周海涛从后厨走出来,身上系着围裙,头发比一年前白了不少,脸颊削瘦,见到林远的时候脚步停了一下。
“来了。”周海涛的声音有些干涩,手在围裙上擦了擦。
“周哥。”林远把酒放在靠里的那张桌上,“给你带了点东西。”
周海涛看了一眼酒瓶,嘴唇动了动,转身去后厨端菜。苏瑶想跟进去帮忙,被林远轻轻拉住了手腕。
“让他自己来。”林远低声说。
菜上齐了,四菜一汤,都是家常口味。周海涛解下围裙搭在椅背上,从柜台后面拿出三个玻璃杯,开了一瓶林远带来的酒,倒满。
“我自罚三杯。”周海涛端起第一杯,没等林远说话就仰头灌了下去。第二杯喝了一半,眼圈已经红了。第三杯放下的时候,杯底磕在桌面上发出一声闷响。
“林远,当年那事——”周海涛的声音卡住了,手背用力擦了一下眼睛,“我周海涛干了二十多年技术管理,就那一件事,到现在想起来还觉得脸上发烫。”
林远给他碗里夹了一筷子菜,语气平坦:“周哥,你当年跟我说忍一忍,我那时候觉得你是在和稀泥。”
周海涛低下头。
“后来我在远航做第一个项目的时候,团队里有个小伙子跟我闹情绪,说我不理解他的方案。”林远端起酒杯喝了一口,“我当时第一反应就是让他冷静,先按我的思路来。话到嘴边突然想起来,你当年跟我说的大概也是这个意思。”
“那不一样。”周海涛抬起头,“你是有真东西在肚子里,让人忍是保护项目。我是明知道你有本事,还让你忍,那是——”
“那是你的位置只能让你说那句话。”林远打断了他,“周哥,我今天来不是让你道歉的。我是来谢你的。”
苏瑶安静地坐在旁边,筷子搁在碗沿上,看着两个男人之间的空气慢慢松弛下来。
周海涛红着眼愣了几秒,然后拿起酒瓶给林远倒满,手有点抖,酒洒了一点在桌布上。
“没有你那句忍一忍,”林远端起杯子碰了一下周海涛的杯沿,“我可能到现在还在华远那个工位上修坏掉的椅子,一年一年等那个‘明年再说’。”
周海涛把脸埋进手掌里,肩膀微微抽动。店里的暖气片还在响,后厨灶台上的水壶发出尖锐的鸣笛声,他起身去关火,回来的时候眼睛已经擦干了。
“赵建国找过我。”周海涛重新坐下,声音稳了一些,“上个月的事。他问我你在远航做得怎么样,我说我不清楚。他又问我要你的联系方式,我没给。”
“他通过韩磊找到了我。”林远夹了一筷子青菜,“上上周来公司谈合作,签了协议。”
周海涛愣了一下,随即点了点头,没有追问细节。
饭吃到后半程,周海涛去柜台后面翻了一阵,拿出一个牛皮纸信封,边角磨得发白。他把信封推到林远面前,手指按在上面停了两秒才松开。
“你留下的东西。”周海涛的声音很低,“当年你走之后,我把你电脑里的项目原始数据全部备份了。陈立接手的时候要格式化你的硬盘,我说先放着,走流程也要时间。后来就一直放在我那里。”
林远拿起信封,能摸到里面U盘的轮廓。封口处贴着一张便签,上面是周海涛的字迹,只有一行数字,是林远在华远时的工号。
“你那个三层架构的完整设计文档、算法推演过程、还有测试用例的全部原始记录,都在里面。”周海涛给自己又倒了一杯酒,没喝,只是看着杯底,“陈立后来改得乱七八糟,李副总催得急,但根儿上那些东西,他一直没搞明白。”
苏瑶看着那个信封,想起一年前林远临走时只带走了桌上一个马克杯和一盆绿萝。他电脑里的文件清理得干干净净,连回收站都清空了。
“周哥。”林远把信封收好,放进外套内侧口袋,“你在华远最后那几个月,是不是特别难?”
周海涛笑了一声,很短。“陈立一个月改三次方案,每次改完我都得签字。签完字出了事算我的,功劳算他的。李副总那边三天两头要汇报,我写了两版PPT都被打回来,说不够‘有高度’。”
“所以你走了。”
“我干不动了。”周海涛把酒杯放下,“你走之后,技术部半年换了四个人。苏瑶也走了,王慧调去了行政部,以前那个办公室现在空了一半,听说要改造成什么‘创新孵化区’。”
他顿了顿,看着林远。“你那天从董事长办公室出来,直接把辞职信拍在周海涛桌上。我后来跟赵建国汇报的时候,他问了我一句话,我到现在都没忘。”
“他问什么?”
周海涛端起酒杯,没喝,只是转着杯壁。“他问我,周海涛,你说林远走了,我们技术部还剩什么。我当时没答上来。”
暖气片咕噜响了一声,后厨的水壶又开了,周海涛起身去关火。回来的时候他把围裙重新系上,说要给林远和苏瑶煮碗面,是老家带来的手工挂面。
林远没有推辞。他走到后厨门口,靠在门框上看周海涛下面条。锅里的水翻滚着,面条丢进去,水汽蒸腾起来,模糊了周海涛的脸。
“周哥,”林远的声音从门口传来,“华远那边新成立了一个技术顾问委员会,赵建国让我推荐人。”
周海涛的手顿了一下。
“我推荐了你。”林远说,“远程参与,不坐班,按项目结算。你干不干?”
周海涛转过身,手里还攥着筷子。
“我饭馆刚开起来……”
“不影响。”林远说,“顾问就是看看方案、提提意见,你干了二十年技术管理,经验在那里。赵建国那边我去说。”
周海涛站在那里,锅里白气涌到他脸上,他把头低下去搅面条。
“干。”他说,声音有些闷,但很稳。
吃完面已经是下午两点多。林远和苏瑶起身告辞,周海涛送到门口,站在红底白字的招牌下面,雪已经停了,地上积了薄薄一层白。
上车之前,周海涛叫住林远,从围裙口袋里摸出一张名片递过来。名片是饭馆的,背面手写了一行字,是他的私人号码。
“以后来这边,提前说一声。”周海涛把手插回围裙兜里,“我给你们留位子。”
林远把名片收好,点了点头。
车子开上主路的时候,苏瑶从后视镜里看了一眼,周海涛还站在店门口,灰色围裙在风里鼓着。
“你什么时候跟赵建国提的顾问委员会?”苏瑶问。
“上次签约的时候。”林远看着前面的路,“华远的技术事故报告我看了,根子上是他们没有内部技术决策的独立评审机制。我提了三条修改建议,其中一条就是成立外部顾问团。赵建国同意了。”
“你推荐周海涛,是觉得他能胜任,还是——”
“都有一点。”林远单手扶着方向盘,另一只手按了一下喇叭,前面有辆三轮车慢慢悠悠地拐弯,“周哥技术上不差,差的是说‘不’的底气。给他一个不用在办公室坐班的位置,他能把真话说出来。人这辈子总得有一次机会,把欠自己的话还回来。”
苏瑶侧过脸看他。车窗外的县城街景慢慢退去,路边是光秃秃的杨树和灰扑扑的田野,远处有农家的炊烟直直地升起来。
“那你自己呢?”她问,“当初从华远走的时候,你欠自己什么话?”
林远沉默了一阵,直到上了高速,收费站的栏杆抬起来,他才开口。
“我当时欠自己一句话——你没有错。”他把车速提起来,窗外的田野变成模糊的色块,“今天周哥把那个信封给我的时候,我补上了。”
苏瑶把手伸过去,覆在他搁在档位杆上的手背。暖气从空调口吹出来,车里安静得只剩下轮胎碾过路面的声音。
那个牛皮纸信封还揣在林远外套内侧,贴着心脏的位置,随着车速微微发烫。
第十七章 婚礼上的技术方案
化妆间的日光灯管发出轻微的电流声,苏瑶坐在镜前,化妆师正替她描最后一笔眼线。门外的走廊里人声鼎沸,韩磊扯着嗓子在安排宾客入座,混着婚礼进行曲的调音试放,一阵一阵传进来。
林远的手机震了。
他低头看了一眼,是远航研发群的消息,负责新项目的工程师小郑连发三条语音,语气急促。林远把语音转成文字——系统压测时核心模块的并发处理逻辑出现死锁,数据回滚失败,凌晨刚交付的测试版本全挂了。
“怎么了?”苏瑶从镜子里看到他的表情变化。
“没事,你化妆。”
“林远。”
他已经站起身,推开化妆间的侧门走到走廊尽头。电话拨过去,小郑接得飞快,背景里键盘声密集得像下雨。林远听了两分钟,要了远程权限,折回化妆间时手里多了一台笔记本电脑。
“很严重?”苏瑶问。化妆师识趣地退到门外。
“死锁,根源不复杂。”林远把电脑放在化妆台上,掀开屏幕,手指在键盘上快速敲击,“但如果不马上给出修复方案,明天客户验收会出问题。”
苏瑶看了他一眼,从自己包里掏出平板,打开他们共同维护的代码文档。
“第三十二行,资源竞争那块,”她低头翻了两下,“你把锁的粒度再拆细一级,用读写锁替代互斥锁。我帮你把日志先跑起来。”
林远侧过脸,化妆间暖黄的灯光打在她刚化好的妆容上,侧影安静而笃定。他嘴角动了一下,没说话,手指开始飞速修改代码。
两个脑袋凑在同一块屏幕前,键盘与平板的触控声交错。苏瑶腾出一只手把平板架在化妆镜边缘,镜子里映出两个人的倒影和满屏滚动的日志。新娘头纱垂下来,扫过林远的肩膀,他下意识往旁边偏了偏,头纱又滑回去。
“别动。”苏瑶说,盯着日志,“日志里有个时间戳异常,我怀疑是时钟同步的问题,把服务端的NTP配置发我看看。”
林远切了窗口,把配置代码复制过去。苏瑶看了三行,指着其中一处:“这个地址是不是写错了?跟你上周给我的架构文档不一致。”
“是写错了。”林远的手顿了一下,“上周迭代的时候小郑改了一版,我对过,但没进主分支。”
“那问题就在这里,时钟源漂移导致锁超时判定失效。先修这个,死锁那块我帮你把回滚策略重新写一段。”
两个人在不到一平米的化妆台前分工协作,一个改代码,一个查日志,偶尔交换一两句简洁的技术对话,语气平稳得像平时在实验室里讨论方案。门外韩磊敲了两次门催场,第一次两人应了一声,第二次苏瑶头都没抬,回了句“再等十分钟”。
九分半钟之后,林远按下提交键,苏瑶在远程终端里敲下最后一行验证命令。屏幕上跳出一串绿色的成功提示。
“稳了。”苏瑶把平板扣在桌上。
林远合上电脑,回头看她,妆还是好好的,只有鬓角一根碎发落下来,被头纱压住了。他伸手把碎发拨到她耳后。
“刚才吓我一跳。”苏瑶说,语气里带着笑意,“我以为你要让我一个人走红毯。”
“那不会。”林远把电脑收好,“就算天塌下来——”
“你也得先提交了再塌。”她接上他的话。
门外韩磊第三次敲门,这次直接推开了:“两位,再不出来我就得让人把音响设备搬回去了。伴郎伴娘都站麻了。”
林远拎起电脑包往外走,韩磊拦了他一下,凑过来低声问:“处理好了?”
“嗯。”
“我就知道。”韩磊退后一步,看了苏瑶一眼,又看看林远,“你说你们俩的结婚誓词,不会也写成技术方案格式吧?第一项需求,第二项接口定义,第三项同步机制——”
“第四项呢?”苏瑶问他。
“第四项,”韩磊伸手拉开化妆间的门,“第四项我替你们写好了,白头偕老,bug清零。”
走廊尽头的宴会厅大门虚掩着,透出一道暖黄色的光。林远走在前面,苏瑶提着裙摆跟在半步之后。快到门口的时候,他忽然停下。
宴会厅门口的签到处旁边,站着一个穿深灰色大衣的人。
赵建国。
他没有进去,也没有走向主宾席,只是站在签到台侧边的阴影里,像在等什么人,又像只是路过。看见林远过来,他往前迈了一步,从大衣内袋里取出一只细长的黑色绒布盒子。
“林远。”赵建国的声音比上次见面时低了一些,“恭喜你。”
林远站定了。
赵建国把盒子递过来,没有多说寒暄的话。他的目光扫过苏瑶身上的婚纱,扫过林远手里还拎着的电脑包,嘴角动了一下。
“刚才在处理项目的事?”
“对。”
“华远那边的合作项目,你们团队做得不错。”赵建国把盒子放在签到台上,没有递到林远手里,“这份礼物,你回头再看。”
林远拿起盒子,手感很轻。打开,里面是一支老式钢笔,黑色的笔杆磨得发亮,笔夹上有细微的划痕,一看就是经常使用但被小心保管了很多年的物件。盒子底部压着一张纸条,折叠得方方正正。
林远展开纸条。上面是赵建国的手写字,笔迹利落,只有一句话——
“当年签字划掉你名字的那支笔,我一直留着,是提醒自己犯过的错。”
没有抬头,没有落款。
林远把纸条折好,放回盒中。赵建国已经退后一步,大衣衣摆在门口踩脚垫上蹭了一下,他转过身,背影消失在走廊尽头的转角。
苏瑶从旁边轻轻握住林远的手腕。
“他站了多久了?”
“不知道。”林远把钢笔从绒布盒里取出来,银色笔尖在宴会厅门口的灯光下反着一点冷光。他把钢笔放进西装内袋,和那个牛皮纸信封并排放着,一个在左边,一个在右边。
“走吧。”他说。
宴会厅的大门被韩磊从里面拉开,灯光和掌声同时涌出来。红毯从门口一直铺到舞台,两边坐满了人,前排是远航的同事,后排有华远的老面孔。王慧坐在靠后的位置,冲他们用力挥了挥手。
林远牵着苏瑶的手走上红毯。管风琴音乐响起,花瓣从两边的花童手里撒出来,落在婚纱裙摆上,也落在林远的西装肩头。
走到一半的时候,苏瑶忽然侧过头。
“你左边口袋硬邦邦的,”她小声说,“装着什么?”
“一支笔,和一个信封。”
“重吗?”
林远握紧了她的手,掌心温热。
“不重了。”
舞台的追光打下来,韩磊站在司仪台上敲了敲话筒,清了清嗓子。
“各位来宾,今天是个好日子……”
林远站在舞台中央,苏瑶的手还攥在他手里。追光刺眼,他几乎看不清台下宾客的脸,只能感觉到一片模糊的、带着笑意的轮廓。
苏瑶接过话筒,声音清亮,穿透了整个宴会厅。
“感谢大家来参加我们的婚礼。刚才化妆的时候发生了一点小插曲——远航的一个项目出了点技术问题,我和林远在化妆间处理了半小时。”
台下响起一阵善意的笑声。
“所以有人问,我们的结婚誓词是不是得按技术方案写。”苏瑶看了林远一眼,“我想了想,也确实可以。”
她稍微顿了一下。
“需求很简单:两个人,一个方向。接口定义是——有话直说,不藏不掖。同步机制就靠一个原则,无论谁先走到前面,回头拉对方一把。至于验收标准——”
苏瑶松开话筒,侧过身看着林远。
“验收标准就是,一辈子。”
林远从她手里接过话筒。他低头看了看话筒,又抬头看了看台下黑压压的人影。很多年前,他第一次站在华远的项目汇报台上,手里攥着的也是话筒,那时候台下坐着周海涛、陈立、赵建国。今天台下坐的是韩磊、王慧、远航的团队,还有一些他叫不出名字的新面孔。
“我没有那么多话要讲。”林远的声音很平,但整个宴会厅都安静下来,“苏瑶刚才说的,就是我想说的。不过我想补一句。”
他顿了一下,左手按了按西装左胸的位置,那里有一支钢笔的轮廓,隔着布料,很轻地抵着心口。
“有些人,有些事,错过了就是错过了。但总有一个人会让你觉得——你走出来的每一步,都值了。”
他把话筒递回给韩磊,握紧苏瑶的手。台下掌声和欢呼声混在一起,韩磊在台上敲着话筒喊了两句什么,被淹在声浪里听不清了。
林远低下头,在苏瑶额头上轻轻碰了一下。
苏瑶闭着眼睛,睫毛微颤。她贴着他的耳边说了一句话,声音太小,只有他一个人能听见。
她说的是:“那支笔,回去给我看看。”
林远笑了。他抬头看向宴会厅尽头的窗外,深秋的阳光穿过落地玻璃,把整条红毯照得发亮。宾客席间有人站起来鼓掌,有人举着手机拍照。
远处高速公路上,一辆货车正驶过空旷的原野,阳光照在车身上,反出一小片移动的光斑。那光斑闪过窗口,短暂地映在宴会厅的墙壁上,又消失了。
林远牵着苏瑶的手,一步步走下舞台,走进人群。
(全文完)
文章虚拟演绎,请勿当真。
热门跟贴