跳转至

第十二章 · 背C

八月二十八日,星期五,下午四点零二分。纪衡的邮件标题是六个字:绩效沟通时间确认。

正文一行:陈稳,下周一上午十点,三楼小会议室,半小时。落款:纪衡。

半小时。陈稳查过日历,纪衡上半年跟他单独开过两次会,一次十分钟,一次七分钟。这一次是半小时。

他回了一个字:好。

记事本上,「问易文,今晚能不能打个电话」那行还在。汇报是今天上午的事,中间隔了六个小时,易文一个字都没有回。

他把那行删了,重新写了两行:

"纪衡说没有重点。怎么改。" "需要把数据之间的关系讲清楚。"

第二行是他自己替易文写的答案。他没有发出去。

配置变更检测的代码十五行,逻辑正确,没有 bug。他从上线那天起读了十九遍,每一遍都没有找出问题,因为它确实没有问题。

星期六他睡到九点。一碗粥,一个鸡蛋,喝完胃没有反应。手机上没有新消息。阳台外面是白天,对面楼所有的窗都是亮的,看不出哪一扇原来是黑的。

十点十一分,他给何晚发了一条消息:今天有空吗。

何晚没有回复。

厨房的水是凉的,胃缩了一下,他没停,一口气喝完。

他给配置变更检测加了一行注释,删掉,换了一句措辞不同的,又删掉,恢复原样。commit 没有产生。

下午三点,何晚回了:在改试卷。明天?

陈稳回了一个字:好。


星期日。何晚住浦西,老小区,六楼,没有电梯。他在门口站了大概二十秒才敲门。

何晚开门,白色短袖,头发扎起来,戴着眼镜,右手还捏着一支红笔。

"还有试卷没改完。"

客厅茶几上堆着一摞卷子,三十多份,每份上都有红笔的痕迹。何晚在沙发上继续改,红笔在纸上划,沙沙的。

"你们学校什么时候考试。"

"前天就考完了。"她没抬头,在一份卷子上划了一道,写了个分数,"但过完周末就要讲,改不完。"

一道选择题她只花一眼,填空题两秒,解答题十几秒。改完一份放到左手边。左边那一摞比右边高得快。

"你上次说,你们那个汇报,怎么样了。"

"讲完了。"

"然后呢。"

"他说没有重点。"

红笔在纸上停了一下,划下去的那道比前面几道长。

"你那个公司,最近怎么样。"

"还行。"

"还行是什么意思。"

"就是还行的意思。"

何晚放下红笔,把眼镜往上推了一下,又拿起笔。

"你上次说,你那个同事,老梁,他走了。"

"走了。"

"走了之后呢。"

"来了三个新人。"

"能干活吗。"

"还在学。"

这句话不完整。三个新人来的第二周,有一个叫小张的来问过他值班告警怎么看,陈稳说了一句"你看 alert 表第三百二十行的逻辑,自己跑一遍"。小张跑了两天,没跑通,后来去问了蒋辉。蒋辉给他画了一张图。

这件事陈稳知道。他没有告诉何晚,也不打算告诉纪衡。

红笔的声音停了。最后一份卷子放到左边那摞上,何晚摘下眼镜,揉眼睛。

"改完了。"

"嗯。"

"你吃饭了吗。"

"还没。"

"我做点面,你吃吗。"

"好。"

厨房里水响,水开,水沸,关火。两碗面端出来,一碗辣椒多一点,一碗辣椒少一点。陈稳那碗没有葱。何晚记得。

面有点硬。咸的,热的。

"好吃。"

"嗯。"

碗收进厨房,水龙头开了又关。何晚回到沙发上,拿起手机看了一会儿,放下。

"你周一要上班吧。"

"嗯。"

"那早点回去。"

"好。"

他在门口穿鞋。何晚站在旁边。

"你那个公司,要是太累了,就别干了。"

陈稳明天上午十点有一场半小时的会。这件事他没有说,因为说了她就会问是什么会,而他不知道该怎么把"绩效沟通"这四个字解释成一件不重要的事。

他系好鞋带,说了一声"走了",推门出去。门锁咔哒响了一声。楼梯间里只有他的脚步声,一层一层往下。


星期一,八月三十一日,上午九点五十五分。

三楼小会议室的空调开着,桌上两瓶水,一个笔记本,一支笔。窗外是隔壁那栋楼的灰墙,墙上一排空调外机,嗡嗡响。

九点五十九分,纪衡进来,手里一个蓝色文件夹,封面印着恒澜科技的 logo,四个字,蓝色,跟陈稳工牌上的颜色一样。

"陈稳。"

"嗯。"

