跳转至

第二十九章 · B+

十一月三日,下午五点四十一分。赵岩的邮件进来了。

附件两个:CSV 文件,1,847 行,六列;PDF 文件,DHCP 分配明细。工单 DB-20261028-0047 的结果出来了——谁删了那条索引,就在这 1,847 行里。

陈稳点开 CSV,按操作类型排序。DROP INDEX 只有三条记录,全部在八月一日凌晨,全部来自同一个 IP。

02:13:47 — root@localhost — 10.14.1.88 — settle_db — DROP INDEX idx_settle_reconciliation_01 02:14:02 — root@localhost — 10.14.1.88 — settle_db — DROP INDEX idx_settle_reconciliation_02 02:14:31 — root@localhost — 10.14.1.88 — settle_db — SELECT 1

三秒。删了两个索引。SELECT 1 是确认数据库还活着。他注意到一个细节:顺序是 idx_settle_reconciliation_01 在前,idx_settle_reconciliation_02 在后,跟张毅在 MR 里写的顺序一致。操作人知道自己在做什么——不需要查表结构,不需要确认索引名,直接输入了完整的 DROP 语句。他不只是知道这两个索引存在,他知道它们叫什么名字,按什么顺序创建。

他切到 PDF。DHCP 分配明细:

2026-08-01 01:47:23 — 10.14.1.88 — 分配 — MAC: 00:1A:2B:3C:4D:5E — 申请人: 张毅

张毅。但周其正说过,张毅八月一日在黄山。

陈稳把这两行标黄,打了周其正的电话。

「周哥,工单结果出来了。八月一日凌晨两点,10.14.1.88 删了两个索引。DHCP 申请人是张毅。但你说他八月一日在黄山。」

「他八月一日到七日年假,OA 有记录。审批通过,状态已结束。」

「那 DHCP 申请人为什么是他。」

「他的机器。MAC 地址是他的。但操作人不一定是他。他工位那台机器,谁都能用。」

「谁用了他的机器。」

「谁那天晚上在机房里。研发部有机房门禁,你让纪衡帮你批。」

「好。」

「陈稳。」

「嗯。」

「你查到这里,确定还要往下查吗。」

「查都查了。」

「查下去,可能查到的是你不想知道的人。」

陈稳没有接这句话。他挂掉电话,打开 GitLab,查了张毅的 MR 记录。七月二十八日下午四点十二分,张毅提交 settle_reconciliation 表建表 MR。reviewer 蒋辉回复:「字段可以。索引加一下。」张毅回复:「索引已加。联合索引 idx_settle_reconciliation_01 和 idx_settle_reconciliation_02。」

七月二十八日加索引,八月一日删索引。间隔四天。能接触到这组索引名的人,只有建表的人、reviewer、以及运维部有数据库权限的人。索引名是张毅自己取的,不是标准命名规范里的默认值。

他打开记事本,写了两行:

八月一日凌晨操作人:使用了张毅的机器,但不是张毅本人。操作人知道索引名,不是随机删除。 需查门禁记录。

六点十五分。纪衡的消息。

「明天上午十点,三楼小会议室。绩效沟通。」

三个月前,同一间会议室,纪衡说 C。没有调薪,没有奖金,半年内再有一次就进 PIP。他回了一个字:「好。」

六点四十。电梯里遇到易文。

「工单结果出来了?」

「查到机器,没查到人。」

「继续查?」

「嗯。」

「明天绩效沟通?」

「嗯。」

「B+。纪衡跟我说的。」

电梯门开。易文走出去,没有回头。陈稳站在电梯里,门合上,楼层数字从二楼跳到一楼。B+。老梁在恒澜十一年,最高绩效 B+ 一次。

十一月四日,上午九点五十五分。三楼小会议室。

纪衡坐在里面,面前一台笔记本电脑,一杯水。陈稳敲了一下门框,纪衡抬起头。

「坐。」

陈稳坐下。

「你的绩效结果:B+。产出超出预期,但没有达到显著超出。第三季度有进步,但进步速度不够快。」

纪衡把屏幕转过来。一张表,三条 OKR。第一条:结算系统稳定性提升——A,百分之百完成。第二条:新人培养——B,百分之六十完成。第三条:对账模块重构——A,百分之一百二十完成。加权平均,B+。

「你有什么想说的。」

「B+ 之后呢。」

「下半年还有一次机会。如果下一次是 B+ 或以上,年度绩效到 A。如果下一次是 B 或以下,年度绩效 B。」

