可以离开,系统留下

楔子

降薪通知和辞职信,是同一天到我手里的。

人事把那张纸推过来的时候,手指在“年度薪酬调整”几个字上敲了敲,像在敲一块即将报废的键盘。总裁把辞职信撕掉的时候,纸屑落进他桌上的咖啡杯里,没有沉下去,浮在表面,被褐色的液体一点点浸透。

“你可以离开。”他说,把撕成两半的信封残骸推到桌角,“系统留下。”

我看着他,忽然想起十二年前入职那天,同一间办公室,同一张桌子,他对我说的是另一句话。

那时候桌上没有咖啡,只有一摞厚厚的技术方案,和他伸过来的手。

“周沉,这套系统,以后就是你的了。”

十二年后,他告诉我,我可以走,把系统留下。

好像这十二年,我只是一双暂时借给公司的手。

第一章 二十万

三月中旬,苏州的玉兰刚开,风里还带着冬天没散干净的寒意。

我收到那封邮件的时候,正蹲在机房地上换一根光纤跳线。手机在工装裤口袋里震了一下,我没理。又震了一下。第三下的时候我站起来,摘掉防静电手环,把手机掏出来。

发件人是人力资源部,抄送总裁办。标题写得很客气:《关于2026年度薪酬结构优化的沟通函》。

我站在机柜旁边,读了第一遍。又读了第二遍。

底薪不变,绩效基数下调,岗位津贴取消,长期服务补贴并入绩效池。财务部算出来的数字很精确:年度总包从一百四十万降到一百二十万。少了二十万。

机房的风扇嗡嗡转着,蓝灯绿灯闪成一片。我在这片声音和光里站了大概两分钟,然后锁了机柜门,坐电梯回工位。

经过茶水间的时候,听见里面有人说话。

“技术中心那边降了多少?”

“听说架构组最高,百分之十五到二十。周沉应该是最多的。”

“他不是干了十几年了吗?”

“就是因为干了十几年,基数高,降起来才‘有效果’。”

我继续往前走,没有回头。说话的是两个产品线的人,他们看见我了,但来不及收声。其中一个后来给我发了一条微信,说“周哥,我没有别的意思”。我没有回。

回到工位,我打开那封邮件又读了一遍。措辞很讲究,没有出现“降薪”两个字,用的是“薪酬结构优化”和“绩效弹性提升”。但数字不会因为词好听就变多。我拿计算器摁了一下:一百四十万减一百二十万,差额二十万。如果按月摊,每个月少拿一万六千多。房贷一万二,孩子的补习班和兴趣班加起来四千,父亲那边的护理费每个月三千五。这些东西不会因为公司“优化结构”就跟着优化。

我把计算器放下,打开抽屉,里面有一个牛皮纸信封,很旧了,边角磨得发毛。信封里装的是十二年前入职时签的那份劳动合同副本,第一页右下角,周沉两个字是我自己手写的,笔迹比现在用力。

那天晚上回家,苏敏在厨房热汤,儿子在客厅拼乐高。我坐在餐桌前,把手机放到桌上,屏幕朝上。

“怎么了?”苏敏端着汤出来,看了我一眼。

“公司降薪。”

她把碗放下,在我对面坐下来,没有急着问降多少。

“二十万。”

苏敏沉默了一会儿。她在一家设计院做行政,工资不高但稳定,我们家的账一直是她在管。

“你是技术核心,”她说,声音很平,“他们降你之前,有没有问过你?”

“没有。”

“那就不是钱的事。”

我看着她。她说得很轻,但每个字都落在该落的地方。

“是让你自己走。”

那天晚上我没有睡着。凌晨三点多,我起来坐在书房里,打开电脑,调出系统的架构总图。那张图是我十二年前画的,后来改过无数次,但底层的那几根主线没有变过。订单怎么进来,库存怎么扣,结算怎么跑,对账怎么收口。每一条线我都走过,每一个节点我都知道它为什么在那里。

我盯着那张图看了很久,然后打开了另一个文件夹。

里面是猎头发来的邮件。最近半年,陆续有五六家,我都没有认真回。最新的一封来自上个月,一家做供应链SaaS的创业公司,开出的价码比我现在的总包高百分之四十,CTO岗,直接向CEO汇报。

我把那封邮件又读了一遍,然后关掉了电脑。

第二天早上,我没有去找总裁。也没有去找人事。我打开公司的OA系统,在“离职申请”那一栏,写下了日期。

第二章 两页纸

总裁的办公室在顶层,走廊尽头,朝南,推开窗能看见园区里那排香樟。我在门口站了几秒钟,门开着一条缝,里面有人在说话。

“方总那边催得很紧,天穹的进度不能再拖了。”

是战略部的人在汇报。我听见总裁回了一句,声音不高:“周沉那边我会跟他谈。”

我敲了两下门,推门进去。

总裁坐在桌后,衬衫袖口卷到小臂,桌上摊着一份文件。战略部的人看了我一眼,很快收起东西出去了。门在身后合上。

