第二十八章 · 十五分钟¶
十月二十九日,星期四,上午九点零三分。纪衡的邮件进来。
「下周一,十一月二日,上午十点,三楼会议室。双月会。你讲十五分钟。数据、成果、问题、计划,按这个顺序。」
陈稳把这行字看了两遍。十五分钟。上次双月会他讲了七分钟,纪衡说「没有重点」。上上次四分十二秒,纪衡说「讲得不错」。这次是十五分钟。
他打开记事本,翻到十月二十八日写的那一行:结算错误率从百分之十一点七降至百分之一点八七,降幅百分之八十四。
一个数字能讲三分钟。剩下的十二分钟,他需要说清楚一件事:他是怎么做到的,以及接下来要做什么。
他建了一个新文档,标题写:双月会汇报——结算系统对账模块重构。
写完他删了,改成何晚教他的那个:结算错误率下降百分之八十四。
然后他在下面列了四行:
一、成果。五分钟。 二、数据。五分钟。 三、问题。三分钟。 四、计划。两分钟。
加起来十五分钟。
¶
九点四十,他打开监控大盘,截了六张图。结算成功率趋势图——从七月到十月,四次抖动,一次比一次小。异常率趋势图——十月二十八日断崖式下降。对账服务响应时间分布图——P99 从一百二十毫秒降到四十毫秒。消息服务消费延迟图——最大延迟一点七秒,平均零点三秒。字段映射加载时间图——启动时零点三秒,之后平线。连接池使用率图——从百分之九十七降到百分之六十一。
六张图,每张图下面写一行结论。六行结论里出现五个「下降」和一个「稳定」。他删了三个「下降」,改成一个表格。三列:指标、上线前、上线后。
他想起易文说的:不约数字。
他又加了一列:变化幅度。
结算成功率:99.98% → 99.99%,变化幅度 +0.01%。 异常率:11.7% → 1.87%,变化幅度 -84%。 对账服务 P99 响应时间:120ms → 40ms,变化幅度 -67%。 消息服务最大消费延迟:未统计 → 1.7s,新增指标。 连接池使用率:97% → 61%,变化幅度 -37%。
他看了一遍,觉得这些数字已经不用解释了。数字自己会说话。
十点半,蒋辉端着杯子过来。
「你那个工单,查得怎么样了。」
「处理中。」
「赵岩那边怎么说。」
「他说八月一日那天有三个账号登录过,具体操作人需要等日志分析结果。」
蒋辉把杯子搁在桌沿。
「你打算在双月会上讲这个吗。」
「不讲。」
「纪衡会问吗。」
「不知道。」
「他如果问,你怎么说。」
「就说还在查。」
「那他不问,你就不说了?」
陈稳把键盘往前推了一点。
「不问就不说。时机不对。」
蒋辉看了他两秒。
「你变了。你以前不会想时机对不对。你以前只会想对不对。」
「对就是对,错就是错。但什么时候说,比说什么重要。」
蒋辉把这句重复了一遍。
「你从哪学的。」
「易文。」
「不是。」蒋辉说,「你学会了,但这不是易文教的。这是你自己想的。」
¶
星期五,陈稳在公司待了一整天。方案从头到尾改了四版。第一版结构太碎,从六张图展开讲了六件事,每件事讲两分半,十五分钟刚好。但六件事之间没有逻辑线。数据治理、对账重构、消息服务、字段映射、连接池优化、误报排查——并列的,没有主次。
第二版删了两件事,只讲数据治理、对账重构、误报排查。三件事,每件五分钟。逻辑线是:先有数据治理,再有对账重构,误报排查是过程中的一个插曲。读完之后他发现,误报排查占了五分钟,但这件事在纪衡看来已经结束了——顾源一句话就解决了,不需要讲五分钟。
第三版只讲一件事:结算错误率下降百分之八十四。从数据治理开始,到对账重构上线结束,中间所有技术细节只用一句话带过:「这个过程中遇到了一个问题,用了四天解决。解决方法来自架构组顾源的一句话。」
十五分钟,一件事,一个数字,一个故事。
他读了一遍,觉得可以。
第三版打印出来,对着墙讲了一遍。四分五十秒。太短。他加了两段:一段讲数据治理的底层逻辑——为什么字段对齐是必要的,不是因为技术原因,是因为三个表由三个人建的,没有统一规范。一段讲连接池调优的教训——从一百五调到两百再调回来,中间经历了什么。
第二遍,八分二十秒。第三遍,十一分四十秒。第四遍,他加了开头三十秒——一句话讲清楚为什么这个项目值得做:「结算系统在恒澜运行了六年,对账流程一直采用 T+1 模式。异常发现时间平均滞后二十四小时。现在这个数字是零。」
第五遍,十四分五十秒。他停了一下,又加了一句结尾:「以上是本次双月会汇报内容。谢谢。」
十四分五十八秒。
他坐在工位上,把这行字看了很久。没有通知任何人。关掉文档,收拾东西,回家。
¶
星期六。何晚在客厅改试卷,红笔划得很快。
「你下周汇报?」
「嗯。」
「准备好了?」
「准备好了。」
「你以前说准备好了,实际上还没准备好。你现在说准备好了,我是信还是不信。」
陈稳去厨房倒了杯水。
「你可以信。」
何晚把红笔放下。
「你昨天什么时候回来的。」
「七点。」
「你早上什么时候走的。」
「八点。」
「你加班了三天。」何晚说,「你以前加班是因为做不完。你现在加班是因为想做得更好。」
「有区别吗。」
「有。前者是被动的。后者是主动的。」
陈稳端着水杯,靠在厨房门框上。
「你以前会说我变了。你现在不说了。」
「因为我说了太多次了。」何晚把一张试卷翻过来,「再说就没意思了。你变没变,你自己知道。」
陈稳喝完水,把杯子放在水槽边。
何晚把红笔拿起来,在试卷上划了一道。
「你周一汇报的时候,紧张吗。」
「有一点。」
「你以前会说不紧张。你说不紧张的时候,其实很紧张。你现在说有一点紧张,那可能是真的有一点。」
「你什么时候学会看人的。」
「我是老师。」何晚没有抬头,「我看学生看了五年了。你比学生好懂。」
¶
星期天,陈稳没有出门。上午他把方案又读了五遍,每一遍都计时,稳定在十四分五十五秒到十五分零三秒之间。超出三秒的时候他剪掉了一句废话——「以上就是本次双月会汇报的全部内容」改成「汇报完毕」。省了三秒。
下午他打开记事本,翻到 10.14.1.88 那一页。工单状态:处理中。他刷新了一次,还是处理中。关掉记事本。
晚上他给何晚做了一顿饭。番茄炒蛋,青椒肉丝,一碗紫菜汤。
何晚吃了一口。
「咸了吗。」
「不咸。」
「上次你说咸了。」
「上次你放盐的时候在想明天的问题。今天你没想。」
陈稳夹了一口菜。确实不咸。
¶
十一月二日,星期一,上午九点五十。
三楼会议室。纪衡坐在靠窗的位置,面前是一台笔记本。技术 VP 坐在纪衡对面,灰色衬衫,桌上放了一杯水,没有喝。蒋辉坐在技术 VP 旁边,面前摊着一本笔记本,没有打开。资深工程师坐在门口的位置,旁边是一个陈稳不认识的年轻人——可能是新来的。
陈稳坐在蒋辉旁边。
「你第几个。」蒋辉问。
「第一个。」
「好。」
纪衡把笔记本合上,看了一眼时间。
「十点。开始吧。陈稳先讲,十五分钟。」
陈稳走到投影幕布前。他把 U 盘插进电脑,打开文档。第一页,标题:结算错误率下降百分之八十四。
他看了全场一眼。纪衡在看屏幕。技术 VP 在看屏幕。蒋辉在看屏幕。没有人看他。
他开口。
「结算系统在恒澜运行了六年。对账流程一直采用 T+1 模式——当天产生的结算数据,第二天才能与商户数据完成比对。异常发现时间平均滞后二十四小时。」
他停了一下。
「十月二十八日,对账模块全量上线。实时对账切换完成后,异常发现时间从二十四小时降至零。结算错误率从百分之十一点七降至百分之一点八七,降幅百分之八十四。」
第一页翻过去,第二页是表格。
三列:指标、上线前、上线后。
结算成功率:99.98% → 99.99%。 异常率:11.7% → 1.87%。 对账服务 P99 响应时间:120ms → 40ms。 连接池使用率:97% → 61%。
他按顺序讲完,每行二十秒。两分钟。
第三页:数据治理。他讲为什么三个表字段不一致,为什么需要做底层对齐,六十八行 SQL 做了什么。三分钟。
第四页:对账重构。他讲从 T+1 到 T+0 的切换逻辑,事件驱动加增量比对的实现方式。三分钟。
第五页:误报排查。他讲灰度上线后遇到的误报问题,从三百七十条到十二条到一条到零条的过程。他提到顾源的名字,只说了两句话:「架构组顾源指出了根因。字段映射是静态配置,不需要运行时缓存。」
第六页:连接池调优。他讲从一百五到两百再调回一百五的过程,以及为什么调回来是必要的。两分钟。
第七页:问题与计划。他列了三行:误报率需持续观察至十一月中旬;字段映射配置变更需重启生效,正在评估热加载方案;对账模块下一步计划接入营销技术部剩余两条业务线。
他翻到最后一页。
「汇报完毕。谢谢。」
他看了一眼时间。十四分五十七秒。
纪衡没有翻笔记本,也没有拿起笔。他靠在椅背上,看着陈稳。
「你讲完了?」
「讲完了。」
「你讲了十四分五十七秒。你上次七分钟,上上次四分十二秒。这次你讲了十五分钟,没有超时,没有卡顿,没有废话。」
纪衡把这句话说得很慢,像在确认一件事。
「我问你三个问题。」
陈稳把手从鼠标上拿开。
「第一个。你刚才讲数据治理,三个表,六十八行 SQL,字段对齐。你做了多久。」
「一个周末。加上后续清洗,大概两周。」
「你一个人。」
「一个人。」
「第二个。你讲误报排查,顾源说了一句话,你删了一百八十九行代码。你自己查了多久。」
「四天。」
「你查了四天。他看了一句话。你学到了什么。」
陈稳想了一下。
「不是学到了什么。是想到了什么。」
「想到了什么。」
「不改的东西,不叫缓存。叫常量。这句话不只用在代码上。」
纪衡的眼神停了一下。
「第三个问题。你查了两个月的事,查到了吗。」
会议室里安静了一秒。
陈稳知道纪衡在说什么。10.14.1.88。工单。张毅。黄山的照片。
「没有。」
「那你打算怎么办。」
「等工单结果。如果工单查不到,找运维部直接问。如果运维部也查不到,查其他数据库的登录日志,看同一个人是否在其他地方有过类似操作。」
纪衡看着他。
「你在做这件事的时候,有没有影响你上线。」
「没有。」
「有没有影响你的正常开发。」
「没有。」
「所以你用了下班时间。」
「是。」
纪衡把笔记本打开,翻了一页,又合上。
「可以。」
一个字。
陈稳把 U 盘拔下来,放进口袋,回座位。
蒋辉在他旁边,没有看他,但陈稳听到他轻轻吸了一口气,然后慢慢呼出来。
¶
十点四十五分,蒋辉开始讲。他的方案汇报了十二分钟,比预计少三分钟。纪衡没有问问题,技术 VP 问了一个数据源的问题,蒋辉答了。纪衡说「方案可以,按计划执行。」
陈稳坐在椅子上,听着蒋辉的声音,但脑子里在回放刚才的十五分钟。他记得自己说了什么,但不太记得自己是怎么说的。他记得纪衡说「可以」的时候,他听到自己的心跳,然后心跳慢慢落回正常。
十一点,纪衡合上笔记本。
「今天到这里。下半月计划周四前提交。陈稳的方案作为模板,发给组里所有人。」
陈稳愣了一下。
纪衡走出会议室。
技术 VP 走到门口,停了一下,回头看了陈稳一眼,没有说话,走了。
会议室里剩下几个人。资深工程师收好笔记本,看了陈稳一眼,点了一下头。
蒋辉坐在椅子上,没有动。
「模板。」
「嗯。」
「纪衡从来没有拿谁的东西当过模板。」
陈稳把 U 盘拔出来,放进口袋,出会议室。
¶
十一点二十,陈稳回到工位。他打开记事本,写了两行:
十一月二日。双月会。十五分钟,没有超时,没有卡顿,没有废话。
纪衡说「可以」。方案作为模板发给组里所有人。
写完他看了一遍,觉得这两行字看起来不像真的。但他没有删。
他打开 OA 系统,查了一下工单状态。DB-20261028-0047。处理中。
他刷新了两次,还是处理中。他关掉 OA,打开监控大盘。结算成功率百分之九十九点九九。异常率百分之一点八七。一切正常。
十一点四十,手机震了一下。易文的消息。
「听说了。」
陈稳看着这两个字。他想起自己从准备到汇报完,没有给易文发过一条消息。没有问方案,没有问结构,没有问「你看一下吗」。
「没有让你看。」他回复。
「我知道。」
「你怎么知道的。」
「纪衡在全量方案上线的邮件上抄送了我的老板。我老板转给我了。他说,你带的人现在可以自己出方案了。」
陈稳把手机放在桌上。屏幕亮着,又暗了。
「你学会了吗。」易文又发了一条。
「学会了。」
「学会什么了。」
「学会自己写方案了。」
「这不是我教你的。你本来就会写方案。你只是不习惯在写完之后发出去。」
陈稳把手机拿起来,又放下。
「你什么时候学会的。」易文问。
「你什么时候教我的,我就是什么时候学会的。」
「我没教你。你学会的那天,是你自己决定不找我的那天。」
陈稳把手机翻过来,屏幕朝下,放在桌上。
¶
下午两点,茶水间。他站在窗前,看着对面那栋楼。窗户密密麻麻,亮着灯。他想起十一个月前,他刚到恒澜的时候,每天下班都会站在这里看对面的窗。那时候他觉得对面那扇亮着的窗,是别人的生活。现在他还站在这里,但不再觉得那是别人的生活了。
他想起纪衡说的那句话:你学的东西,最后是你自己的,不是她的。
他想起易文说的那句话:你学会的那天,是你自己决定不找我的那天。
他想起何晚说的那句话:你变了,而且你知道。
他喝了一口水,把杯子放在水槽边,没有洗,走了。
¶
下午三点,他回到工位。OA 系统弹出一条消息。
工单 DB-20261028-0047:日志已导出,共 1,847 条记录,正在分析中。预计完成时间:十一月三日 18:00。
他看了一眼,关掉。
还有二十六个小时。
他打开 IDE,找到对账模块的代码,翻到字段映射加载那一行。四十二条规则,启动时加载,零点三秒。他加了一行注释:-- 字段映射为静态配置,上线后无变更。如需修改,重启服务生效。
提交。commit message:chore: 字段映射加载加注释说明——静态配置,重启生效。
提交完,把 IDE 最小化,打开监控大盘。结算成功率百分之九十九点九九。异常率百分之一点八七。一切正常。
他打开记事本,在十月二十八日写的那一行下面加了一行:
十一月二日。工单日志已导出,1,847 条,分析中。预计明天出结果。
他往后靠了一下,椅背嘎了一声,和以前一样。
¶
晚上七点,他到家。何晚在厨房,锅里在响。
「汇报完了?」
「完了。」
「怎么样。」
「纪衡说可以。」
何晚把火关小,转过身来。
「就这两个字?」
「方案作为模板,发给组里所有人。」
何晚把火关掉,把菜盛出来,端到桌上。
「你以前坐在那里,什么都不说。」她把筷子放在碗上,「后来你开始说了。现在你说完了,别人拿你的东西当模板。」
陈稳坐下,夹了一口菜。
「你变了。」何晚说,「但你已经知道了。」
陈稳把菜咽下去。
「我知道。」
「你什么时候知道的。」
「你上次说'你变了而且你知道'的时候,我还不确定。今天我知道了。」
「因为纪衡说可以?」
「不是。」
「那是什么。」
「因为我今天在会议室里,讲了十五分钟。我没有想过要找你。也没有想过要找易文。」
何晚端起碗,吃了一口。
「你以前需要一个人帮你。你现在不需要了。」
「可能还是需要的。只是不确定需要谁了。」
何晚把碗放在桌上,看着他。
「你这句话,是你自己想出来的。」
「是。」
「那你确实不需要了。」
¶
晚上九点,陈稳坐在沙发上,手机亮了。蒋辉的消息。
「你那个工单,明天出结果?」
「嗯。」
「如果查出来了,你打算怎么办。」
陈稳看着这条消息。
「还没想好。」
「如果查出来是那个人,你打算怎么做。」
「先确认是不是他。」
「然后呢。」
「然后再说。」
蒋辉的回复很快。
「你上次说,什么时候说比说什么重要。你记住这句话。」
陈稳把手机放下。
天花板上那道裂缝还在。物业说「不影响结构」。裂缝比他来的时候宽了一点,但物业还是说「不影响结构」。
他想起自己刚到恒澜的时候,躺在这张沙发上,看着这道裂缝,觉得自己和这道裂缝一样——不影响结构,所以没人管。
现在裂缝还在,但他不在了。
他不知道自己去了哪里,但知道自己不在原来的位置了。
他把手机拿起来,打开记事本,在最后一行写:
十一月二日。双月会。十五分钟。纪衡说可以。方案作为模板。
工单 1,847 条日志,分析中。
何晚说:你变了,而且你知道。
蒋辉说:你记住那句话——什么时候说,比说什么重要。
窗外的路灯亮着,光从窗帘缝隙里照进来,落在地板上,一道淡黄色的线。
天花板上的裂缝,还是在那里。
← 第二十七章 84% · 目录 · 第二十九章 B+ →