「下一次什么时候。」

「一月。」

「你的项目继续推进。对账模块重构上线后,结算错误率下降百分之八十四,技术 VP 看到了,我也看到了。但一个项目做得好,不代表你这个季度做得好。绩效是整体评价,不是单项目评价。」

「我知道。」

「B+ 不是终点。你在爬坡,坡还在。别停。」

陈稳站起来,走到门口。

「那个工单,查得怎么样了。」

陈稳转过身。

「八月一日凌晨两点,索引被删,IP 10.14.1.88,机器是张毅的。但张毅八月一日在黄山,操作人不是他。需要门禁记录。」

纪衡拿起手机按了几下。

「让运维部调。今天下午给你。」

「好。」

十点三十一分。回到工位,手机亮了。蒋辉的消息。

「怎么样。」

「B+。」

「还行。」

「那个工单呢。」

「查到 IP,机器是张毅的。但张毅年假在黄山。」

「纪衡帮你调门禁了?」

「他问的。」

蒋辉的回复慢了几秒。

「他主动问的?」

「嗯。」

「你变了。」

「你昨天说过了。」

「昨天说过了,今天再说一遍。你变得连你自己都不知道。」

中午食堂。易文端着餐盘坐到对面。

「B+。你脸上写着。」

「老梁在恒澜十一年,最高绩效 B+ 一次。」

「老梁是你,你不是老梁。」

「他以前也是这么想的。」

易文放下筷子。

「你变了。你学会了翻译,学会了讲故事。但这些是工具。工具不会替你赢。」

「那什么能替我赢。」

「你自己。你以前觉得做好事就会被人看见。现在你知道了,做好事只是第一步。第二步,让别人看见。第三步,让别人看见之后,他们愿意给你什么。」

「你走到了哪一步。」

「第二步。我还在第二步。」

「你刚才说,你学会了展示,但没有学会选择展示什么。你查了两个月,查到了 IP,查到了机器,没有查到人。你一个人的能力有边界,你需要更多的人。」

「你在说,我应该让更多人参与进来。」

「你变了。你变得会问了。但你还不会求。」

「求什么。」

「求人帮忙。你以前不会求,是因为不需要。现在你有了需要的东西,就要学会开口。你今天让纪衡帮你调了门禁记录。你以前不会这么做。」

「他问的,不是我求的。」

「他问,是因为他看到了你。你让他看到了你。三个月前你站在台上手抖,现在你能让纪衡帮你批门禁。」易文把筷子搁在碗沿上,「你求过吗。」

「求过。」

「什么时候。」

「上个月,问你要不要打个电话。」

「那是问,不是求。求是你要一个东西,你要明确说出来你需要什么,你愿意拿什么换。」

「你求过吗。」

「求过。我 mentor 走之前,求她把数据源权限转给我。我说,这条线只有你能走通,你走了之后这块就断了,你能不能把权限留给我。她做了。那是她走之前给我留的唯一的东西。」

「然后呢。」

「然后我就开始教别人了。她走了之后,没有人会主动帮我了。要么开口,要么自己扛。」

陈稳没有说话。

「你才刚开始。你还有很长的路。」

下午两点十四分。纪衡的消息。

「门禁记录发你了。运维部赵岩的邮件。」

附件是 PDF。八月一日凌晨三次刷卡记录:

02:03:17 — 000471 — 张毅 02:32:41 — 000471 — 张毅 03:48:52 — 000471 — 张毅

张毅的工卡。但张毅本人在黄山。

陈稳翻到当天其他刷卡记录。八月一日,除了凌晨这三条,张毅的工卡没有任何刷卡记录。全天,整栋楼,只有机房的三次进出。三次进出的时间点:两点零三分进去,两点三十二分第二次刷卡——可能是中间出来了一次,又进去了。三点四十八分第三次,逗留到四点零二分。一个人在凌晨两点,用别人的工卡,进了三次机房,每次待半个小时左右。他做一件事,不需要待这么久。他待了这么久,说明他做了不止一件事。

他重新打开日志文件,搜索 root@localhost 在整个时间范围内的所有操作记录。八月一日:三次,全部在凌晨。八月十五日:两次,来自不同的 IP,不是 10.14.1.88。八月二十日:一次。九月一日之后:零次。

八月一日之后,root@localhost 再也没有在结算系统数据库上执行过任何操作。

删了索引,然后消失了。不是因为他知道被发现了——那时候还没有人发现。是他要做的事做完了。