“坐。”他指了指对面的椅子。

我没有坐。我把手里那两页纸放在他桌上。一页是人事发的薪酬调整通知打印件,另一页是辞职信,格式模板从OA里下载的,理由栏我只写了一句话:个人原因。

他低头看了一眼,先拿起薪酬通知,扫了两遍,放下。然后拿起辞职信。

“什么意思?”

“两件事放在一起,意思应该很清楚。”

他把辞职信拿在手里,没有急着看内容,眼睛盯着我。

“你因为降薪要走。”

“我因为降薪、而且公司没有跟我做任何事前沟通,要走。”

他靠到椅背上,手指在辞职信的边缘捻了捻。办公室里很安静,窗外有鸟叫,很远。

“周沉,你知道公司现在的情况。天穹系统拖了快五个月,投资方的耐心是有限的。降薪不是针对你一个人,高管层一样降,我自己的工资砍得比你多。”

“高管层降多少我没有查过,也不该我查。”我说,“但我的团队里,架构组降得最多。原因你自己清楚,基数高。基数高的原因是我在这家公司干了十二年,而这十二年里,公司每一次系统出问题,第一个电话打给谁,你也清楚。”

他的手指停住了。

“你觉得不公平。”

“我觉得不合规。劳动合同里写的是薪酬总额,单方面调减,法律上站不住。我不是来跟你讨论公平的,我是来通知你,我不接受。”

他看了我一会儿,然后做了一件我没有预料到的事。

他把辞职信拿起来,从中间撕开。纸裂的声音很脆,像掰断一根干透的树枝。他把两半叠在一起,又撕了一次。碎片落进桌上的咖啡杯,浮在表面。

“你可以离开。”他说,声音没有升高,但每个字都压得很实,“系统留下。”

我看着那些浮在咖啡上的纸屑。

“什么意思?”

“你手里有多少东西,你自己清楚。十二年的架构决策,没有落成文档的,没有完整交接的,只有你脑子里清楚的。你现在走,系统怎么办?天穹正在重构,底层依赖你一个人判断。你可以对公司有意见,但系统不是你一个人的,你走了,上面跑的业务是几百号人的饭碗。”

他说这些话的时候,表情没有变。没有恳求,没有歉意,也没有威胁的意思。他说的是一种他认为理所当然的逻辑:你有责任,你得把责任尽完。

“所以你的意思是,我可以辞职,但得先把系统交成一个没有我也能跑的状态。”

“对。”

“如果我说不呢?”

他看着我。“那你就是拿系统当筹码。”

我站在那张桌子对面,忽然觉得很累。十二年了。他记得系统上跑的几百号人的饭碗,但不记得这十二年里,我父亲住院那一次,我在医院走廊改完最后一版容灾方案之后,第二天早上准时出现在发布会的现场。他也不记得,前年除夕前一天,结算系统出了对账偏差,我在机房待到凌晨四点,把最后一笔差异调平之后,回家路上买了速冻饺子,超市已经关门了,是在加油站便利店买的。

他记得的是“系统不能没人管”。

“陈总,”我叫了他的姓,没有叫总裁,也没有叫名字,“系统可以留下。但‘没有我也能跑’这件事,不是我今天走之前能交出来的。它需要时间,需要人,需要你在我还在这里的时候,就允许我把知识分出去,而不是每次我提招人你都说编制紧、我提文档化你都说先保交付。”

他没有说话。

“降薪通知我拒绝签收。辞职信你撕了,没关系,OA里有记录。我今天来,是先跟你打招呼,不是来求批准。”

我转身往门口走。走到门边的时候,他开口了。

“周沉。”

我停下来,没有回头。

“天穹下个月要交第一个里程碑。你如果在这个节骨眼上走,后面的事,你负不了这个责。”

“我负了十二年了。”我拉开门,“换个人负一次,也许你就知道,这十二年到底是谁在负。”

第三章 拒绝签收

接下来的一周,公司没有一个人正式跟我谈降薪的事。

人事发过两封邮件,措辞客气,问我什么时候方便“沟通一下”。我回了一封:请将薪酬调整的法律依据、协商记录及我本人的书面同意文件发给我。对方没有再回。

但系统不会因为一封邮件没回就停下来。

周一早上,天穹的测试环境出了一个很不起眼的问题:库存预占在并发场景下偶尔会多扣一次。概率不高,千分之三左右。测试组报上来的时候,开发组的人看了一眼,说不影响主流程,先记录,下个迭代修。

我看了那封邮件,把测试环境的日志调出来,翻了两个小时。

千分之三的重复预占,如果发生在大促峰值,就是几万笔订单的库存虚扣。虚扣不会立刻报错,它会等到对账的时候才暴露,而那个时候货已经发出去了,账对不上,财务那边会炸。

我写了一封邮件,收件人是天穹项目组全体,抄送技术中心负责人和总裁办。措辞很克制:建议在里程碑交付前修复库存预占的并发缺陷,修复方案附后,预计需要三个工作日,涉及库存服务核心逻辑调整,建议由我本人执行。

