林帆回到自己的座位,喝了一口已经凉透的咖啡。他看了一眼电脑右下角的时间:20:17。

01

“漩涡数据”的三十三层灯火通明。

“Alpha客户的季度数据模型报告,今晚十点是最后期限。” 部门主管王总的声音从会议室传来,隔着玻璃都透着一股寒气,“这个模型关系到我们下半年的合作评估。张浩,你是项目执行A岗;林帆,你是数据支持B岗。你们两个,谁都不能出岔子。”

办公区,张浩烦躁地抓着头发,盯着屏幕上密密麻麻的代码。“见鬼,这个数据包又冲突了。林帆,你给我的原始数据表是不是漏了什么?为什么我一加载就溢出?”

林帆(我)正靠在椅背上,闭目养神。听到召唤,他才缓缓睁开眼,走到张浩的工位旁。

“我给你的表,是按照‘风控S3标准’清理过的,绝对干净。”林帆的声音不高,但很清晰,“你看看你的加载脚本,是不是调用了上个季度的旧接口?”

张浩愣了一下,飞快地检查代码,脸色瞬间涨红:“……还真是。我忘了改这个参数。”

他嘟囔着:“你早点提醒我啊。”

林帆没接话,只是说:“你还有两个小时。A岗负责最终提交,今晚的报告,王总只看你上传的那个版本。”

“知道了知道了,催什么。”张浩不耐烦地摆摆手,重新埋头苦干。

打开网易新闻 查看精彩图片

然后,他打开了一个加密的工作日志,敲下了一行字:

“Alpha项目,20:17,提醒张浩加载接口错误。他似乎很依赖我的纠错。”

写完,他便锁定了屏幕。

晚上九点五十分,张浩长舒一口气,猛地点击了“提交”按钮。

“搞定!林帆,走了,宵夜去!”张浩喊道。

“你先走吧,我再检查下备份。”林帆头也没抬。

“随你。”张浩拿起外套,哼着小曲走进了电梯。

02

第二天上午九点整,王总的内线电话打到了林帆的桌上,声音是冰冷的。

“林帆,张浩,立刻到我办公室来。立刻!”

张浩显然是刚到公司,领带都还是歪的,一脸没睡醒的样子。两人一前一后走进办公室,王总几乎是把一份纸质报告摔在了桌上。

“解释一下!”王总指着报告上一个刺眼的数据图表,“为什么Alpha客户的‘核心用户流失率预测’会是负数?百分之负七!你们是在预测他们下个季度能‘复活’多少用户吗?”

张浩的冷汗“刷”地一下就下来了。他抢在林帆开口前,一个箭步冲到桌前,拿起报告。

“王总……这,这不可能啊!我昨晚提交的时候明明核对过……”

“你核对过了?”王总冷笑,“Alpha的CEO凌晨四点给我打的电话,问我是不是在侮辱他的智商!你知道这导致了什么吗?他们冻结了二期款项的支付!”

“我……”张浩的眼珠飞快地转动,他忽然猛地转向我,“林帆!是不是你给我的原始数据包出了问题?我就说昨晚加载的时候总觉得不对劲!”

林帆平静地看着他:“我给你的数据包,有完整的校验码。你加载的时候,校验码对得上吗?”

“我……我当时太急了,谁还顾得上看那个!”张浩急赤白脸地喊道,“肯定是你!你的基础数据错了,我的模型跑出来肯定是错的!王总,他是B岗,数据源头在他那里!”

王总的目光转向了林帆,带着审视和巨大的压力:“林帆?”

打开网易新闻 查看精彩图片

林帆沉默着,没有看张浩,也没有看王总。他只是盯着桌上那份可笑的“负增长”报告。

“B岗的数据如果出错,A岗在建模和提交前,难道没有复核的职责吗?”林帆终于开口了,语气平淡。

“你这是承认了?!”张浩像是抓到了救命稻草,“王总你听到了!他承认数据源头有问题!我一个A岗,我怎么可能把他的基础工作全部重做一遍!这是他的失职!”

王总深吸一口气,她现在需要的是一个解决方案,以及一个为这件事负责的人。

“够了。”王总打断了他们,“张浩,你立刻带团队重做模型,中午十二点前必须给客户一个初步解释。至于林帆……”

王总停顿了一下。

