第六章 · PPT母版¶
周三早上,陈稳到公司,刷卡进闸机,等电梯,电梯门打开,里面没有人。他按了八楼。
他走到工位,坐下来,打开电脑。屏幕亮起来,右下角的时间是八点三十七分。他打开邮箱,新邮件不多。他扫了一眼,没有纪衡的。
他打开监控大盘,第三行第二格,绿灯,平的。他刷新了一下,绿灯,平的。他关掉大盘。
他打开微信。结算组的小群里,纪衡在昨晚十一点四十七分发了一条消息,发了一个文件。文件名是“月度汇报模板 v1.pptx”。没有正文。没人回复。
陈稳点开文件。PPT 只有一页。
六个灰色的虚线框,分布在白色的页面上。标题区:一个文本框,写着“单击此处编辑标题”。副标题区:一个文本框,写着“单击此处编辑副标题”。正文区:四个文本框,纵向排列,每个都写着“单击此处编辑文字”。没有表格,没有图表,没有配色方案。
他看了一下这个模板,然后关掉了。
他打开任务清单。今天有三件事:补价值量化、等 MR 合并、等灰度数据。
他打开 PPT,看了一遍昨晚提交的版本,改了几个数字,保存,关掉。他打开 IDEA,拉了一下 MR 状态,还在等 review。他关掉 IDEA,打开监控大盘,拦截器日志绿的。他关掉大盘。
他拿起手机,打开那个模板,又看了一遍。六个灰色的虚线框,均匀分布在页面上,像一张空白的答卷。
他放下手机,站起来,走到茶水间。茶水间里没有人。他接了一杯热水,在窗边站了一会儿。窗外是另一栋楼的外墙,灰色的,墙上有几条空调管,沿着墙面往下走,在转角处拐了一个弯,消失在墙的背面。
他喝了一口水,烫了一下舌尖。他放下杯子,回到工位。
他坐下来,重新打开那个模板。他盯着标题区,在文本框里打了几个字。
“结算系统七月工作汇报。”
他看了一遍,删了。
他重新打:“结算组月度汇报。”
看了一遍,又删了。
他打了两个字:“月报。”然后在副标题区打了“2026.07”。
他看着这四个字——六个占位符,填了两个。还剩四个。
他打开价值量化 PPT,把昨晚写的内容复制了一页,贴到模板的正文区。那一页写着“目标业务指标:减少结算延迟导致的商户投诉率,降低补录人力成本”。他贴进去,字体变小了,行距变密了。他把正文框拉大,字体恢复。他看了一眼,删了。
他重新打开价值量化 PPT,把“结算延迟平均时长”和“补录人力成本”两个数字标题复制过来,贴在正文框里。贴完,发现两个框之间的距离不一样,左边比右边宽了两个像素。他调整了一下,对齐了。然后他把它们又删了。
他靠在椅背上,看着屏幕。六个灰色的虚线框,五个空着,一个写着“月报”——和一个“2026.07”。
他关掉 PPT,站起来,走到走廊尽头,在楼梯间里站了一会儿。
楼梯间里没有人。安全出口的指示牌亮着绿光,墙上贴着一张消防疏散图,塑料封皮已经泛黄了,四角各有一个图钉钉着。他站在那张图前面,看了一会儿上面的路线——八楼,两条楼梯,一个消防通道。他看了几秒,转身走回去。
他回到工位,重新打开 PPT,把价值量化 PPT 的内容复制过来,粘贴到模板里,调整字体和行距,保存,发给纪衡,附了一行字:“用模板写了一份,您看看格式对不对。”
他等了一会儿,没有回复。他看了一眼时间,十点二十分。他打开 IDE,继续写规则引擎的接入代码,写完了一个接口,跑了一遍,全绿,提交,然后切回邮箱,没有新消息。
他打开监控大盘,看了一眼日志,又看了一眼时间,十一点。他关掉大盘,去食堂吃饭。
食堂里人很多。他端着餐盘找位置,看到靠窗有一个空位,坐下来。对面是一个他不认识的人,在吃面条,吃得很急,汤溅了一小片在桌上。
他低头吃饭,吃了几口,听到旁边有人叫他。
“陈稳。”
他抬头,是易文。她端着餐盘站在他旁边。
“这里有人吗?”
“没有。”
易文坐下来。她拿起勺子,喝了一口汤,然后说:“纪衡发了新模板,你看到了吗。”
“看到了。”
“你写了吗。”
“写了。发给他了。”
“他怎么说。”
“没回。”
易文拿起筷子,夹了一根青菜,吃了,慢慢嚼完,然后说:“你现在手上有什么数据。”
“拦截器灰度跑了快一天,全部通过。规则引擎接入写完了,等合并。价值量化还在改。”
“那你有东西可以写。”
陈稳没有说话。
易文看了他一眼,说:“你是不知道怎么写,还是不知道写什么。”
陈稳想了想,说:“不知道怎么写。”
“模板有什么问题。”
“六个框。不知道填什么。”
易文放下筷子,说:“那六个框是放内容的,不是放标题的。你不需要写‘月报’两个字,月报写在标题框里就够了。你要写的是——结算组这个月做了什么。”
陈稳说:“我知道。”
“那你为什么写不出来。”
陈稳没有回答。
易文看了他一会儿,然后拿起筷子,继续吃饭。她吃了几口,说:“你那个拦截器,灰度数据跑了多少条。”
“几千条。全部通过。”
“有没有没通过的。”
“没有。”
“那这就是一个数据点。你写上去。”
陈稳说:“好。”
易文吃完饭,把餐盘端起来,站起来,说:“他回你的时候跟我说一声。”
“好。”
易文走了。陈稳一个人坐在餐桌前,面前的饭还剩一半。他拿起筷子,继续吃,吃完,把餐盘端到回收处,走回工位。
他打开邮件,纪衡的回复:十二点四十八分。
“格式可以。内容不对。”
陈稳看着这四个字,没有动。
他打开 PPT,重新看了一遍自己贴进去的内容。价值量化的六页,逐条列出,数据来源,时间范围,预期提升——格式完整,没有错别字,对齐。他看不出哪里不对。
他打了两个字:“哪部分?”然后他盯着这两个字,看了一会儿,没有发出去。
他删了那两个字,把手机放在桌上,靠在椅背上。
他站起来,走到茶水间,接了一杯热水,喝了一口,烫了一下,他把杯子放在窗台上,等它凉。
他站在窗边,看着窗外。天上有一架飞机,拖着一条白色的尾迹,从东往西,慢慢移动,尾迹在天空中扩散,越来越宽,越来越淡,最后消失。
他盯着那条尾迹消失的方向,站了一会儿,然后拿起杯子,喝了一口水,水是温的。他放下杯子,走回工位。
他坐下来,重新打开 PPT,把价值量化的内容全部删掉,然后重新打开那个模板,从零开始。
他打开监控大盘,把拦截器灰度数据拉出来。日志行每分钟几十条,每一条的结果都是“通过”。他复制了几条,贴在记事本里,看着这些文本,想了一会儿,不知道该怎么放进去。他关掉记事本,打开搜索引擎,搜索“月度汇报模板 结算系统”,翻了几页,关掉浏览器。
他重新打开 PPT,在第一个正文框里打了一行字:“结算系统本月运行稳定,无 P0 事故。”
他看了一遍,删了。
他重新打:“本月结算系统正常运行,拦截器灰度发布,全部通过。”
他看了一遍,保留了。
他在第二个正文框里打了一行字:“规则引擎调度通知接入完成,待上线。”
他保留了。
他在第三个正文框里打了一行字:“价值量化完成,目标:减少结算延迟导致商户投诉率,降低补录人力成本。”
他看了一遍,把“降低补录人力成本”改成“降低补录人力成本 48 人天/年”。
他保留了。
他在第四个正文框里打了一行字:“下周计划:拦截器全量发布,价值量化正式版本提交。”
他看了一遍,把“下周计划”改成“下月计划”。
他保存了文件,重新看了一遍。四个正文框,四条内容,按顺序排列,干净的,没有多余的装饰,没有图表,没有配色,只有文字,黑色的,灰色的,白色的,对齐的。
他看了一遍,觉得不够。但是他说不上来哪里不够。
他保存了文件,发给纪衡,附了一行字:“重新写了,您看内容方向对吗。”
他等了一会儿,没有回复。他看了一眼时间,下午两点十六分。他打开 IDE,继续写代码。他写了一个小时,切回邮箱,没有新消息。他又切回去,又写了一个小时,切回邮箱,还是没有。
他打开监控大盘,看了一眼拦截器日志,绿的。他关掉大盘,站起来,走到走廊尽头,在楼梯间里站了一会儿。
他回到工位,打开 PPT,看了一遍自己写的四条内容,看了一遍,又看了一遍,然后关掉。
他打开 IDE,继续写代码。他写了一个配置校验的方法,抽成工具类,写了单元测试,全绿。他提交,推送,commit message 写了两行:
refactor: 抽离参数校验逻辑
独立为工具类,便于后续扩展。
他关掉 IDE,看了一眼时间,下午四点二十二分。他打开邮箱,还是没有新消息。他打开微信,纪衡没有回复。他打开 PPT,又看了一遍,然后关掉。
他站起来,走到茶水间,接了一杯热水,在窗边站了一会儿。窗外那架飞机已经看不见了,天空是干净的,蓝色的,没有云。他喝了一口水,水是温的,他喝完,放下杯子,走回工位。
他坐下来,打开手机,看到群里有一条消息。是蒋辉发的。
“纪总,模板我填了,发您邮箱了,您看一下。”
陈稳划了一下,没有看到纪衡的回复。他放下手机,打开 PPT,又看了一遍,然后关掉。
他打开 IDE,继续写代码。他写了一个小时,切回邮箱,看到有一封新邮件。发件人:纪衡。时间:十七点零六分。
正文只有一行字:
“内容不够。需要更具体的数据支撑,以及带时间维度的对比。”
陈稳看了两遍,回了一个:“好。”
他打开 PPT,把第一条“本月结算系统正常运行,拦截器灰度发布,全部通过”改成了:“截至 2026-07-21,settle.guard 拦截器灰度运行 24 小时,累计拦截请求 1,843 次,全部通过(通过率 100%)。未触发告警,无资损。”
他看了一遍,保留了。
他把第二条改成:“规则引擎调度通知接入完成,已提交 MR,待 review 合并后发布。计划上线时间:2026-07-25。”
他保留了。
他把第三条改成:“价值量化 v1 提交。目标:减少结算延迟导致商户投诉率(当前基线:每月影响约 1,200 户),降低补录人力成本(当前基线:每次事故 4 人天)。数据来源:2024–2026 年事故记录。”
他保留了。
他把第四条改成:“下月计划:拦截器全量发布(预计 2026-07-28),价值量化正式版本提交(2026-07-25),规则引擎通知上线(2026-07-25)。”
他保存了,发给纪衡,附了一行字:“已补充数据和时间维度的对比。”
他等了一会儿,没有回复。他看了一眼时间,十七点三十一分。他关掉电脑,站起来,收拾东西,准备走。
他走到电梯口,等电梯的时候,手机震了一下。他拿出来,是纪衡的回复。
“可以。按这个格式整理完,下周一汇报用。”
陈稳看着这条消息,看了几秒。他按了锁屏键,把手机放回口袋。电梯来了,他走进去,按了一楼。
电梯门关上,缓缓下降。他看着楼层数字跳动,从 8 到 7 到 6 到 5 到 4 到 3 到 2 到 1。电梯门打开,他走出去,穿过大厅,刷卡出闸机。
他走出大楼,天还没黑,傍晚的光线是斜的,拉长的影子落在地面上,从他的脚底一直延伸到路灯的根部。他往地铁站走,走了一半,停下来,拿出手机,打开 PPT,又看了一遍。他看完了,觉得好像少了点什么,又说不上来。
他把手机放回口袋,继续往地铁站走。
他刷卡进站,站台上等车的人不多。他站在靠墙的位置,看着轨道对面的广告牌。那个房地产广告换了,换成了一个奶茶品牌的广告,照片上是一个年轻女孩,手里拿着一杯粉色的奶茶,笑容亮白,牙齿整齐。
他上了车,找到一个角落站着。列车启动,隧道里的灯光开始往后跑,一下一下地闪过他的脸。他闭了一下眼睛,睁开,列车到了一个站,他下了车,换乘,再坐两站,出站。
他走回小区,门口的保安坐在岗亭里,面前的桌上放着一台平板电脑,屏幕上在放一部电影,音量很小,听不清台词。保安的视线在屏幕和门口之间来回切换,看到陈稳走进来,目光停留了一秒,又回到了屏幕上。
陈稳走进去,上楼,开门,屋里灯是黑的。
他换了鞋,走到客厅,坐下来。他拿出手机,打开 PPT,又看了一遍。然后他打开微信,看到结算组的小群里,蒋辉发了一条消息:“纪总,我的模板您看了吗?有没有需要改的?”
纪衡没有回复。
群里静了一会儿,然后有人发了一个“。”——像是打错了字,又像是不知道说什么。
陈稳划了一下,没有回复,把手机放在茶几上。
他站起来,走到书房,打开电脑,打开 PPT,又看了一遍。他看完了,关掉,然后打开搜索引擎,搜索“月度汇报模板 结算系统”,翻了几页,关掉浏览器。
他重新打开 PPT,盯着那六个灰色的虚线框看了一会儿,然后在第二个正文框后面加了一个数字:“灰度数据:1,843 次请求,全部通过,通过率 100%,0 资损。”
他保存,关掉电脑。
他站起来,走到窗边,拉开窗帘。对面那栋楼亮着灯的窗户很少,三楼有一扇亮着,五楼有一扇亮着,八楼有一扇亮着——不是他看了十一个月的那扇,是另一扇。他看了十一个月的那扇,黑着。他站了一会儿,放下窗帘,走回卧室,躺下来。
他闭上眼睛,黑暗中,眼前浮现出六个灰色的虚线框,均匀分布在白色的页面上,框里没有文字,只有光标,一明一暗,像呼吸一样。
他翻了翻身,面朝墙壁。
墙上的光从窗帘的缝隙里漏进来,在天花板上拉出一条细长的白色线条。
他盯着那条线,盯了很久。
然后他闭上眼睛,睡着了。
第二天,他醒来的时候,手机上有两条消息。
一条是纪衡凌晨一点发的:“下周一汇报,你来做。”
一条是易文早上七点四十分发的:“纪衡那边怎么说?”
陈稳先回了易文:“他说可以。周一汇报。”
然后他打开纪衡的消息,看了两遍,没有回复。他把手机放在床头柜上,屏幕朝下,躺了一会儿,然后起床,洗漱,出门。
到公司的时候,他刷卡进闸机,等电梯,电梯门打开,里面站着一个人——蒋辉。
“早。”蒋辉说。
“早。”
陈稳走进去,按了八楼。电梯门关上,缓缓上升。
“你那个模板,纪总看了吗。”蒋辉说。
“看了。”
“他怎么说。”
“他说可以。”
蒋辉点了点头,没有说话。电梯到了八楼,门打开,他们走出去。
陈稳走回自己的工位,坐下来,打开电脑。他打开 PPT,又看了一遍,然后把最后一行字改成“灰度数据:1,843 次请求(截至 2026-07-22 14:00),全部通过,通过率 100%,0 资损。日志详情见附件。”他保存,关掉。
他打开监控大盘,第三行第二格,绿的,平的。他刷新了一下,绿的,平的。他关掉大盘。
他打开 IDE,拉了一下规则引擎的 MR,已经有一个人 review 了,留了一条评论:“这块逻辑建议加一个重试机制,不然调度通知丢了不会重发。”他看了这条评论,在通知接收的方法里加了一个重试队列,当接收失败时,消息进入重试队列,十五分钟后重试,最多重试三次。他跑了一遍单元测试,全绿。他提交了代码,在 MR 里回复了一条:“已补充重试机制,最多重试三次,间隔十五分钟。”
他关掉 IDE,打开 PPT,又看了一遍,然后关掉。
他站起来,走到茶水间,茶水间里没有人。他接了一杯热水,在窗边站了一会儿,喝了一口,水是热的,他含在嘴里,慢慢咽下去。
他放下杯子,走回工位,打开 PPT,把“灰度数据:1,843 次请求”改成“灰度数据:1,843 次请求(截至 2026-07-22 14:00)”。他改完,保存,关掉。
他打开微信,看到纪衡没有新消息,看到蒋辉在群里发了一条消息,说他的模板纪总看了,让改两个数字。他划了一下,没有细看,把手机翻过来,屏幕朝下,放在桌上。
他打开 IDE,继续写代码,写了两个多小时,中间收到一条通知,规则引擎的 MR 合并了。他 pull 了代码,更新了本地分支,没有冲突,关了 IDE,去食堂吃饭。
食堂里人很多。他端着餐盘找位置,看到靠窗的位置空着,他坐下来,一个人吃饭,没有遇到易文。他吃完饭,把餐盘端到回收处,走回工位。
下午,他打开 PPT,又看了一遍他写的四条内容,然后从头到尾读了一遍,像在读一封邮件,读完了,觉得好像少了点什么,缺少一个开头,一个能让看的人知道“这个人在说什么”的开头。
他想了想,在标题区下面的副标题区加了一行字:“本月结算系统运行稳定,主要工作为拦截器灰度发布、规则引擎接入、价值量化提交。无 P0 事故。”
他看了一遍,保留了。
他保存了文件,发给了纪衡,附了一行字:“加了一个概述,您看合适吗。”
他等了一会儿,纪衡的回复来了。
“不用发我看。按你的理解写。周一汇报你来讲。”
陈稳看着这条消息,看了几秒,然后回了一个:“好。”
他放下手机,靠在椅背上,看着屏幕上那六个灰色的虚线框,框里的文字安静地排列着,黑色的,白色的,对齐的。
他盯着那排文字,盯了很久,然后关掉 PPT,站起来,走到窗边。
窗外,天已经快黑了,天空是深蓝色的,靠近地平线的地方有一层橘红色的光,正在慢慢变暗,变灰,变成黑色。
他站在窗前,看着那片光消失,然后转身,走回工位,收拾东西,关掉电脑,走出了办公室。
← 第五章 新规矩 · 目录 · 第七章 蒋辉的方案 →