邮件发出去四十分钟,技术中心负责人老钱把我叫进办公室。

“周沉,你这个邮件发得有点大。”

“问题本身比邮件大。”

“千分之三,测试环境,现在离里程碑只剩三周。你现在动库存核心,万一引入新问题, milestone 交不出来,谁担?”

“我不动,milestone 交出去的是一个带缺陷的版本。到了生产环境,峰值一上来,第一个炸的就是库存。”

老钱沉默了一会儿。他比我大五岁,技术出身,后来转管理,在这家公司的时间比我短三年。他夹在中间,上面是总裁和资方,下面是项目和团队。我知道他难做。

“你跟我说实话,”他压低声音,“你是不是已经在准备走了?”

“我在准备让系统不因为任何人走就出事。这两件事不冲突。”

他看了我很久,然后把那封邮件在屏幕上最小化了。

“你先别动库存。我跟上面沟通一下。”

“沟通多久?”

“三天。”

“三天之后如果没结论,我会在周报里把风险等级标成红色,同时抄送董事会技术委员会。”

老钱叹了口气,没有说好,也没有说不好。

三天之后,结论下来了:里程碑优先,库存缺陷留到下一个版本修复。批复邮件是老钱转发的,原文来自总裁办,只有一句话:“按现有计划推进,非阻塞问题不纳入本期范围。”

我看着那句话,在工位上坐了很久。然后我把那封邮件连同测试报告一起打包,发到了自己的私人邮箱。不是为了将来打官司,只是觉得,这个东西应该有人记住它存在过。

那天晚上我打开招聘网站,把半年前猎头发来的那封邮件翻出来,回了三个字:还在吗。

对方二十分钟后回了:在。随时。

第四章 代码和人

接下来的两周,我做了一件在别人看来有些奇怪的事。

我开始写文档。

不是那种应付交接的流程说明,是真正的文档:每一个核心模块为什么是现在这个架构,哪些历史决策是当时条件下的最优解但现在已经不适用,哪些地方看起来可以优化但一碰就会触发连锁反应,故障排查的时候先看哪几个指标、再看哪几个指标、哪些告警可以暂时忽略、哪些告警必须立刻起床。我把它们一条一条写下来,配上架构图和时序图,放进公司知识库,设置了技术中心全员可读。

老钱看到知识库更新提示的时候,给我打了个电话。

“你这是……在交接?”

“在让系统变得可以被交接。”

“周沉,上面还没批你走。”

“我知道。但这些东西,我写不写,是我的事。上面批不批,是他们的事。”

他沉默了一会儿。“你写吧。”

与此同时,我把团队里三个人叫到会议室,关上门。

“从今天起,库存服务的核心逻辑,周启明跟着我走一遍。订单路由,许薇接。对账收口,罗阳来。我不在的时候,你们三个各自能顶自己那一块,但合在一起能不能顶住整套链路,要看你们自己。”

周启明是组里最年轻的,跟了我四年,脑子快,但没经历过大的故障现场。许薇心细,对账逻辑她最熟,但一到压力大的时候容易慌。罗阳技术扎实,但不太爱说话,跨部门沟通是他的短板。

“周哥,”周启明开口,“你是不是要走了?”

“我在做我该做的事。你们也一样。”

许薇看了我一眼,没有问。

那天之后,我每天抽两个小时,带着他们走链路。不讲大道理,就讲具体的东西:这笔订单进来之后,经过哪几个服务,每个服务在什么情况下会返回异常,异常之后谁会重试,重试几次之后会降级,降级之后对账怎么兜。我把过去十二年里踩过的坑一个一个翻出来,告诉他们当时是怎么发现的,怎么修的,修完之后又留下了什么后遗症。

周启明有一次听完之后说了一句:“周哥,这些东西你以前怎么不写下来?”

“以前我提过,上面说先保交付。后来我自己也习惯了,觉得反正我在,出了问题我兜着。”

“那你现在为什么写了?”

“因为我发现,‘反正我在’这四个字,对你、对我、对系统,都不是什么好话。”

第五章 红头文件

四月的第一个周一,我收到了一份正式的红头文件。

《关于周沉同志岗位及薪酬调整的通知》。没有“协商”,没有“沟通”,直接就是“经公司研究决定”。薪酬那一栏写得很清楚:年度总包调整为一百二十万元整,自本月起执行。

附件里还有一份《岗位职责补充说明》,新增了一条:负责天穹系统核心架构的稳定性保障,在系统完成去个人化改造并通过验收前,不得单方面解除劳动关系。

我把那份红头文件读了三遍。第一遍看薪酬数字,第二遍看“不得单方面解除”,第三遍看落款日期。

然后我给苏敏发了一条微信:文件下来了,正式降,还加了一条锁人的条款。

她回得很快:你打算怎么办。

我打了四个字:依法办。

