跳转至

第十五章 · 翻译

九月四日,星期五,上午九点。

蒋辉的消息在他刷工牌之前就到了:今天下午两点,三楼小会议室,对一下数据接口的格式。有几个地方我看不懂。

他回了一个字:好。然后又发了一条:哪几个地方。

蒋辉没有回这条。

"看不懂"这三个字陈稳读了两遍。那份三页方案里,数据加载部分写了七条,其中六条是蒋辉那十六页里已经写过的。有什么看不懂的。

会议室里易文已经在了,坐在长桌靠窗的位置,笔记本屏幕上是一个 Excel 表格,密密麻麻的数字。她听到门响,没有抬头,说了一句"坐"。

昨天建的那三个视图还在。记事本上昨天最后一行:先把字段空值率超过百分之三十的列标记出来。

三个表,四十二个字段,一个一个查空值率。查完一个,在记事本上记一个数字。

"你昨天那个方案,纪衡回了没有。"易文说,眼睛没有离开屏幕。

"回了。方案收到。拦截器接入部分按我写的来。数据加载部分跟蒋辉确认接口。"

"蒋辉确认了没有。"

"昨天下午确认了。今天早上说有几个地方看不懂。"

易文的手指停了一下,两秒,然后继续敲。

"他哪几个地方看不懂,他有没有说。"

"没说。"

"好。"

四十二个字段查完,空值率超过百分之三十的有七个。他把记事本转过去。

易文的手指在纸上点了两下,点在那两个百分之八十几的字段上:一个 2024 年后没写入过,一个是 A 系统迁移遗留,可以丢。剩下五个里三个是营销活动标签字段,运营偶尔用到,不能丢。另外两个需要业务确认。

"你怎么知道那两个字段的。"

"看过建表文档。去年六月,建表的人写了一页说明,说这两个字段是留给以后用的,以后一直没来。"

"建表文档在哪里。"

"在营销技术部的 wiki 里,二级目录第四层,标题叫'临时'。周其正给我的链接。"

这句话陈稳记住了。周其正给她的。周其正昨天凌晨发的那封邮件,把她放在了收件人以外的位置——没有她。

他把那两个可丢的字段标记成 deprecated,提交执行。执行时间零点零三秒。

十一点,四十二个字段的空值率全部跑完,七个字段整理成一张表。窗外的停车场比昨天多了两辆车,一辆停在了消防通道上。

十二点,三号食堂。电梯从三楼到一楼要停两次。

"下午蒋辉会问你三个问题。"易文说,"入参为什么定三个字段,商户 ID 为什么放在第一个,是否支持批量查询。"

"他说他看不懂。"

"他不是看不懂。他是要你在会议室里当着面把这三条讲一遍。讲完了,这个接口就是你定的,出问题也是你的。"

"……那我讲不讲。"

"讲。你不讲,他就自己定,定完了还是你的。"

陈稳把三个答案复述了一遍。第一条:三个字段是时间范围、商户 ID、对账类型,因为营销侧的对账口径只有这三个维度。第二条:商户 ID 放第一个,因为它是索引最左列。第三条:支持批量,参数是列表,单次上限一千。

"行。他问什么你答什么,不要多说话。"

"多说会怎么样。"

"多说的部分,他会记住,但他不会记住是你说的。"

下午一点四十,一号楼三楼小会议室的门开着。蒋辉已经坐在里面,笔记本屏幕上是一段代码。

"来了。"蒋辉笑了笑,"坐。"

那段代码陈稳认得,是他自己的数据加载方法,行号从一百四十七开始。

蒋辉说接入层需要查结算批次号,接口里没有。

"批次号是对账结果的输出字段,不是查询条件。"

"你确定吗。"

陈稳把表结构调出来。batch_id 没有索引,联合索引的最左列是 merchant_id。按 batch_id 查,全表扫描,一千二百万行。

"确定。"

"你确定吗。"蒋辉又问了一遍。

"确定。batch_id 上没有索引,加了也没用,它在业务上是结果不是条件。"

蒋辉笑了笑,说行,改一下。他又问是否支持批量查询。陈稳说支持,参数是列表,单次上限一千。蒋辉问上限为什么是一千,陈稳说月末峰值日均七万笔,一千一批,七十批,一批两百毫秒。蒋辉在自己那份材料上划了一道,问什么时候能提 MR。

"今天下午。"

"review 完没问题就合。"

蒋辉那三个问题,一个字不差,和易文中午在电梯里说的一样。他没有问易文是怎么知道的,也没有在会议室里表现出来。

MR 提上去,commit message 写:feat: 对账数据加载接口——支持按时间范围、商户 ID、对账类型批量查询。