八月一日删索引,九月十七日触发归档脚本。两个事件之间隔了四十七天。

他打开记事本,写:

八月一日删索引 + 九月十七日触发归档脚本 = 四十七天间隔。 不是随机事故,是计划好的。 删索引是准备,触发归档脚本是执行。 准备者和执行者可能不是同一个人。

他停下来,又加了一行:

如果八月一日的人是准备者,九月十七日的人是执行者。准备者知道自己在做什么,执行者不知道。

他关上记事本。下午的阳光从窗外照进来,落在工位之间的过道上,一道一道的,跟代码缩进一样整齐。

晚上七点。何晚在厨房里,锅里的水烧开了,正在往里面下面条。

「回来了。」

「绩效怎么样。」

「B+。」

「你上次是 C。」

「B+ 比 C 好。」

「在想一个问题。能说了,不等于能赢。」

何晚把面捞出来,端到桌上。两碗面,一把葱花香菜,一碟酱菜。她把多的那碗推到陈稳面前。

「你以前不会想这个问题。」

「你第一次说谢谢的时候,我就知道你变了。你以前不说谢谢。帮人开门递东西,拿个快递,你都不说。你那天说了,我就知道你开始在意别人怎么看了。」

「现在呢。」

「现在你开始在意自己怎么看自己了。」

「你变了。你知道你变了。你开始想自己变了什么,这本身就是变化。」

陈稳拿起筷子,夹了一筷子面,没有吃,放回碗里。

「明天上午十点,去运维部看一段录像。八月一日凌晨,谁进了机房。」

「你怕看到认识的人。」

「不是怕。」

「那是什么。」

「不知道。」

何晚没有追问。她把酱菜碟往陈稳那边推了一点。

「你上次背 C 那天晚上,回来什么都没说。你把门关上,坐在沙发上,坐了很久。我出来倒水,你坐在那里,没有开灯。坐了一个小时,然后去洗了个澡,出来说了一句,我提交了一个 commit。」

「这次你说了。你在说这件事之前,先说了 B+。你以前不会先说结果。」

「结果不重要吗。」

「结果重要。但你说结果的方式变了。你以前说的是结果,现在你说的是结果和你。你背 C 那天,你只说了 C。今天你说了 B+,还说了你查到了什么。」

陈稳把面吃了。何晚给他又盛了半碗汤,他接过来,喝完了。

晚上十一点。赵岩的消息。

「陈工,八月一日凌晨机房摄像头画面已调取,需要审批单号。」

陈稳转发给纪衡。两分钟后,纪衡回复:「审批单号:HR-20261104-0052。明天上午十点,运维部看录像。」

陈稳回复「好」,然后打开微信,找到顾源的对话框。上一次聊天记录是七月十六日,顾源发了那张跨天时间窗示意图的照片。他回了两个字:「收到。」

他打字:

「顾老师,有个问题想请教您。关于对账模块重构方案的消息服务设计,您在技术决策会上说的单体依赖问题,我重新设计了方案,想请您评审一下。」

发送。没有回复。

他关掉手机,站起来,走到窗边,拉开窗帘。

对面那栋楼,那扇窗,还是黑的。

他看了十三个月。那扇窗的灯只亮过一次,然后灭了,再也没有亮起来。

他拉上窗帘,回到沙发上,打开记事本,在最后一行写:

十一月四日。B+。 纪衡说:坡还在,别停。 门禁记录:张毅的工卡三次刷卡,人不一定是本人。 八月一日的人与九月十七日的人,可能不是同一个。 明天上午十点,看录像。 给顾源发了消息,没有回复。

他合上记事本,关了灯。

黑暗中,窗帘缝隙里透进来一道淡黄色的光,落在地板上,一动不动。

他坐在沙发上,没有动。光从地板中间慢慢往右边移,几分钟挪一点。他看了很久,看着那道光线从地板移到墙角,然后消失。

手机没有亮。顾源没有回复。

明天上午十点,他会看到一段录像。录像里有一个认识的人,或者一个不认识的人。不管哪一种,他都要面对一个事实:他查了两个多月,查到了 IP,查到了机器,查到了门禁,查到了摄像机画面。他离真相越来越近,但离真相越近,越不知道自己应该做什么。

不是因为他不知道该怎么做。是因为他知道,做完了之后,事情不会结束。

只会开始。


← 第二十八章 十五分钟 · 目录 · 第三十章 合并 →