“林帆,你这个季度的绩效奖金全部取消。另外,写一份详细的事故报告,发给全体项目组,向所有人道歉。明白了吗?”

张浩的肩膀明显松弛了下来,他悄悄地、用一种混合着愧疚和庆幸的眼神瞥了林帆一眼。

林帆看着王总,脸上没什么表情,既没有愤怒,也没有不甘。

“明白了,王总。”

03

从王总办公室出来,张浩刻意放慢了脚步,落在林帆后面。

直到走廊的拐角处,张浩才快走几步跟上来,压低了声音:“那个……林帆。兄弟,今天这事……我……”

林帆停下脚步,转过身。

“我当时也是没办法,王总发那么大火,你知道的,我上个月才刚背了一个投诉,再来一次,我这A岗就保不住了。我……”张浩语无伦次地试图解释。

“我懂。”林帆打断了他。

“啊?”张浩愣住了。

“你也是为了保住工作。”林帆的语气甚至称得上温和。

张浩的表情僵住了,他没想到会是这个反应。他准备好了一箩筐的说辞,准备应付林帆的质问甚至愤怒,但对方平静得像是什么都没发生。

“那你……”

“奖金而已,小事。”林帆微微一笑,忽然伸出手,重重地拍了拍张浩的肩膀。

张浩被他拍得一缩。

林帆凑近了一点,用只有两个人能听到的声音说:

“张浩,别往心里去。哥下次还帮你。”

这句话像一道电流,让张浩的汗毛瞬间立了起来。

他看着林帆的眼睛,那里面没有愤怒,没有怨恨,甚至没有嘲讽。那是一种……一种难以形容的、近乎“怜悯”的平静。

“你……你什么意思?”张浩的声音有些发干。

“字面意思。”林帆收回手,插回口袋,“好好准备给客户的解释吧。B岗的工作,我不会再出‘岔子’了。”

林帆转身离开,留下张浩一个人僵在原地。

“下次还帮你”,这五个字像魔咒一样在张浩的脑子里盘旋。他为什么不生气?他为什么不解释?他到底想干什么?

打开网易新闻 查看精彩图片

04

那次“背锅”事件后,林帆真的像个没事人一样。他准时提交数据,报告写得滴水不漏,甚至在公开的检讨信里,他也只是陈述了“数据核验疏忽”,把责任揽得干干净净。

张浩反而坐立不安了好几天,但看到林帆确实没有报复的迹象,他也渐渐放下了心。他开始觉得,林帆也许就是个软柿子,或者是个“老好人”,认栽了。

生活恢复了平静,直到两个月后。

“Omega项目启动会。”王总在会议室的白板上写下这个词,“重要性,是Alpha的三倍。客户要求我们对他们全网的实时交易数据进行‘高频风险狙击’。这个项目,只许成功,不许失败。”

王总的目光扫过众人:“A岗,还是张浩。B岗……”

所有人都看向林帆。

“B岗,还是林帆。”王总敲了敲桌子,“我不希望看到同样的错误,再犯第二次。”

张浩的脸色有点白。

又是一个注定不眠不休的加班周。Omega项目的数据量是Alpha的几十倍,而且是实时滚动的。

周五晚上,最后提交期限前一晚。

“林帆,你确定这个‘清洗规则’没问题吗?”张浩的声音带着颤音,“这数据流太快了,我根本没法手动验证。万一规则错了,明天系统一上线,导出的狙击指令就是错的!”

“放心。”林帆正在调试一个监控窗口,“我用了三重验证。规则是绝对安全的。”

“可我总觉得心慌……”张浩死死盯着那个红色的“执行”按钮。这个按钮按下去,数据模型就会被部署到Omega客户的内网服务器上,开始实时干预他们的交易。

“你上次就是太自信了,林帆。”张浩忍不住说。

“所以这次我格外小心。”林帆抬起头,看了他一眼,“A岗,你负责最终部署。执行吧。”

张浩咽了口唾沫。他看了一眼旁边一脸平静的林帆。他想:如果这次再出事,王总说了,绝不姑息。但林A岗已经犯过一次错,这次如果再出问题……

他一咬牙,把鼠标移到了“执行”按钮上,重重地按了下去。

就在这时,林帆的手机屏幕亮了一下,是一条短信。