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

周五傍晚,驻场办公室只剩空调的低鸣。林舟把洗漱包和两套换洗衣服塞进行李箱,桌上的绩效表停在鲜红的D。

他刚在手机上退掉周末返程后再回场的车票,屏幕便亮了起来。来电人是沈岚,部门经理,也是那张D的签字人。

“林舟,晚上通宵加班!”沈岚开口没有称呼,像是在群里点名一个随时待命的工位。

林舟看着箱子里卷好的衣服,问:“加什么班?”

“客户那边的修复还没收尾,你熟底层逻辑,今晚把问题解决。”沈岚语气很快,“别问那么多,先到机房。”

他翻了翻桌面的绩效附件,里面的交付状态写得清清楚楚:相关修复已经完成,等待客户验收。

“附件里不是写着已经完成了吗?”

电话那头停了半秒,沈岚随即说:“你现在是在跟我争这个?”

林舟把绩效表从文件夹里抽出来,指尖压住那个D:“我只问今晚谁负责。”

“你负责技术支持。”

“主责人呢?”

“现场不都一样吗?你先把活干完。”

箱盖还敞着。林舟指尖压着那张让他损失两万四千元奖金的评级,第一次没有解释自己为什么要离场。

“你算老几?”他问。

电话里安静得只剩电流声。沈岚像没听清:“你说什么?”

“我说,既然我只是技术支持,就请你把主责人和操作范围写清楚。没有负责人,我不接通宵命令。”

沈岚的呼吸明显重了一下:“林舟,你最好想清楚后果。”

“我已经想清楚了。”他说完挂断电话,箱盖仍然没有合上。

一分钟后,项目群弹出一条消息。沈岚写道:“林舟今晚情绪不稳定,先安排他做辅助,大家不要受影响。”

群里没人立刻回复。唐禾正在机房值守,只发来一个迟疑的问号。

林舟没有解释那通电话,也没有在群里争辩。他打开项目文档,重新列出当晚所有必须有人确认的事项。

“一,谁批准覆盖安装;二,谁保留当前版本;三,谁负责失败后的回滚;四,客户复测由谁在场确认。”

他把每一项后面都留出姓名和时间栏,又补了一句:“本人仅负责提供技术建议,不承担未授权操作及结果确认。”

沈岚很快回复:“不必把简单工作复杂化,今晚先恢复服务。”

林舟盯着那句话,直接问:“请补充恢复服务的主责人,不能用‘项目组’代替个人。”

这一次,群里出现了几条新消息。负责测试的同事问是否需要保留当前包,唐禾则问覆盖安装是不是暂缓。

沈岚没有回答,只私聊林舟:“你这是故意把事情闹大?”

“我只是把你刚才说的辅助写成可执行的边界。”

“客户今晚要结果。”

“那就让主责人确认结果。”

沈岚隔了很久,才在群里发出一句:“林舟协助处理,具体安排由现场自行判断。”

主责人一栏依旧空着。

林舟把自己的交接清单发进群里,附上当前版本编号、未复现的条件和已知风险。他没有删掉任何一条,也没有把“建议”改成“确认”。

唐禾看完后问:“师傅,那我先把演示包和生产包各自封存吗?”

“先封存,拍照记录校验值。没有新的书面负责人,不覆盖生产包。”

群里沉默了十几秒。原本一句“今晚赶完”被拆成了四个必须有人承担的选择。

沈岚最终只回了一个字:“收到。”

林舟合上电脑,正准备把箱子拉到门边,客户群又弹出消息:“今晚修复负责人仍写着林舟,请确认是否按原计划执行。”

许曼紧接着发来一句:“我们仓库今晚有真实订单,不接受没有责任人的覆盖操作。”

林舟的手停在行李箱拉杆上。他知道,自己想安静离开已经不可能了。

他在客户群里回复:“当前版本尚未完成生产条件验证,今晚如需操作,请先确认主责人与回滚责任。”

沈岚没有立刻出现。屏幕上,那个一直被默认承担后果的名字,第一次没有替所有空白兜底。

林舟把行李箱推回桌边,却没有打开。他先登录内部系统,提交了辞职申请,离职理由只写了一句:个人职业安排调整。

申请提交成功的提示刚跳出来,沈岚的私聊便跟着进来:“你现在提交辞职,是在项目最紧张的时候给公司施压?”