那天下午,我去了园区外面的一家律师事务所。接待我的律师姓秦,四十出头,专做劳动争议,听完我的情况之后,问了三个问题。

第一,降薪有没有经过你书面同意。没有。

第二,薪酬调整的依据是什么。公司说“经营需要”和“绩效弹性”,但没有提供任何绩效考核结果或经营困难的财务证据。

第三,你手上有哪些材料。劳动合同、历年工资流水、那封薪酬调整邮件、红头文件、以及OA里辞职申请的提交记录。

秦律师把材料翻了一遍,合上文件夹。

“两条路。第一条,接受降薪,继续干,但保留将来主张差额的权利。第二条,以公司未足额支付劳动报酬为由,发被迫解除劳动合同通知书,主张经济补偿金。你的工龄十二年,补偿金按离职前十二个月平均工资算,十二个月。”

“降薪之后,平均工资会拉低补偿金的基数。”

“对。所以时间点很重要。降薪执行之前或刚执行的时候发函,基数还能保住原来的水平。拖得越久,基数越难看。”

“如果我发函,公司说系统在我手里,不让我走呢?”

秦律师笑了一下。“劳动法没有‘锁人’这一条。你提前三十天书面通知,到期劳动关系就解除。公司不批,不影响效力。他们能做的只有两件事:要么跟你协商,要么在竞业限制和保密义务上做文章。你签过竞业限制协议吗?”

“签过。入职的时候一起签的,补偿金标准是离职前十二个月平均工资的百分之三十。”

“那就按协议走。你履行竞业义务,他们按月付补偿。不付,你可以主张协议失效。”

从律所出来,我站在路边抽了一根烟。苏州四月的风已经暖了,路边的香樟在落老叶子,新叶子还没完全长出来。我拿出手机,给老钱发了一条消息:明天上午有空吗,想跟你聊一下交接的节奏。

他回了一个字:有。

第六章 系统在说话

我发出被迫解除劳动合同通知书的那天,是四月十七号。

通知书通过EMS寄到公司,同时发了邮件。措辞是秦律师帮我改过的,每一句都有法律依据,没有一个多余的字。核心意思只有一条:因公司未经协商单方面降低劳动报酬,依据《劳动合同法》第三十八条,本人自即日起解除劳动合同。

老钱收到邮件之后,从办公室出来,站在我的工位旁边。

“你真的发了。”

“发了。”

“上面很生气。”

“我知道。”

“总裁办刚才打电话到技术中心,问你的门禁卡权限什么时候收。”

“按流程,我交完交接清单就可以收。清单我已经准备好了,三十天的交接期,每天做什么写得清清楚楚。他们可以派人接,也可以不派人接。不派人,三十天之后系统自己跑,跑成什么样,不是我单方面能决定的。”

老钱看着我,嘴唇动了动,最后说了一句:“周沉,你在这十二年,我跟你配合得不算差。”

“不算差。所以交接清单我写得很细,你让周启明他们三个跟着走,三十天够用。”

他点了点头,转身走了。走了几步又回来。

“总裁办说,让你今天下午去一趟。”

“不去。”

“他说你不去,他就下来找你。”

“那让他下来。”

下午两点,总裁没有下来。来的是他的行政助理,拿着一份打印好的《离职交接确认表》,让我当场签字。

我看了一遍,表格很标准,工作交接、资产归还、权限注销,三栏。唯一不标准的是最后一行备注:本人确认已完成全部核心系统知识的完整交接,公司系统在无本人参与的情况下可正常运转。

我把表格推回去。

“这一行不签。”

“为什么?”

“因为这不是事实。三十天交接期刚开始,系统还没有经过完整的无我运行验证。你现在让我签‘已完整交接’,我签了就是撒谎。”

行政助理站在那里,脸上的表情介于为难和不耐烦之间。她拿出手机发了一条消息,过了几分钟,手机响了。她听了几秒钟,嗯了两声,挂掉。

“总裁说,那行可以不签。其他行你签。”

我把表格上该签的字签了,把笔还给她。

“还有一件事,”我说,“我的门禁卡和系统权限,在交接期内需要保留。如果公司提前注销,导致交接无法完成,责任不在我。”

她点了点头,拿着表格走了。

第七章 三十天

三十天交接期,我做了三件事。

第一件,把周启明、许薇、罗阳三个人拉到生产环境的变更窗口里,让他们轮流操作,我在旁边看着。库存预占的并发缺陷,我带着周启明在测试环境复现了七次,修完之后跑了三轮压测。他一开始手抖,后来不抖了。

“周哥,这个修复方案如果上线,万一出问题怎么办?”

“出问题,第一个电话打给你。你照着故障排查手册第三页到第五页的流程走,走完之后如果还没恢复,再打给我。”

“手册是你写的。”

“手册是我写的,但故障是系统出的。系统不认识我,它只认识逻辑。你把逻辑吃透了,你就不需要我。”