下午三点,蒋辉的消息:MR 看了,没问题,合了。

他回了一个字:好。

七个字段处理完,三张表洗完,一万两千三百四十二行。每改一批查一遍行数。洗完,数据干净了,字段对齐了,行数一行没少。

记事本上,"洗数据"后面打了一个勾,下面写:下周一,整理字段对齐方案,发给纪衡。

门响了,是易文。

"洗完了?"

"洗完了。"

"数据行数有没有变化。"

"没有。一万两千三百四十二行,洗之前跟洗之后一样。"

易文查了几个字段,确认了格式。

"洗得很干净。周一早上把字段对齐方案整理出来,先发我。"

"不是直接发纪衡。"

"先发我。你现在还不知道纪衡会挑哪一句。"

她走了以后,那三个表他又过了一遍。没有问题。

回小区的路上他给易文发了一条:你下午怎么知道蒋辉会问那三个问题。

易文没有回复。

到家,牛奶一杯,凉的,胃没有反应。他喝完,把杯子洗了,放在架子上。

易文的消息发在十七分钟前:因为他问过周其正同样的问题。

这条消息他看了两遍,没有回。周其正问过,周其正告诉了她。周其正昨天凌晨那封邮件里没有她。这两件事同时成立。

星期六。第一次醒是七点四十三分,再醒是九点二十三分。天花板上没有裂缝。一碗面,吃了,把碗洗了。

邮箱里没有新邮件。结算成功率百分之九十九点九九,拦截器正常,连接池使用率百分之六十七——比周四高了两个百分点。三个视图查了一遍,没有问题。

记事本上周一那条:整理字段对齐方案,发给易文,等易文看完,发给纪衡。

蒋辉问他的那三个问题,易文提前一个半小时全说对了。他在记事本上写了一段,保存了:

易文知道蒋辉会问什么,因为蒋辉问过周其正。周其正告诉易文。易文告诉陈稳。陈稳答上了。蒋辉改了方案。

对面那栋楼,星期六中午,窗户一格一格地亮着。他看了十一个月的那扇窗,还是黑的。

字段对齐方案写了一个下午。下午六点写完,三个表的结构对比画成一张表格:十六个字段,字段名、类型、长度、空值策略,全部对齐,每一条后面都有一行理由。

星期一,九月七日,上午九点。

易文在长桌靠窗的位置,屏幕上是数据库查询界面,手指很快。

"早上好。"

"嗯。"

方案发过去。三分钟后她停下来,打开邮件,看了五分钟。

"可以。十六个字段,每个字段都有理由,没有遗漏。直接发纪衡。"

正文一行:营销结算对账系统底层数据字段对齐方案,三张表,统一为四十二个字段,详见附件。发送。

"你的方案,纪衡看完,可能会问你一个问题。"易文说,"他会问你,这个方案需要多少资源,多长时间,谁来做。"

"一个半月。我一个人。不需要额外资源。"

"为什么是一个半月。"

"三十二个工作日,每天三小时,九十六小时。够。"

"不要说三小时。他会问剩下五小时你在干什么。"

"……那说一个半月。"

"说一个半月。纪衡回复了来找我。"

九点四十七分,纪衡的回复:方案收到。需要多少资源,多长时间,谁来做?

一个字都不差。他回:一个半月。我一个人。不需要额外资源。

纪衡没有回复。

他没有立刻去找易文。三个表的数据又过了一遍,字段对齐方案又检查了一遍,没有问题。

记事本上他写了一段:易文能提前知道别人的问题,是因为她一直在做一件事——把技术细节翻译成业务指标。她做的每一件事,都能对应一个数字。她不是天生会这个的。她是学出来的。

写完,没有删,保存了。

电梯里他想的是易文那句话的一个词。她说的不是"这个问题",是"一个问题"。这两个说法差一个字,意思差很远:她不是猜中了一次,她是知道纪衡只有一个问题。

那天在食堂她说过:他其实不难应付。他只是要一个数字。你给他一个数字,他就能用这个数字去跟上面说。

她还说过:所以不是价值量化,是翻译。

三楼那间临时会议室,易文的笔记本屏幕上是一个 Excel 表格,一行一行的数字,每个数字后面跟着一个百分比。

"纪衡回了?"

"回了。他说方案收到。问需要多少资源,多长时间,谁来做。我说一个半月,一个人,不需要额外资源。"

"行。回得对。"

屏幕转过来了。是营销结算系统的数据,按时间维度排列,每一天的结算成功率、交易量、平均处理时长、资损金额。

"这是什么。"

"数据治理项目的完整数据。这三个表的数据,我跑了一个周末,把所有字段的统计值都算出来了,按天、按周、按商户、按对账类型,四个维度,一共四十八个指标。"