“不是施压,是停止把未授权的责任算在我名下。”

“等这次交付结束再谈。”

“我已经谈过了。”林舟把手机扣在桌上,打开任务状态页。

他有权限查看项目历史记录,便把关键时间一条条截取下来:周五十六点十二分,修复包标记为完成;十七点四十三分,测试环境出现断线重连;

十八点零七分,系统留下重复确认告警。

最早那条完成记录,比最后一次失败测试早了整整一个小时五十五分钟。

林舟把截图发进项目群,没有附带评价,只写:“请确认完成标记对应的环境与版本。”

沈岚马上打电话过来:“你把内部状态发客户群做什么?”

“客户群里有人要求覆盖安装,我需要他们知道当前版本不能直接替换。”

“那是测试记录,不代表生产问题。”

“所以更应该确认,不该用‘已经完成’代替验证。”

沈岚压低声音:“你先把补丁覆盖上,今晚把结果做出来,其他事情明天再说。”

林舟看着屏幕右下角的时间,回复:“没有主责人,没有回滚确认,不安装。”

不到十分钟,沈岚便让人把一份新的安装包发到群里,文件名后面加着“最终版”三个字。

唐禾问:“这个包是刚打的吗?校验值和任务页上的不一样。”

沈岚直接说:“先按流程执行,别纠结细节。”

客户仓库那边突然发来一段视频。画面里,传送带上的两个包裹被连续扫过一次,系统却弹出两条相同的确认提示。

视频拍摄时间显示为当天十七点四十三分,正好对应任务页里的断线重连记录。

许曼随后写道:“这不是演示环境。我们刚才用真实订单复测,重复确认已经造成一箱货被挂起。”

群里瞬间安静下来。

沈岚问:“许主管,能不能先恢复开仓?我们工程师今晚会处理。”

“可以处理,但请先说明谁批准覆盖现有版本。”许曼没有退让,“仓库留存的原始包和失败视频都在,不能让现场记录被新包覆盖。”

林舟把客户发来的视频下载到项目存档,并回复:“建议暂停覆盖安装,保留现有版本,先复现断线重连后的扫码流程。”

沈岚私聊他:“你是不是非要证明考评写错了?”

“我在证明故障发生过。考评是否写错,由事实决定。”

她沉默片刻,又问:“你到底想要什么?”

“让实际完成状态和记录一致,让每个操作都有确认人。”

许曼在客户群里发出正式要求:“供应商请在今晚九点前解释完成标记与失败测试的时间关系,并确认后续版本不会覆盖原始证据。”

这句话一落,原本催促开仓的客户改成了要求解释。

陈岳终于在群里出现。他是交付总监,只问了一句:“谁提交了完成状态?”

沈岚没有马上回答,先让测试同事核对任务记录。

测试同事很快回复:“状态由项目经理账号提交,具体操作人需要查日志。”

林舟没有接着指向沈岚。他把自己此前发出的风险提醒也找了出来:断线重连后会重复确认,需完成连续扫码和异常恢复测试。

那封邮件发出时间是周四上午,收件人包括沈岚和陈岳。

沈岚看见截图后说:“提醒不等于结论,你当时也没有说必须延期。”

“我写的是‘未完成异常恢复验证,不建议提交生产完成’。”

“这只是你的技术意见。”

“所以我现在只要求把意见和决定分开。”

许曼很快回复:“客户保留当前版本,暂停供应商覆盖安装。请在现场会议前不要修改仓库设备。”

林舟看向自己的行李箱,知道今晚已经没有悄悄离场的可能。他把洗漱包从箱里拿出来,换上工装,走向仓库。

唐禾在门口追上他:“师傅,沈经理让我跟你一起做补丁。”

“先不做补丁,去把现场设备的版本和日志备份好。”

“她说今晚必须修复。”

“现在客户要求保留现状。你可以听她的,也可以把这句话写进操作记录。”

唐禾握着硬盘,脸色发白:“写了会不会影响考评?”

林舟停下脚步:“写了,也许影响这一次;不写,才可能影响你以后所有考评。”

仓库里,许曼已经把故障设备隔离出来。她没有催林舟修复,只把一张纸递给他:“这是我们留存的失败时间和订单编号。”

林舟接过纸,发现其中一笔订单正对应任务状态里那次被标记为完成后的测试。