第二件,把过去十二年里没有落成文字的所有关键决策,补成了一份《天穹核心架构决策备忘录》,一共四十七页,十七个章节,每个章节结尾都有一段“为什么不选另一条路”。这份备忘录我没有只交给管理层,我把它放在了知识库上,技术中心全员可读。

老钱看到之后给我打了个电话:“你把这些东西全放出来,不怕将来被别人拿去用?”

“系统是公司的,知识是团队的。我留一份备份在自己脑子里就够了。”

他沉默了一会儿,说了一句我没有预料到的话:“周沉,如果将来我出来自己做,你愿不愿意来?”

“到时候再说。”

第三件,我约了周启明单独吃了一顿饭。就在园区外面的小馆子,点了三个菜,两碗饭。

“周哥,你是不是觉得我接不住?”

“你接得住日常的。接不住的是那种从来没见过的问题。”

“那怎么办?”

“记住三件事。第一,遇到没见过的告警,先看最近三天有没有人动过配置,百分之七十的怪问题都是人改出来的。第二,不要相信‘上次就是这么修的’,每次故障的根因都不一样。第三,如果所有人都慌,你不能慌。你慌了,系统不会听你的。”

他低头扒了两口饭,然后抬起头。

“周哥,你走了之后,如果上面让我签那种‘已完整交接’的表,我签不签?”

“你觉得呢?”

“我觉得不该签。”

“那就不签。你签了,将来出了事,那张表就是你的责任。你不签,责任在流程,不在你。”

他点了点头。我知道他听进去了。

第八章 门禁卡

第三十天,五月十七号,早上九点,我的门禁卡失效了。

我站在闸机前面刷了三次,红灯。旁边的保安走过来看了一眼,说:“周工,人事那边把你的权限注销了,你等我打个电话。”

“不用打。我今天本来就不进去了。”

我退到闸机外面,给老钱发了一条消息:卡注销了,桌面上的东西麻烦让周启明帮我收一下,一个纸箱就够,里面有两本书和一副耳机,其他都是公司的。

老钱回:知道了。

然后我给周启明发了一条:手册在知识库第三层,故障排查流程在附录B。有事打电话,没事不发消息也行。

他回了一个字:好。

我在园区门口站了一会儿。香樟树的新叶子已经长齐了,绿得发亮。十二年前我来面试的那天也是五月,穿了一件不合身的衬衫,在门口登记的时候手有点抖。那时候系统还只是几张架构图,跑在一台二手服务器上。现在系统跑在三个机房里,上面是几百个人的业务,几十家客户的数据。

我没有回头。走到地铁站的路上,手机震了一下。是一条短信,来自一个陌生号码。

“周沉,我是方永年。方便的时候给我回个电话。”

方永年。资方派驻的董事,天穹项目的推动者,降薪方案的力主者。

我把手机放回口袋,继续往地铁站走。走到站厅层的时候,又震了一下。这次是老钱。

“系统出了点小问题。订单路由的灰度配置被人改了一个参数,百分之十的流量走到了旧逻辑上。周启明在查,暂时没找到是谁改的。”

我站在地铁闸机前面,看着这条消息。

三十天。门禁卡注销之后的第一天。系统开始说话。

第九章 第一通电话

我没有回方永年的电话。当天下午也没有回。

晚上八点多,周启明的电话来了。

“周哥,灰度配置的变更日志查到了。是赵明辉改的,上周五晚上十一点多,没有走变更审批,直接在生产配置中心改的。他说是‘优化’,但把路由规则的优先级调反了,导致百分之十的流量在并发的时候会落到旧逻辑上,旧逻辑的库存扣减和新逻辑不兼容,会多扣。”

“影响面?”

“测试环境复现了。生产上暂时没爆大问题,因为那百分之十的流量里大部分是低峰期的查询请求,真正下单的不多。但如果明天早高峰之前不修,峰值一来,多扣的库存会把可用库存打穿。”

“赵明辉人呢?”

“下班走了。老钱给他打电话,他没接。”

“配置能回滚吗?”

“能。但回滚之后,旧逻辑上已经多扣的那部分库存,需要对账修正。对账脚本我没有权限跑,罗阳有,但他今天请假了,他老婆生孩子。”

我在电话这头闭了一下眼睛。

“周启明,你听我说。第一,让许薇把受影响时间段的订单流水导出来,按库存扣减类型分类,找出所有走旧逻辑的扣减记录。第二,你给老钱打电话,让他用技术中心负责人的权限,把配置中心的生产变更权限临时收回到你手里,只开回滚和查询,不开新变更。第三,对账脚本在知识库附录C,罗阳的备份权限在运维主管那里,让老钱去协调。第四——”

我停了一下。

“修完之后,把变更记录、影响范围、处理过程写一份故障报告,抄送技术中心全员和总裁办。不要等别人来问,你先发。”

“周哥,你不回来看看?”

“我的门禁卡已经注销了。你按流程走,走不通再打给我。”

挂了电话之后,我在沙发上坐了很久。苏敏从卧室出来,看了我一眼,什么都没问,倒了一杯水放在茶几上。

