跳转至

第六章 · 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,站起来,走到窗边。

窗外,天已经快黑了,天空是深蓝色的,靠近地平线的地方有一层橘红色的光,正在慢慢变暗,变灰,变成黑色。

他站在窗前,看着那片光消失,然后转身,走回工位,收拾东西,关掉电脑,走出了办公室。


← 第五章 新规矩 · 目录 · 第七章 蒋辉的方案 →