许曼说:“今晚不恢复也可以,但明早请你们给出能对得上的解释。”

“我会把我确认过的部分写清楚。”

“那就够了,至少不会再有人拿一句‘已经完成’让我们承担结果。”

凌晨前,客户群里形成了新的决定:覆盖安装暂停,现场原版本封存,周六上午召开交付核验会。

沈岚没有再催林舟通宵。她只发来一条消息:“辞职申请先撤回,项目结束后再谈。”

林舟看了几秒,回复:“申请已提交,事实核验不以撤回为条件。”

屏幕另一端再无回应。可他知道,真正需要被解释的已经不是一个补丁,而是谁把未完成写成了完成。

周六上午,交付核验会在客户仓库的小会议室举行。投影上停着昨晚封存的原版本,林舟的辞职申请则躺在公司人事系统里,状态显示为待审批。

陈岳坐在主位,沈岚带着项目资料,唐禾抱着那只存有日志的硬盘。许曼没有坐供应商一侧,而是把失败视频放在客户屏幕上循环播放。

陈岳先开口:“事情闹到客户正式暂停覆盖,对双方都不好。林舟,你撤回辞职,我可以重新考虑你的评级。”

林舟没有看沈岚:“先谈记录,再谈我的去留。”

陈岳皱了皱眉:“你也不必把所有问题都推到一个D上。”

“我没有推。”林舟打开绩效附件,“我要求核对的是,附件把修复写成完成,而实际异常测试发生在之后。”

沈岚翻开文件:“完成指的是演示环境通过,不等于所有场景都已经覆盖。”

许曼抬头:“但附件标题写的是生产修复完成,客户也因此被通知可以安排复测。”

会议室里短暂安静。陈岳把那页文件放大,问沈岚:“这个表是谁确认的?”

“项目组汇总,我审核过格式。”

“状态内容呢?”

沈岚没有立刻回答,只说:“当时大家判断可以继续推进。”

林舟点开自己的风险邮件:“我在周四已经写明断线重连未验证,并建议不要提交生产完成。陈总,你在收件人里。”

陈岳让助理打开邮件原件。发件时间、附件版本和收件人逐项显示出来,最后一行确实写着:请完成异常恢复测试后再确认上线。

沈岚的手指压住桌面:“这只能证明林舟提出过建议,不能证明最终上线由我决定。”

“所以我没有说是你决定。”林舟看向投影,“我请你们确认谁把状态从未完成改成了完成。”

许曼把仓库记录推到桌中央:“这里有客户收到完成通知的时间,早于我们最后一次失败测试。请供应商解释这两个时间为什么能同时成立。”

陈岳沉下脸,让技术人员调取后台操作日志。

十几秒后,日志显示完成状态由项目经理账号提交,备注栏写着“演示流程通过,生产待复核”。

沈岚立即说:“备注已经写了待复核,不能只看状态栏。”

林舟接过话:“如果待复核,为什么对客户的通知写成修复完成?为什么绩效附件没有保留待复核三个字?”

没有人回答。

陈岳揉了揉眉心:“先做一个有限纠正。把对外状态改为待复核,撤回对林舟的单独归责,后续责任等日志核完再定。”

林舟看着他:“我接受这三项记录,但不以撤回辞职为交换。”

陈岳沉默片刻,点头:“可以。评级暂缓生效,奖金不先清零。”

那张D没有被立刻撕掉,却暂时失去了扣掉两万四千元绩效奖金的效力。

沈岚的脸色变了变,转向唐禾:“你说一下周五交接,林舟是不是确认过上线包?”

唐禾抱紧硬盘,喉结动了一下,才说:“师傅看过。”

“看过什么?”林舟问。

唐禾避开他的目光:“看过安装包,也看过操作步骤。”

沈岚追问:“他有没有说可以上线?”

唐禾沉默了几秒:“他说,按交接单执行。”

林舟伸手:“把交接单给我。”

唐禾没有立即递出,而是先看了沈岚一眼。这个动作很轻,却让会议室里的人都看见了。

陈岳说:“拿出来,按原件核验。”

唐禾从硬盘夹层里取出一张扫描件。《生产修复交接确认单》的末尾,赫然是林舟的电子签名,签署时间为周五十六点二十六分。

沈岚立刻说:“签名和时间都在,林舟确实确认过交接。”