十一点多,周启明发来一条消息:配置回滚了。对账跑完,多扣的库存全部修正。故障报告已发。老钱在群里说,明天开复盘会。

我回了一个字:好。

然后方永年的短信又来了。这次措辞比上次短。

“周沉,明天上午十点,园区三号会议室。聊聊。”

我盯着那条短信看了十几秒,打了四个字:聊什么。

他回得很快:聊你回来需要什么条件。

我把手机放到床头柜上,关了灯。黑暗里苏敏的声音很轻:“他们撑不住了?”

“第一天而已。离撑不住还远。”

“那你去不去?”

“去。但我不回去。”

第十章 条件

第二天上午十点,三号会议室。

方永年坐在长桌一头,旁边是总裁办的一个副主任,做记录。老钱坐在侧面,面前摆着一台笔记本电脑。没有总裁。据方永年说,总裁在见投资方,“授权我来谈”。

“周沉,昨天的故障,启明处理得不错。”方永年开口,语气比股东会上客气了不少,“你教出来的人,能顶事。”

“启明本来就顶得了日常。他缺的是处理没见过的问题的经验,那个只能靠时间。”

“所以我们想请你回来。条件你开。”

“我不回来。”

方永年脸上的客气收了一瞬。

“你先听我说完。技术副总的岗,团队独立预算,天穹的核心架构你说了算,薪资恢复到降薪前的水平,另外加百分之二十的绩效弹性。竞业限制的事,公司可以放。”

“方总,我问你一个问题。”

“你说。”

“如果我今天坐在这里,说好,我回来。下个月,另一个资方派来的董事觉得我的工资还是太高,再发一份红头文件降我二十万,你拦得住吗?”

方永年的表情没有变,但他没有立刻回答。

“你拦不住。”我说,“因为降薪的方案是你推的,表决的时候你举了手。你今天坐在这里跟我谈条件,不是因为你觉得我值这个价,是因为系统昨天差点出事,而你们暂时找不到第二个能在出事的当晚把问题摁住的人。等你们找到了,或者等启明他们把剩下的东西都吃透了,我今天的条件,就是你下一次砍我的起点。”

老钱在侧面轻轻咳了一声。

方永年把面前的文件夹合上,手指按在上面。

“那你想要什么。”

“我不回来。但我可以以外部顾问的身份,帮你们把天穹的架构稳定性做完。合同按项目签,范围写清楚,我只对技术交付负责,不对你们的人事决策负责。费用按市场价,预付百分之五十。同时,我的竞业限制协议继续有效,公司按月支付补偿金。如果哪个月不付,协议自动失效,我随时可以入职任何一家公司。”

方永年看了我一会儿,然后笑了一下。那个笑很短,嘴角动了一下就收回去了。

“你这是在跟公司做生意。”

“我过去十二年是在跟公司讲感情。讲感情的结果是降薪通知和‘不得单方面解除’。方总,你教会我的。”

他没有接这句话。旁边的副主任一直在打字,键盘声很轻。

“合同的事,我需要跟董事会汇报。”方永年站起来,“但你刚才说的范围,我可以先口头答应。天穹的稳定性如果在这个季度再出一次昨天那种级别的问题,投资方那边,我兜不住。”

“那是你的问题。我的合同里会写清楚,我只对合同范围内的事负责。”

走出会议室的时候,老钱跟上来,和我并排走了一段。

“你真不回来?”

“真不回来。”

“那启明他们怎么办?”

“他们该自己走路了。我扶了三十天,再扶下去,他们永远学不会。”

老钱叹了口气。“方永年这个人,记仇。”

“我知道。所以合同要写得细,每一笔交付都留证据。他记仇是他的事,我留证据是我的事。”

第十一章 启明

顾问合同是五月三十一号签的。项目范围写了两页纸,核心只有一条:在三个月内完成天穹系统核心链路的稳定性加固,并确保技术中心至少三名工程师具备独立处理P1级故障的能力。费用分三期支付,第一期到账之后我才开始工作。

我没有工位,没有门禁卡,没有OA账号。每次去公司都是老钱或者周启明下来接。我坐在三号会议室里,对着自己的笔记本电脑干活,需要看生产数据的时候,周启明把屏幕投上来。

第一个月,我带着周启明做了一轮全链路故障演练。不是测试环境,是生产环境,选在凌晨低峰窗口,逐个模块注入延迟和异常,看系统的反应和人的反应。

第一轮演练,周启明在第三个故障点卡住了。告警面板上同时跳出七条红色,他盯着屏幕,手放在键盘上,没有动。

“先看哪条?”我问他。

“订单创建失败率在涨。”

“对。然后呢?”

“看库存服务。”

“库存服务的哪个指标?”

他停了两秒。“预占超时。”

“对。那预占超时的根因在哪?”

他又停了两秒。我没有催他。会议室里只有告警提示音在响。