"你来了恒澜多久了。"

"十一个月。"

"十一个月。"纪衡把文件夹翻开,手指压住其中一页,"你上半年的绩效,按照你当时的 OKR 和实际产出,综合评估,结果是 C。"

去年入职那天,HR 给他讲过评级分布:A 占百分之十,B 占百分之七十,C 占百分之二十。这两个数他到今天才想起来。

"C 的意思,你明白吗。"

"明白。"

"你今年的调薪和奖金,都没有了。半年内如果绩效没有提升,触发 PIP。"

"嗯。"

纪衡等了大概四秒。桌上那支笔没有动过。

"你需要知道,为什么是 C。"纪衡的手指移到下一行,"你上半年做了三件事。第一件,settle.guard 拦截器,这东西不错,但它不是你的 OKR,它是你临时加的。你做了,做得好,但这个不在你的绩效目标里。"

"第二件,规则引擎调度接入,你在做,但效果没有数据支撑,只说了一个调度成功率百分之百,但这个数字没有意义,因为调度量本来就小。"

调度量一天平均一百二十六笔。这个数陈稳记了三十四天。纪衡说得对,一百二十六笔的百分之百,证明不了任何东西。

"第三件,价值量化,你写了三版,方向对了,但最终版本还是不够——你讲的是技术指标,不是业务价值。"

"你上半年的 OKR 是三条:结算系统稳定性提升、事故响应时间缩短、新人培养。第一条你做了,但数据只有三十天,不够。第二条你做了,但你没有在汇报里讲清楚。第三条……你没有做,因为三个新人来了之后,他们直接去找蒋辉了,没有来找你。"

小张来问过。第三百二十行。跑了两天没跑通。

蒋辉的工位在他斜对角第三排,中间隔着一根承重柱。三个新人去问蒋辉的时候要绕过那根柱子,从他背后走过去。八月里这件事发生过十一次,他每次都听见了脚步声,没有回头。

这三句话陈稳可以说出来。说出来之后纪衡会问:"你为什么让一个刚来两周的人自己去看第三百二十行。"这个问题他答不上来,因为答案是"当年老梁就是这么教他的",而老梁已经离职了,用一个离职的人当理由,在这张桌子上不成立。

他把那三句话留在嘴里。

"我不是在说你做得不好。你做了很多,但你的产出,没有被人看到,也没有被记录到你的绩效目标里。"

纪衡停了一下。文件夹还开着,那一页上有一半是空白的。

"你有问题吗。"

他有。他想问的是:拦截器拦下来的四千二百一十七次,为什么算不进任何一栏。他把这句话在嘴里过了一遍,长度是十七个字。

四千二百一十七次里,有三百零六次是同一个商户的重复提交。那三百零六次如果没拦住,按平均单笔金额算,是十一万四千块。这个数他算过,写在记事本第二页,没有给任何人看过。

十七个字说出去,纪衡会给出一个答案,而那个答案他其实已经知道了——因为它不在 OKR 里。他不想听第二遍。

"没有。"

纪衡合上文件夹。

"下周一之前,把下半年的 OKR 重新写一下,发给我。"

"好。"

门关上的时候咔哒了一声,跟前天晚上何晚家的门是同一种声音。

空调的冷风吹在他手背上。桌上那瓶水一直没有动,瓶身上凝的水珠滑下来,在桌面上留了一道细水痕,从瓶底往外,四五厘米长。

他拧开水喝了一口,凉的,胃缩了一下。


记事本上多了两行:

"纪衡说绩效 C,没有调薪,没有奖金,半年内触发 PIP。" "下周一前交下半年的 OKR。"

配置变更检测的告警阈值原来是三十分钟。他改成二十分钟。

commit 8f3a1e2
Author: Chen Wen
Date:   2026-08-31 10:32

feat: 配置变更检测告警阈值从 30 分钟调整为 20 分钟

纪衡在绩效沟通中说产出不够。这个改动无关绩效。

推送成功。CI 绿灯,四十七秒。

茶水间的水是凉的,胃缩了一下,他没停,喝完,杯子放进水槽,没洗。对面那栋楼,三楼五楼七楼八楼九楼都亮着。他看了十一个月的那扇窗,还是黑的。

易文的消息发在十点四十一分,比他的 commit 早五十一分钟。

"怎么样。"

陈稳打了几个字,删掉,又打,又删掉,最后发了三个字。

"结果 C。"

易文没有回复。

记事本上又多了一行:

"纪衡说:'你的产出,没有被人看到,也没有被记录到你的绩效目标里。'"

引号里的字他抄了两遍,第一遍漏了"也没有被记录到"这半句,他删掉重抄。