"跑了多久。"

"一个周末。昨天晚上三点才睡。"

那两天他自己在做的是十六个字段的对齐理由。她在做四十八个指标。

"你那个字段对齐方案,纪衡已经收到了。下一步,你要把这个方案讲出来。"易文合上笔记本,"你不能说'我建了三个视图,统一了四十二个字段'——没人关心你建了几个视图。"

"那说什么。"

"你说,'营销结算对账系统的底层数据,三个表结构不一致,导致对账结果异常率约百分之十二。统一字段定义后,异常率预计降至百分之二以下。'"

她打开笔记本,在 Excel 里敲了几个数字,把屏幕转过来。公式那一格显示:11.7%。

"百分之十一点七。"易文说,"不是百分之十二。不要约。你说百分之十一点七,就没人会问你这个数字怎么来的。"

"约了会问。"

"约了他就知道你是估的。估的东西,他不敢往上讲。"

百分之十一点七,精确到小数点后一位。

"你呢?"他说。

"我什么?"

"你也是这样做的吗。"

"哪样。"

"把每个技术细节对应一个业务指标。"

易文的手从键盘上拿下来,放在桌面上。她笑了笑。

"不。我是这样工作的。"

这两句话的差别陈稳听出来了。"这样做"是一件事,"这样工作"是全部。

"你知不知道,你刚才问了一个什么问题。"

"……什么问题。"

"你刚才问的是:'你们分析师都是这样工作的吗?'"

"不是。我问的是'你呢'。"

"你问的是'你呢',但你想的是'你们分析师都是这样工作的吗'。你脸上有东西,你每次想问一个更大的问题,你就会先问一个小的。"

他喉咙动了一下。这个他自己也知道。

"你是不是想问:'你们分析师都能把技术细节翻译成业务指标吗?'"

"……是。"

"答案不是。大部分分析师不会。他们只会看数据,不会翻译。翻译是另外一门课。"

"你在哪里学的。"

她把笔记本合上了,合了很久才说话。窗外的玻璃反射出一层白。

"我在上一家公司,有一个 mentor。她教我的。她跟我说,你写的每一行 SQL,都对应一笔钱。你写的每一行代码,都对应一个业务场景。你写的每一封邮件,都对应一个利益相关者。如果你不知道你的代码对应什么,你就不要写。"

她停了一下。

"她后来被裁了。因为她太贵了。"

"太贵了"这三个字后面没有别的解释。不是能力问题,不是绩效问题,是一个数字比另一个数字大。

"你听好了。"易文转过身,"我教你的这些东西,不是技术。技术你都会。我教你的,是怎么让你的技术被人看见。你学会了,你就不会像我那个 mentor 一样被人裁了。"

"我学会了,就不会被人裁了。"

"不是。你学会的是让技术被人看见。"

"……对。"

"你开始懂了。"

她重新打开笔记本,回到那个 Excel 表格。四十八个指标,每个数字后面跟着一个百分比,每个百分比对应一个业务指标。

草稿箱里那两封邮件还在,一封三千一百字,一封三百四十七字。删掉的那句是:"这个改动能让每年 2 次以上的凌晨事故变成 0 次。"那篇复盘,老梁说的是"纪总看不懂"。

老梁说看不懂,蒋辉说看不懂。同样三个字,一个是提醒,一个是要他站到台面上来。

"易文。"

"嗯。"

"你那个 mentor,后来去了哪里。"

"不知道。她走的时候,没有说。我后来查过,LinkedIn 上她的资料停在了五年前。"

五年前。易文进恒澜是三年前。中间空着两年。

"我回去写方案。你那个四十八个指标的表格,能不能发我一份。"

"不行。"

"为什么。"

"因为那是我的数据。你写你的方案,用你自己的数据。你学会了,以后你也不需要我的数据了。"

他没有再问第二遍。

"好。"

电梯下到一楼。二号楼门口的水泥地面反射出一层白。手机里那段记事本他又打开看了一遍,没有删,也没有改。

IDE 里新建文件,第一行标题:营销结算对账系统底层数据治理方案。

他停下来了。

删掉,重新写:营销结算对账系统底层数据治理——降低对账异常率至百分之十一点七以下。

看了一下,把"十一点七"改成"二"。异常率是从百分之十一点七降到百分之二,降到十一点七不叫降。

标题定成:营销结算对账系统底层数据治理——将对账异常率从百分之十一点七降至百分之二以下。

光标停在标题后面。他往下敲了一个回车,开始写第一段。


← 第十四章 烂摊子 · 目录 · 第十六章 备战 →