“在数据库连接池。”他说,声音比刚才稳了一点,“订单创建失败是因为库存预占拿不到连接,连接池被慢查询占满了。慢查询来自对账任务的并发扫描,对账任务今天被调整过执行时间,和高峰期重叠了。”

“修。”

他动手改了连接池的临时上限,把对账任务的执行窗口推到演练结束之后。四分钟,告警面板上的红色一条一条变回绿色。

演练结束之后,周启明靠在椅背上,出了一口气。

“周哥,我刚才差点想给你打电话。”

“你打了我就挂。”

“我知道。所以没打。”

我合上电脑。“下一轮演练在下周三。故障点会换,数量会多一倍。你提前把许薇和罗阳拉上,三个人一起看。我一个人看七条告警也会慌,三个人分,每人盯两条,剩下的那条谁先空出来谁接。”

他点了点头。走的时候在门口停了一下。

“周哥,赵明辉被调走了。调去管测试环境了,没有生产权限。”

“谁调的?”

“方永年亲自签的字。说是‘岗位调整’。”

“你怎么看?”

“我觉得他不是因为改配置被调走的。是因为改配置之前没有跟任何人说。方永年怕的是这个。”

我看着他,忽然觉得这三十天的文档没有白写。

“启明,你能说出这句话,下一轮演练你可以自己带。”

第十二章 第二通电话

六月中旬的一个晚上,十一点多,手机响了。

来电显示是周启明。

“周哥,生产环境订单路由的灰度配置又被人动了。和上次一样的手法,没有走审批,直接改的生产配置。但这次改的不是优先级,是把一个降级开关的默认值从‘关’改成了‘开’。百分之百的流量在库存服务响应慢的时候会直接走降级逻辑,降级逻辑的库存扣减是异步的,会出现超卖。”

“什么时候改的?”

“今天下午四点。改的人用的是赵明辉的旧账号。赵明辉说他不知道,账号密码他调岗的时候交给测试组了,测试组说没动过。”

“影响呢?”

“晚高峰的时候库存服务确实慢了一下,降级开关触发,超卖了大概两百多单。许薇在对账的时候发现的,已经在走人工修正流程了。但如果不把开关关掉,明天早高峰还会再来一次。”

“关掉。”

“关了。但周哥,问题不是开关。问题是有人用了一个已经调岗的人的旧账号,在生产环境改了一个关键配置。变更日志显示的操作人还是赵明辉,但赵明辉说他没干。查不到是谁。”

我握着手机,在黑暗里坐了一会儿。

“启明,你听我说。明天第一件事,把所有调岗人员的旧账号权限全部冻结,包括赵明辉的。第二,给方永年和老钱各发一封邮件,把这两次配置篡改的事件写清楚:第一次是赵明辉本人操作,第二次是一个已经调岗的人的账号被不明人员使用。第三,建议公司在配置中心加一道强制审批,任何生产变更必须两个人同时授权,一个人改,一个人批。第四——”

我顿了一下。

“第四,邮件里不要写‘建议’,写‘要求’。你是技术中心现在唯一一个能在故障发生之前发现问题的人,你的要求,他们有义务回应。”

电话那头安静了几秒。

“周哥,你是不是知道是谁?”

“我不知道。但我知道,第一次改配置的人被调走了,第二次改配置用的是他的账号。要么是有人想栽给他,要么是有人觉得他的账号还能用。不管是哪种,都说明配置权限的管理是烂的。烂在流程上,不在人上。”

“那方永年那边——”

“他会找你。你照邮件里写的说,不要多说,也不要少说。他如果问你‘你觉得是谁’,你说‘不知道,但流程漏洞是谁都能钻的’。”

周启明深吸了一口气。“好。”

挂了电话之后,我打开电脑,给秦律师发了一封邮件,把两次配置篡改的情况简单写了,问他:作为外部顾问,如果公司因为我提出的流程改进建议没有被采纳而导致后续损失,我有没有责任。

秦律师第二天早上回了一句话:你的合同范围是稳定性加固,流程管理不在你的交付范围之内。你书面建议了,公司不采纳,责任在公司。保留好你的邮件。

我把那封回信存档了。

第十三章 不回去

方永年果然找了周启明。第二天下午,周启明给我打了个电话,语气比前一晚稳。

“方永年看了邮件,把我叫过去了。他问我是不是你让我写的。”

“你怎么说?”

“我说是我自己写的。周哥教我看告警,没教我写邮件。邮件里每个字都是我自己敲的。”

“他什么反应?”

“他看了我一会儿,然后说‘以后生产变更加双重授权,你牵头做方案,下周给我’。还有,他说冻结旧账号的事已经在办了。”

“老钱呢?”

“老钱在群里转发了我的邮件,加了一句‘同意,即日起执行’。方永年没有反驳。”

我坐在自家书房的椅子上,看着窗外。六月的苏州已经热了,楼下的香樟树叶子绿得发黑。

“启明,你顶住了。”

“顶住了。但周哥,我跟你说实话,方永年看我的眼神,跟以前不一样了。以前他看我就是一个工程师,现在他看我的时候,像是在看一个需要防着的人。”