下午他写下半年的 OKR。纪衡的模板是三个空框,每个框下面一行小字:关键结果需可量化。

目标一:结算系统稳定性提升。关键结果:拦截器全量运行持续六个月,零事故。基线:当前已运行三十天。目标持续到明年二月。

目标二:新人培养。关键结果:两个新人可以独立处理值班告警,一个新人可以独立完成结算对账模块的日常维护。基线:当前三人均不能独立处理。时间:十二月前。

目标三:结算系统对账模块重构。关键结果:完成对账模块的技术方案评审和核心链路重构,对账错误率下降百分之五十。基线:当前未测量。时间:明年三月前。

第二条他写了四遍。第一遍写的是"完成三名新人的技术带教",删掉,因为不可量化。第二遍写的是"新人独立值班比例达到百分之六十六",删掉,因为三个人的百分之六十六是两个人,写成百分比像是在遮什么。第三遍写成两个人,加了"独立处理值班告警"。第四遍加上了后半句。

他保存,没有发出去。今天是星期一,纪衡给的期限是下周一。

记事本最后一行:

"周三前把 OKR 发给纪衡。"


晚上七点四十分的地铁很挤。他抓着扶手,隧道是黑的,站台的灯扫进来,亮一下,暗一下,规律的。

到家没有开灯。冰箱里一盒牛奶,两个鸡蛋,一把青菜,一瓶老干妈。牛奶后天过期,他倒了一杯,凉的,胃没有反应。杯子洗了,放回架子上。

手机放在茶几上,屏幕朝上。他翻到通讯录,何晚的名字,点进去,对话框最后一条是昨天下午的"好"。他退出来,把手机放回茶几。

窗外的光从亮变暗,从暗变黑。对面楼的灯一格一格亮起来,像是有人在按开关。

十一个月,一千个夜晚不到,那一扇一直是黑的。

八点五十分他打开电脑。配置变更检测告警的时候,只告诉你"配置不一致",不告诉你不一致的是哪一版。他加了一行日志,把当前配置文件的哈希值打出来。

commit a1b2c3d
Author: Chen Wen
Date:   2026-08-31 20:14

feat: 配置变更检测告警时输出当前配置文件哈希值

方便排查时确认告警时的配置状态。

commit message 的第二行他写过一句"这样下次就知道是谁改的",删了。哈希值只能告诉你改成了什么,不能告诉你是谁改的。索引那件事到现在也只有一条 root@localhost,没有 Git 提交记录。

床上,天花板上那道裂缝还在,从角落斜到中间。物业说,不影响结构。


星期二,九月一日,上午八点四十分。连接池使用率百分之六十七,比昨天低了一个点。

九点二十三分,他把 OKR 发了出去。收件人:纪衡。主题:2026下半年OKR——陈稳。三条目标,一条一段,每段里有数字、时间、基线。

发送成功。距离纪衡给的期限还有六天。

配置变更检测现在是十六行。拦截器数据表今天多了一行,拦截次数没变,通过率百分之百。

结算对账模块的核心方法四百多行,他每一行都看过,每一行都知道在做什么。第一百八十七行到第二百四十行是逐笔比对的循环,T+1 跑一次,每次要跑四十分钟。

四十分钟是从凌晨两点跑到两点四十。这四十分钟里,前一天的账是不准的。如果商户在这个窗口里查账,看到的数字对不上。

三百多天里没有商户在这个时间查过账。这不代表以后不会。日终任务的失败概率是万分之三,他自己算过一遍,没有跟任何人说。

他在循环上面加了一行注释:

-- TODO: 对账模块重构,当前实现基于逐笔比对,时间窗口为 T+1。目标:T+0 实时对账。
commit b0a9c8d
Author: Chen Wen
Date:   2026-09-01 09:23

chore: 对账模块添加重构 TODO 注释

下一个版本计划做 T+0 实时对账,需要重构核心比对逻辑。

九点五十一分,纪衡回复了。两个字:收到。

记事本上多了两行:

"OKR 已发给纪衡,回复:收到。" "对账模块开始看,加了一个 TODO 注释。"

窗外那排空调外机还在嗡嗡响,声音从窗缝里挤进来,低沉,连续。他听了十一个月,不觉得吵。

十点零七分,日历弹出一个新邀请。

主题:营销结算对账系统解耦——跨部门项目会。时间:明天下午两点。发起人:纪衡。必选参加人两个:陈稳、蒋辉。

抄送名单里有一个他不认识的名字,营销技术部,周其正。


← 第十一章 第一次汇报 · 目录 · 第十三章 易文 →