周一早上,魏轻比平时早了十五分钟到公司。
周末两天他把该补的脚本补完了,该整的文档整完了,连本地硬盘里那个“工具箱”文件夹都重新归了类。他觉得自己像一台被打扫净的机器,等着开机。但等的过程本身有点空——陈涛的工位已经清空了。桌面上只剩下公司配的那台旧显示器,键盘和鼠标整齐地码在一边,槽里的工牌抽走了,留了一个空荡荡的透明塑料壳。魏轻经过的时候停了一步,想起上周五陈涛坐在这把椅子上跟他说“工具箱”时的样子,然后继续往前走,在自己的工位上坐下。
八点五十分,方晴从电梯里走出来。
她比魏轻想象中年轻,大概三十出头,穿一件深灰色的薄西装外套,手里端着杯黑咖啡,没有拿包。走路很快,高跟鞋踩在走廊地砖上的频率比陈涛快一倍,但没有多余的声响。她经过工区的时候没有停下打招呼,目光从每一排工位上扫过去,像在核对面孔和脑子里早就看过的名单,然后径直走向陈涛原来的工位,把咖啡杯放在桌上,开机,坐下。
老吴侧过头看了她一眼,没说话,继续刷自己的手机。小周在魏轻旁边压低声音说了句“气场有点强”,魏轻没接话。五分钟后,工作群里弹出方晴的消息:“九点十五分,全体数据组到大会议室开会。”
大会议室在走廊尽头,平时只有甲方来参观或者季度汇报才用。小周走进去的时候低声说了句“这阵仗有点大”,老吴没搭理他,端着自己的玻璃杯找了个角落坐下。魏轻挨着老吴旁边坐下。方晴站在会议桌前,身后是一块没开投影的白板。
“我叫方晴。”她开口没有寒暄,声音不高,但每个字都像被提前排过版,“从今天起接手数据组。来之前在总部做了四年数据治理,对这个组的不陌生——保险公司的数据清洗去年是由我参与验收的。”
她停顿了一下,目光从每个人脸上扫过去,像在核对面孔和脑子里早就看过的名单。
“我翻过你们最近三个月的交付记录。问题不少。期格式不统一、地址清洗漏标、批量匹配脚本缺少异常值抓取机制。”她说一句,小周就往椅子里缩一寸,老吴端着杯子没动,眼睛看着杯底,魏轻把手放在膝盖上,腰背挺直。
“但最严重的问题不是技术上的。”方晴顿了顿,“是你们没有人把做过的总结成可复用的文档。唯一一份比较完整的测试志——”她低头看了下手机上的工作群文件,“是魏轻交的。地址清洗脚本的测试志,附了运行参数和匹配准确率。”
小周在桌子底下踢了魏轻一下。魏轻没动。
“从今天起,所有脚本上线前必须走测试区,运行志交到我这边,签完字才能进生产环境。每周五下午三点,组内培训,轮流讲自己这周用过的工具。”方晴合上手里的平板,看着他们,“有问题现在问。没有问题散会,十点前我要看到你们当前任务进度的详细清单。”
没有人问。方晴说了声“散会”,端起她的黑咖啡,踩着同样的频率走回了工位。
小周瘫在椅子上,压低声音说:“比涛哥狠十倍。”老吴站起来,端着杯子说了句“狠不狠的,先把活好吧”,也走了。魏轻回到工位,打开任务清单开始填进度。填到一半,方晴的私信弹出来:“上午十一点,来小会议室。”
十一点整,魏轻推开小会议室的门。方晴坐在会议桌那边,面前摊着平板和一份打印出来的测试志——是他上周交的那份。百叶窗依然斜拉着,光从缝隙里打在她肩膀上,把她半边脸切成明暗两半。
“你那份地址清洗脚本,我周末在测试区跑了一遍。”方晴把平板转过来给他看,屏幕上是他交的测试志和一份刚跑完的新报告,报告里多了三个红色标记。“你用了一版旧行政区划代码表,偃师已经划区了,你的代码表停在了之前版本。另外异常值抓取逻辑不够全——空值你处理了,但重复值和越界值你没补。”
魏轻接过来看了整整一分钟。没有解释,没有辩解。她指出的两个问题是确实存在的。他说:“重复值和越界值的逻辑我今天能补上。行政区划代码表我周末核对新版,周三之前交新版本。”
方晴点了一下头。“还有一件事。你志里提到你有一个旧村名映射表——手写的。在哪里?”
“本地硬盘。”
“接入测试区了吗?”
“还没有。手写的版本还没转成测试区能跑的格式。”
“转。周五之前。”
“行。”
方晴把平板转回去,低头看了一眼测试志的最后一页。那一页的备注栏里,那行字还留着——“跑通,可复用。”没有句号。
“陈涛走之前跟我提了你。”她没有抬头,“说你技术行,性子闷。技术我先用着。性子,你自己看着办。”
魏轻站起来,走到门口的时候停了一下。“方组长,重复值和越界值的问题,周几交?”
“周三,和区划代码表一起。”
“行。”
回到工位,魏轻调出最近三个的原始数据,开始补异常值抓取逻辑。他一行一行翻,很快发现一个被所有人忽略的隐患:保险公司不同分公司用的编码体系不一样,有些字段内容已经是二次加工后的,同一客户编码在两张表里分别被存成文本格式和数字格式,匹配时会全部漏掉。这个坑从第一期开始就没被发现过,因为以前大家做交叉匹配都是手工抽样——像在一片麦田里随机揪几穗,看着饱满就当整块地丰收了。
他在注释里写道:“重复值不是真的重复——要查编码体系。越界值不是数字越界——要查数据源是人工录的还是系统导出的。”写完他想起来,以前自己在本地脚本里也留过类似的话,但从来没在工作场合正式提出来。方晴是第一个要求他把这些写进正式文档的人。
下午四点,他把异常值抓取逻辑补完,挂上测试区。屏幕上的光标自己一行一行往过跑,他靠在椅背上,看着数据跳动。方晴上午说的话还在脑子里转——“你的代码表停在了之前版本”“重复值和越界值你没补”。她一句夸人的话都没说,但把他整份测试志看完了。一个周末,把旧版脚本和线上版本对照着跑了一遍,挑出三个标记。这不是挑刺,这是认真。魏轻在这家公司了四年,头一次遇到愿意认真看他代码的人。陈涛是信任他,方晴是检验他。信任让人安心,检验让人进步。两种感觉不一样,但同样让他不想辜负。
晚上回到出租屋,他打开那个叫《工具箱》的文件夹,在“异常值处理”下面新建了一条笔记,把下午的注释原样录了进去。写完他想了想,又加了一行:“感谢方晴。她是我遇到的第一个能看穿我代码的人。”
存盘。关掉文件夹。他靠在椅背上,想起林晚。以前他写笔记的时候,从来不会想着还能给谁看。现在写完了,却特别希望林晚也能看看。不是要她看懂代码,而是她上次在饺子馆里说——“你以后写东西,署名只有你一个。”他想说,你看,这就是我写的东西。虽然冷冰冰的,但写完我会在最后留一小段自己的话,那段话只署我的名字。
他打开一个空白文档,打了一行字,删掉。又打了一行,又删掉。不想写得过于严肃,也不想显得太随意。最后他打了四行字——
“今天有个人揪出我代码里藏了好久的漏洞。她没有夸我,但把我整份测试志看完了。我也没说谢谢。我只是在想,以后我想让你也看看这些。不是看代码,是看我写的备注。那些是我写的,署名只有我。”
他想了想,把这段话复制进社区,发了一条仅关注者可见的动态。
没过多久,右上角弹了消息。“总在傍晚散步”回了一条,只有五个字:“备注我也看。”
魏轻盯着这五个字看了很久。窗外有电动车经过,声音很轻。他把手机屏幕朝下扣在桌上,嘴角动了一下。那个“署名只有我”的世界,好像比昨晚又近了一步。他关掉电脑,躺回床上。天花板上的水渍还在那里,但他今晚没看它。他想起林晚说的那句“备注我也看”,又想起方晴说“周三交”。明天还有活,但他心里有一个东西在慢慢变清楚。他想写更多东西。不是只写给不认识的技术同行看,是写给那些会认真看的人看。林晚说她在等,方晴说她看完了他的测试志。这两个人,一个认真读他的技术文档,一个认真读他藏在文档里的注解。他忽然觉得自己被校准了,像一段被正确归类的数据,不再是无归属的散落字段。
窗外有人在收烧烤摊的铁签子,叮叮当当的,像一串很远的铃。他闭上眼睛。周三之前要把区划代码表和异常值逻辑一起交上去。周五之前要把手写映射表转成测试区格式。但他不觉得累了。被人认真对待之后,活就不是压在你身上的重量,是你自己愿意扛起来的东西。