“那你怕吗?”

他想了想。“怕。但怕也得做。你说的,系统不认识人,只认识逻辑。我按逻辑做事,他防我是他的事。”

我笑了一下。这三十天,值得。

顾问合同第一期的交付在七月中旬验收通过。我提交了一份《天穹核心链路稳定性评估报告》,结论写得很直接:链路整体可用性已经从“依赖个人经验”提升到“依赖流程和监控”,三名工程师中,周启明具备独立处理P1级故障的能力,许薇和罗阳在各自模块内具备同等能力,但跨模块联动故障的处理经验仍需积累。

方永年在验收单上签了字。第二期款项到账的那天,他给我打了一个电话。

“周沉,第二期合同,我想改一下范围。”

“你说。”

“不是天穹了。是另一个项目,刚启动的,支付清结算系统。比天穹更大,投资方盯得更紧。我想让你做架构评审,从一开始就把关。”

“方总,我现在的合同是外部顾问。新项目意味着新的范围、新的报价、新的周期。”

“你报。”

我报了一个数。他沉默了几秒钟。

“比市场价高。”

“我报的是我值这个价的原因。你可以去找别人,但清结算系统如果像天穹一样做到一半才发现底层架构要动,代价你自己算。”

他嗯了一声,说“我考虑一下”,挂了。

三天之后,新合同发到了我的邮箱。

第十四章 香樟

八月底,苏州最热的时候过去了。

我在园区外面租了一间小办公室,一个人,一张桌子,两台显示器。墙上贴着一张天穹的架构图,周启明有一次来送材料的时候看见了,说“周哥你这张图比公司会议室挂的那张还全”。

“因为公司那张是我三年前画的,这张是我走之前更新的。”

他站在那张图前面看了一会儿,忽然说:“周哥,方永年上周找我谈话了,说想让我接技术中心副总的岗。”

“你怎么说?”

“我说我资历不够,再干两年。”

“真话?”

“半真。另一半是,我不想变成第二个老钱。”

我没有接这句话。老钱没有做错什么,他只是夹在中间,上面推不动,下面护不住,最后把自己磨成了一个传话的人。

“启明,你接不接那个岗,是你自己的事。但有一件事你记住:不管你坐到哪个位置,系统出问题的时候,第一个电话打给谁,那个人才是真正扛着系统的人。你让第一个电话永远打给工程师,你就是一个好副总。你让第一个电话永远打给你自己,你就是第二个我。”

他走的时候,在门口站了一下。

“周哥,公司现在比你在的时候稳。你知道吧。”

“知道。”

“那你后悔走吗?”

我看着窗外。楼下那排香樟树,就是我以前每天中午散步经过的那一排。从同一个角度看它们,和我站在公司走廊里看,没什么区别。叶子还是那个叶子,风还是那个风。

“不后悔。我在的时候,系统稳是因为我在。现在系统稳,是因为你们在。这两件事看起来一样,其实差很远。”

他走了之后,我坐在办公室里,把新合同又翻了一遍。支付清结算系统的架构评审,周期六个月,费用比天穹高出一截。合同最后一页有一条备注,是方永年让法务加上去的:乙方在合同期内不得为甲方的直接竞争对手提供同类服务。

我看了那条备注,笑了一下。他还是不放心。但没关系,我签了。不是因为忠诚,是因为这条款公平:他付钱,我守约。哪一天他不付了,我就不守了。

签完字,我把合同扫描件发给秦律师存档,然后关掉电脑,下楼。

走到园区门口的时候,手机震了一下。是周启明发来的消息:周哥,方永年今天在管理层会上说,技术中心以后所有P1故障的处理报告,必须抄送给你一份。他说是你合同里写的。

我回:合同里写的是“重大故障复盘报告抄送乙方”,不是“必须”。他愿意抄就抄,不愿意我也不追。

周启明回了一个笑脸。

我走出园区大门,香樟树的影子落在人行道上,被傍晚的光拉得很长。十二年前我从这扇门进去的时候,手里攥着一份劳动合同,心里想的是“好好干”。十二年后我从这扇门出来,手里没有合同,心里想的是——

系统留下,人也留下。但留下的那个“人”,得是自己愿意留下的。

全文完,感谢阅读。

最后说一句:

周沉没有回去。但他签了新合同,坐在同一片园区的隔壁楼里,看着同一排香樟树。有人说他赢了,有人说他只是换了一种方式被绑住。他自己觉得,十二年换来的东西,不是一份合同上的数字,也不是一张门禁卡。是有一天他不在场的时候,系统出了问题,第一个电话打给了别人,而别人接住了。

至于方永年下一次会不会再动降薪的念头,周启明会不会变成第二个老钱,赵明辉的旧账号到底是谁在用——这些事没有答案,因为职场里的答案,从来不在某一方的胜利里,在下一次选择里。

你呢。如果你手里的那扇门,也被人说“可以走,东西留下”,你会留下什么,带走什么。