第四十五章 · 恶心¶
万钧的消息九点十一分到的。标题:「Q1 资源评审会——明天十点。准备好你需要的资源,五分钟。不讨论。」
发送人列表五个人。四个组的负责人加陈稳。五个名字里,陈稳的工龄最短。最小的一行在最下面。
「你需要什么,今天晚上之前给我一个数字。不要方案。要具体的——几台机器,多大带宽,几个人,多长时间。」
陈稳打了十五分钟的字。删了。又打了一遍。删了。第三遍写了四行——
排查脚本接入独立失败码:不需要额外资源。 超时阈值调整:需架构评审一次,两人天,不需要额外资源。 历史汇率数据保留周期延长:需 DBA 协助一次,存储成本预估每月两百 GB。 合作方接口适配:需商务协调排期,预估两到三周。
保存。没有发。
他知道万钧要的不是这个。
他把光标移到「不需要额外资源」后面。删掉「不需要额外资源」。改成:「当前条件内可完成。结构工一人的支持。」
又删了。他把四个条目删掉,打开十二月失败数据的 CSV。
一百一十二天。四百二十三笔失败。按周分布排成一条时间线。第一周十六笔,第二周十五笔,第三周十七笔。前三个周的平均失败率在千分之三点八。第四周——十二月二十一日到二十八日——四十一笔。失败率跳到千分之四点七。
那根向右上方翘起的曲线找不到直观的解释。不是新增业务量推动的:十二月第四周的日均交易笔数与第三周持平——九千三百笔对九千一百笔。不是发布导致的:十二月第四周跨境结算系统没有上线任何变更。
他把第四周的失败按根因拆开。超时阈值相关的三十六笔。前三周每周超时相关失败十二到十五笔。第四周二十八笔超时,加八笔未知。
打开合作方结算系统的接口响应日志。十二月二十一日之前,合作方平均响应时间零点四秒。十二月二十一日之后,零点六秒。不是合作方改了系统的证据——是他们那边的链路也在老化。老化的速度不快,持续积累。从零点四秒到零点六秒,走了一个季度。
记事本上写了一行:「当前超时阈值配置固定。合作方响应速度劣化一分一厘,超时失败就多一寸。」
他盯着这行字看了一会儿。然后删掉。重新写了一句更短的:
「超时阈值问题的紧迫性——如果合作方响应速度继续劣化,超时失败将在季度末翻倍。不是可能,是四到六周内的必然。」
他知道这句话的每个字都是真的。但他也知道,四到六周内翻倍的第三条推论成立的前提是——合作方响应速度劣化幅度不变,没有其他因素介入。他在会议室里讲的是这个版本的缩短版:「如果不做,季度末预计翻倍」。去掉「如果」,去掉前提,保留结果。两个字的变化,换了整个句子的性质。
下午两点。他把四行字改成了一段话:
「跨境结算失败率优化需要三个资源。一、历史汇率数据保留周期从三天延长至三十天——存储成本可控,月增两百 GB。二、合作方接口适配——分两到三周完成,需商务和法务各配一人。三、超时阈值调整的架构评审——两周内完成。不做的成本:季度末超时失败预计翻倍,届时结算成功率将跌破百分之九十九点五,触发 SLA 违约条款。」
发送。万钧没有回。
三点四十。刘铮从他背后走过来。
「明天的会你准备怎么讲。」
「讲了。」
刘铮看了他一眼,没有接着问。
四点二十。他把排查脚本的输出又跑了一遍。十二月第四周三十六笔超时失败的合作方响应时间数据点全部标注在一条坐标轴上。横轴是日期,纵轴是响应时间。零点四秒到零点六秒之间,散布着三百七十个采样点。他在零点五五秒的位置画了一条虚线——那是触发超时的临界点。
三十六笔里面,十九笔的合作方响应时间超过了零点五五秒。十七笔没有。
不是在零点五五秒发生的事——是链路本身在劣化,有的环节比别的环节先扛不住。第三周也有一条曲线的尾巴在翘。翘到十二月十五号左右,合作方发了一个批量接口的异常响应,持续了大概两小时,然后恢复了。他把那个异常响应标记了出来:十二月十五日十五点十七分到十七点十一分。
如果明天万钧问「你说的趋势延续是什么」,他可以用这根虚线回答。
如果万钧不问,他就不会主动说。因为说出来,就会引出下一个问题:「你确定是趋势,不是一个两小时的偶发。」
他不能确定。
记事本上写了一句:「明天如果被问——三行。先说趋势,再说偶发,最后说建议。」写了又删了。他知道自己在做什么。他在准备每个可能的回答,好让明天的五分钟不出任何意外。
五点十分。桌面上多了一个文件夹。命名:「Q1资源申请——备份数据」。里面放了四张图:失败笔数按周分布、超时失败与合作方响应时间叠加图、第四周合作方异常响应时间线、汇率查询频率分布。他把文件夹关了。图一张也没有放进明天的文档里。
一月十一日。上午九点五十。五楼大会议室。
会议室里坐了七个人。万钧在长桌中间,左右两边各坐了两个陈稳不认识的人。刘铮坐在靠窗的位子,旁边空了一把椅子。万钧面前摆了一台笔记本、一个本子、一支黑色签字笔。没有水杯。
陈稳坐下来。刘铮把桌上的一页纸推过来——议程表。五个议题,每个五分钟。陈稳排在第三个。第一个是「数据平台 Q1 资源需求」——林栩。第二个是「合规组系统审计排期」。第三个是「跨境结算失败率优化」。第四个是「新业务线接入方案」。第五个是「基础设施预算调整」。
林栩在讲。陈稳在听——不是听内容,是在听结构。现状、问题、需求、预期。没有人讲技术细节。没有人讲「我觉得」。每一句话的主语是「系统」「数据」「流程」。不是「我」。
林栩的最后一句话:「以上。如果资源到位,三月前可以完成接入。」万钧在本子上记了一笔,写了一个数字。
合规组负责人用了更短的时间。三张纸——不是 PPT,是三张打印出来的表格。第一页合规检查项的覆盖情况,第二页未覆盖项的到期时间,第三页资源需求。最后一句话:「如果三月底前不做,年审过不了。」
万钧抬头看了他一眼。点了一下头。在本子上又记了一笔。
轮到陈稳的时候,他站起来。
「跨境结算当前成功率百分之九十九点六二。低于合同承诺的百分之九十九点九。差距的主要来源是四十七笔未知原因失败,其中二十三条已定位为超时阈值与链路耗时不一致——超时阈值配置固化,合作方响应速度在持续劣化。修复方法的排查脚本已提交。独立失败码枚举已定义。」
会议室里没有人打断他。
「需要三样东西。一、历史汇率数据保留周期从三天延长到三十天——每月两百 GB 存储,DBA 协助一次。二、合作方接口适配——商务和法务各一人,两周。三、超时阈值调整架构评审——两周内完成。如果不做,超时失败在本季度末预计翻倍。届时结算成功率将低于百分之九十九点五,触发 SLA 违约条款。」
万钧没有看他。在看本子。笔尖停在本子上。
「超时失败翻倍,数据呢。」
「第四周合作方响应时间劣化了零点二秒。如果趋势延续,一个季度翻倍的推算是保守的。」
「保守还是确定。」
陈稳停了一拍。会议室里的空调出风口在墙角,呼呼地吹着。他从记事本里把那根虚线调了出来——零点五五秒的分界线。
「不是确定。合作方十二月十五日出现过一个两小时的响应异常,拉高了第四周均值。但去掉那个异常之后的三周,响应时间仍然比前两个月高零点一秒。整体趋势线的走向是正的。」
他给自己留了余地。他给了数据的两面。
「那就是说,翻倍这个数字可能是高的。」
「也可能是低的。去掉那个异常之后的三周,周均超时失败笔数仍然在二十笔以上——三季度周均九笔。翻倍的估算用的是增量下限。」他把光标移到那条趋势线的末端。「如果按上线估算,季度末超时失败会到当前的两倍半。」
万钧把本子上那笔写完了。抬起头。
「你需要两个商务接口人还是一个人。」
「一个。法务需要参与条款变更。」
「刘铮。」万钧转头。「你确认时间线。」
「两周不够。合作方接口适配要过对方合规,至少三周。」
「那就三周。」万钧在本子上写了几行。「汇率数据的事,你直接找运维部赵岩。他知道怎么做。架构评审排期你自己定。下次汇报带一条新的线——汇率波动对失败率的影响,分开算。」
陈稳坐下来的时候,用了四分半。没有被打断。
下一个议题开始了。他没有听进去。
散了会。走廊上。刘铮走在他旁边。
「你讲了四分半。其他人平均三分钟。你多要了一分半的时间,拿到了。」
陈稳没有回答。
「你从什么时候开始,学会这么讲的。」
「不知道。」
「你知道。」刘铮没有停。「你只是不想承认。」
陈稳停下来。刘铮走了两步,也站住了。
「你知道万钧为什么批吗。不是因为你的数据比林栩好看。是因为你给他留了出口——你说『保守』的时候,他看着你,知道你没撒谎,也听出来你选了更保守的那个词。然后你又说了一次。他把两层信息合在一起,批了。」
刘铮说完,走了。
陈稳站在走廊里。手上的 A4 纸折了一个角。
他想起一个多月前在结算组那个双月会。他讲了十四分五十七秒。纪衡说「没有超时,没有卡顿,没有废话」。那天他觉得那是自己讲得最好的一次。
今天不是。今天是另一种好。今天他讲了四分半。不是自己在讲,是让对方觉得自己在讲。每一句都不是被动的,每一句都指向一个方向——他想要的方向。
他就是靠这个拿到的资源。
走廊尽头的窗户外,阳光照在另一栋楼的玻璃幕墙上,反射的光白得刺眼。
下午。工位。他把自查脚本跑了一遍。输出一样。给刘铮发了独立失败码的接口规范,附了四个测试用例。十六点四十一分,刘铮回了:「收到。」
四点二十。手机震了一下。赵岩的消息:「汇率数据保留周期的事万钧跟我说了。周一安排。需要你签个字。存储扩容走运维部预算。」
回了一个「好」。
然后他把记事本打开。在「超时阈值与链路耗时不一致」下面加了一行:
「会议上的说法:如果趋势延续,超时失败在季度末预计翻倍。精确说法:如果合作方响应速度劣化持续,且没有其他因素介入。不规范说法:确定性高于百分之六十,不可覆盖汇率波动和数据质量问题导致的失败。」
他把最后一行删了。留下空行。
他知道自己在干什么。他在为自己在会议上说的那句话做校准——在真的和精确的之间画一条线。他没有撒谎。合作方响应速度确实在劣化。十二月第四周去掉异常后,剩余三个周的响应时间仍然是前两个月的加零点一秒。如果趋势持续,超时失败确实会翻倍。他说的每个字都是真的。
但他选择在二十三条超时相关失败确认、二十四条未知原因未查明的时候就说出「预计翻倍」。他知道剩下二十四条可能不是超时问题。如果那些问题的根因完全不同——合规变更、汇率波动放大比例、数据质量随着业务增长指数劣化——翻倍估算就可能偏高。
万钧没有问「剩下二十四条的根因」。所以他没有说。
这就是蒋辉的做法。不撒谎,选择性呈现。让听的人自己得出结论——恰好是你想要的那个。
他把光标移到那行空行上面。删掉。又打了一行字进去:「今天用了蒋辉的方法。拿到了想要的。不知道是不是同一回事。」看着屏幕上的这行字,光标停了一下。
删了。保存。关掉。
六点四十。地铁。他打开手机,看见何晚四十分钟前发的消息:「今天几点。做鱼。」
「七点半。」
「好。」
他锁屏。窗玻璃上映着他的脸。不是累。是一种他说不上来的东西。不是难过,不是愤怒。是一股淡淡的、绕着胃的——恶心。
他今天成功了。拿到了所有需要的东西。万钧答应了。刘铮确认了。赵岩周一办。四小时前在会议上说了四分半。他能精准地感知到自己在做什么——每一句话的措辞、每一个停顿的节奏、每一个数据的选择——做得比他在结算组任何一个会议都好。
车厢到了站。他站起来,走到门口。
不是因为没做好。是因为做得太好了。
七点四十。家门。
何晚在厨房里。鱼在盘子里,上面铺了葱丝和姜片。青菜洗好了,放在滤水篮里。
「回来了。」
「嗯。」
「今天怎么样。」
他没有说「还行」。站在厨房门口,看着何晚把青菜从滤水篮里捞出来。
「我今天在一个会上,拿到了我想拿的所有东西。」
「那不是很好吗。」何晚没回头。
「方法不是很好。」
何晚把火关小,转过身。「什么方法。」
「你教我的那个。写标题的时候,捡出最重要的数字放在第一句。」
「那是你自己学的。我没教你那个。」
「你教了我怎么把一个东西说成另一个东西。」
何晚看着他。「那你拿到资源了吗。」
「拿到了。」
「那你觉得哪里不对。」
「说的话里有一句——说的好像我确定,其实我不确定。但没有人看出来。」
何晚把火关了。
「你以前不会在意这个。你以前只管说完就行了。」
陈稳没有接话。
「你以前只管做。现在你只管说。做和说,你觉得哪一个对。」
他站在灶台对面,隔着蒸汽。「……以前觉得是做的那个。现在不知道了。」
何晚把鱼端到桌上。盛了两碗饭。
「先吃。」
他坐下来。把筷子摆好。
「今天他们做了五个议题。第三是我。第四是一个讲新业务接入的,第五是基础设施预算。第四那个讲的不好。讲了一个方案,但没有算过这笔账带给别人的价值。」
「你怎么知道他没算过。」
「因为他说不出数字。讲了他要做什么,但说不出来不做会怎么样。」
何晚夹了一块鱼放到他碗里。
「那你呢。你说得出来。」
「说出来了。批了。」
「那你明天会怎么做。」
「明天把剩下二十四条未知原因的排查脚本写完。周五之前合入独立失败码。下周合作方接口适配启动。」
「你今天想过了。」
「想过了。」
「你以前不会想明天的事。你今天想了下周的事。」
他夹起那块鱼。吃了一口。
「鱼蒸老了。」
何晚没有接这句。夹了一筷子青菜。
「你刚才进门的时候,说了你今天拿到想要的了。这不是你以前会说的话。」
他又夹了一口鱼。知道何晚说的是真的。
何晚没有再问。
九点四十。书房。他把排查脚本的框架搭完。记事本上的空行还在那里。
他看了一眼。关掉文件。
对面没有那扇亮着的窗。停车场的路灯和一截树枝的轮廓。
他想起结算组的事了。第一次在离开之后主动想起。不是想到了具体的事——是想到了那个状态。那个他什么都不用说的时候。那个他只要把代码写对了,系统就会替他说话的错觉。老梁在的时候。
不是真的会有人看见。老梁自己也看不见。但他那时候觉得,只要写得足够对,总会有人知道。
现在他知道不是了。现在他知道,「做得对」和「被人知道」是两件事。而他学会了后一件。
他就是靠这个拿到的资源。
他站起来,走到窗前。树枝在风里动了一下。
他觉得自己做了一件对的事,一件不对的事。
对的拿到了资源,明天可以继续做该做的。不对的是——他不知道不对在哪。但他知道那根刺在那里。不是数据不准确,不是逻辑不成立。是他在会上说的那句「预计翻倍」——他知道为什么说那句。因为他算过,说了那句话,万钧就会批。就这么简单。他在开口之前就已经算好了。
这就是易文说的「翻译」。也就是蒋辉做的「选择性呈现」。它们之间的那条线,他没找到。
老梁不会这么做。老梁只会给数据,然后等对方自己算出结论。然后对方通常算不出结论。然后资源批不下来。然后老梁说「我再争取一下」。
手伸进裤袋,摸到那张名片——蒋辉给的那个跨境架构师的。还没打过。
树枝不动了。车灯亮了一下,从停车场的出口拐出去。
明天去办公室之前,他还有一件事要做:把那二十四条未知原因的排查脚本写完。不是因为万钧要。是因为如果他明天到工位上这件事没有做,他就会一整天想着它。然后他就安心不了。
安心不了,就做不好「预计翻倍」后面那些真正重要的事。
拉上窗帘。台灯关掉之前的最后三秒,记事本上那行空白的下面,多了一行字:
「明天:重写二十四条排查脚本。」
写的字。不是说的。
← 第四十四章 万钧 · 目录 · 第四十六章 平静 →