第十五章 · 翻译¶
九月四日,星期五,上午九点。
蒋辉的消息在他刷工牌之前就到了:今天下午两点,三楼小会议室,对一下数据接口的格式。有几个地方我看不懂。
他回了一个字:好。然后又发了一条:哪几个地方。
蒋辉没有回这条。
"看不懂"这三个字陈稳读了两遍。那份三页方案里,数据加载部分写了七条,其中六条是蒋辉那十六页里已经写过的。有什么看不懂的。
会议室里易文已经在了,坐在长桌靠窗的位置,笔记本屏幕上是一个 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 里新建文件,第一行标题:营销结算对账系统底层数据治理方案。
他停下来了。
删掉,重新写:营销结算对账系统底层数据治理——降低对账异常率至百分之十一点七以下。
看了一下,把"十一点七"改成"二"。异常率是从百分之十一点七降到百分之二,降到十一点七不叫降。
标题定成:营销结算对账系统底层数据治理——将对账异常率从百分之十一点七降至百分之二以下。
光标停在标题后面。他往下敲了一个回车,开始写第一段。
← 第十四章 烂摊子 · 目录 · 第十六章 备战 →