财务把年终分配表投上屏幕时,会议室里静了几秒。林舒没有看周砚,只把一个薄信封推到他手边。
信封里是一张奖金通知,税前五千元。周砚翻到背面,白纸透着灯光,除了公司公章,再没有第二行字。
财务主管清了清嗓子:“贺总的六百万元分红已经按持股安排提交银行,其他股东依约暂缓领取,预计今天到账。”
贺驰靠在椅背上笑了笑:“今年回款不容易,辛苦大家。明年那个驻场项目拿下来,我请全公司去团建。”
掌声稀稀落落地响起。周砚低头打开工资通知,月薪仍是五年前定下的数字,调薪栏没有记录,其他奖励栏也是空白。
创业第二年,公司现金流紧张,林舒让他先按最低档领薪。后来每次续约,她都说等业务稳定再补,五年过去,等来的只有这五千元。
桌边还放着一份新的劳动合同。林舒用指尖点了点签名处:“你的续约稿法务已经改好了,今天一起签,省得年后再走流程。”
周砚刚翻开第一页,手机就在桌面震动。来电显示是恒远项目的客户负责人赵总,他开了免提。
赵总开门见山:“明年的驻场名单我收到了,还是周砚负责,对吧?今晚系统切换,下个月的排班也请他一并确认。”
周砚尚未开口,贺驰已经隔着桌子答道:“没问题,周工一直带这个项目,明年肯定也是他。确认单我替他签过了。”
林舒朝周砚递来一个眼色,又把排班表推近,示意他别在年终会上扫兴。
周砚按住电脑触控板,停掉了正要发送的邮件:“本期合同内的切换我负责。明年的驻场安排,我没有确认。”
贺驰脸上的笑僵了一瞬:“你合同不是续了吗?这种内部流程,没必要拿到客户面前说。”
“还没续。”周砚把摊开的续约稿合上,“我的劳动合同还有四十五天到期,这份新合同我今天第一次看到。”
电话那端沉默片刻。赵总的语气随即严肃起来:“那贺总代签的负责人确认单,我们不能收。请周工本人在今天下班前明确答复,否则明年驻场方案退回重报。”
林舒立刻接话:“赵总,名单只是提前沟通,周砚不会影响项目。我们先把邮件补齐,稍后给您正式回复。”
电话挂断后,贺驰把签字笔扔回桌面:“不就是续个约吗?当着客户说这些,让人以为公司内部出了问题。”
周砚拿起那张奖金通知:“公司内部有没有问题,不是由我说不说决定的。你可以拿六百万分红,我拿五千元奖金,这是股权安排,我认。”
他把工资通知放在旁边,指向连续五年未变的薪资数字:“但你们不能一边把我的额外投入算成夫妻之间的帮忙,一边替我承诺下一年的劳动。”
林舒终于抬眼:“分红是按股权来的,你当初又没要股份。现在项目正在续签期,你非要把奖金和续约绑在一起吗?”
“我没有绑。”周砚说,“我只是不再把不同的事情混成一句‘以后再说’。”
林舒压低声音:“夫妻之间,有必要算这么清楚吗?”
周砚看了她几秒,把续约稿推回桌子中央:“正因为过去没算清楚,客户才会收到一张不是我签的确认单。”
他转向财务和项目组:“今天的邮件分成两部分。本期合同内的切换、故障支持和交付责任照常执行;下期驻场负责人尚未确认,不得沿用我的名字排班。”
贺驰皱眉:“这么写等于主动给客户递刀。他要是借机压价,责任谁担?”
“谁作出的下期承诺,谁解释。”周砚打开邮件,“现合同还有多少工作,我一项不少地完成。没有生效的合同,不该先占用任何人的时间。”
林舒伸手挡住屏幕:“先发一封不提劳动合同的,稳住客户。具体怎么安排,我们晚上回家谈。”
周砚没有和她争夺电脑,只将客户发来的确认单投到屏幕上。负责人签名处写着贺驰的名字,备注却是“代周砚确认全年驻场”。
“可以不提我的劳动合同。”他说,“但必须写清本期交付不等于下期驻场承诺,也必须撤回这张代签单。”
项目主管唐敏坐在角落,悄悄合上了原先按十二个月制作的排班表:“如果周总不确认,我先把明年的夜间值守删掉?”
“不是只删我的名字。”周砚看向她,“没有确定负责人和资源前,整份表都不能作为已承诺方案发出去。”
唐敏怔了怔。过去三年,商务把日期报给客户,她便默认周砚会补上人手,从没问过资源是否真正获批。
林舒看了一眼时间,终于收回手:“按他说的发。但措辞柔和一点,别让客户觉得我们推卸责任。”
周砚当场拟好邮件,逐条列明当晚切换由现团队保障,次年驻场需另行确认人员、工时与服务范围。
最后附上请求:原代签单作废,后续须由实际负责人本人确认。
邮件发出不到十分钟,赵总回复了全体收件人:“本期履约与下期采购分开处理。贺驰代签的负责人确认单拒收,请贵司重新提交具备本人授权的方案。”
那封回复像一道界线,清楚地落在会议桌中央。贺驰盯着“拒收”两个字,脸色越来越难看。
他正要开口,唐敏的电话忽然响了。她听了几句,猛地站起身:“恒远切换环境出现故障,新接口调用全部超时,客户要求半小时内到场。”
周砚迅速收起电脑:“让值班同事停止重复重启,保留日志和当前版本。我现在过去。”
林舒也站了起来,顺手从桌边拿走周砚的车钥匙:“坐我的车,路上把续约邮件的补救方案谈清楚。”
周砚伸手接钥匙,她却已经攥进掌心:“别在这个时候闹脾气。故障处理完,我们还得一起见赵总。”
“我没有闹脾气。”周砚拿出手机,给同组工程师发了消息,“你们先走,我搭小陈的车。”
林舒停在门口:“周砚,你连一辆车都要和我分这么清?”
“车是共同财产,钥匙现在在你手里。”他平静地说,“我只是在选择一种不会耽误现场的出发方式。”
小陈很快从楼下回了电话。周砚拎起设备包,经过那份未签的续约稿时没有停步。
走出会议室前,他回头对唐敏说:“把客户回复和今晚故障工单放进同一个项目目录。本期的事我们负责到底,下期的承诺,从今天起谁也不能替别人答应。”
小陈的车刚停进恒远园区,周砚便收到监控告警。超时范围已从新接口扩散到订单查询,客服队列里压着两百多条催问。
他边走边给值班组下指令:“旧链路先保留,不要整库回滚。切断新接口的自动重试,把请求导向备用节点。”
唐敏从林舒车上下来,快步追进机房:“客户说十点前不恢复,就按重大事故追责。贺总让我先准备道歉说明。”
“先恢复服务。”周砚把电脑接上隔离终端,“事故原因没确认前,不替任何人认定责任。”
版本记录显示,下午六点十二分有人临时替换了接口配置。变更单没有技术评估,备注栏只写着“商务确认,配合展示”。
周砚指向时间戳:“谁要求今天加这个展示接口?”
唐敏翻开工作群,脸色慢慢变了:“贺总下午发的。他说客户高层今晚会看新功能,让我们直接接正式数据。”
“负责修改的人呢?”
“小宋。他以为方案已经评审过,因为贺总在群里说您知情。”
周砚没有继续追问,先调出上一版配置,将新增流量隔离到测试节点。十五分钟后,订单查询恢复,积压请求开始下降。
赵总带着运维经理走进机房,第一句话便是:“周工,这次又是你们交付组擅自改生产配置?”
“配置确实由我方人员修改,但指令来源和审批过程还没核实完。”周砚让出屏幕,“服务已经恢复,请先确认业务数据是否完整。”
运维经理核对了几笔订单,点头说没有丢单。赵总的神情却没松下来:“恢复只是底线,责任说明今晚必须给。”
林舒这时才赶到控制室:“赵总,影响我们承担。周砚会代表公司向您解释,也会把后续整改做好。”
跟在她身后的贺驰把一份打印稿递来:“道歉函我已经写好了,原因就定成交付组操作不规范。周砚签字,大家都省时间。”
周砚扫过纸面,没有接:“新接口是什么时候向客户承诺的?”
贺驰皱起眉:“现在不是追究内部沟通的时候。你是交付负责人,系统出了事,本来就该先担起来。”
“我会承担交付范围内的责任。”周砚调出商务群截图,“但这项功能昨天还在试验,今天下午被你作为现成能力安排进生产。承诺时间、变更来源,需要你本人说明。”
赵总看向贺驰:“你上午告诉我,这个接口已经稳定运行了两个月。”
“我是按研发给的进度判断。”贺驰笑得有些勉强,“技术术语我不可能全懂,内部谁理解错了,可以回去再查。”
周砚把版本记录投到墙上:“两个月前上线的是模拟查询,不接正式订单。今天出故障的是自动写入,两者不是同一项能力。”
他翻出三天前的评审记录。自动写入功能后面清楚标注着“未完成压力测试,禁止连接生产环境”。
赵总的声音冷了下来:“那你为什么对我说可以今晚展示?”
贺驰把目光转向林舒:“当时窗口难得,我是为了拿下明年的合同。做业务总不能等所有条件百分之百成熟。”
“不成熟可以报试验计划,不能报成现成能力。”周砚说,“请你现在到会议室说明加项时间,修改配置的小宋和项目主管也参加。”
贺驰沉下脸:“你让我像犯人一样接受盘问?”
“客户正在追责。”周砚合上电脑,“如果你不到场,道歉函里只能写商务指令来源待核实。你来,至少能把事实说完整。”
赵总直接转身:“会议室见。今天谁承诺、谁执行、谁审批,一项项讲清楚。”
十分钟后,小宋把收到指令的时间、操作步骤和缺失审批逐一说明。唐敏提交工单记录,承认自己看见商务确认后,没有再向周砚核验。
轮到贺驰时,他起初仍强调抢占窗口的重要性。赵总打断他:“我问的是,你知不知道这项功能没经过压力测试?”
贺驰停了两秒:“知道还差最后一次验证,但我以为只是流程。”
周砚没有接过这句话替他圆场,只把评审记录推到赵总面前。记录末尾写着三种可能后果,其中第一项正是接口重试导致主链路拥堵。
运维经理看完后说:“故障与记录里的风险一致。不能再把原因写成交付组擅自操作,临时加项本身未经技术评估。”
赵总当场撤回了对交付组的单方追责要求:“服务中断仍由你们公司承担整改,但责任说明必须区分商务承诺、变更审批和现场操作。”
贺驰把原先准备的道歉函压在文件夹下,脸色铁青。林舒几次想开口,都被赵总要求先完成纪要。
周砚在会议纪要中写明:新增功能由贺驰于当日下午要求接入;唐敏未复核审批状态;小宋执行了未经授权的生产变更;周砚在故障发生后完成隔离与恢复。
他没有删掉交付组的失误,也没有多加一句对贺驰的评价。每项责任后面都跟着整改动作和完成期限。
赵总审完纪要,又提出下一项要求:“你们既然还没确定明年负责人,就在一周内做一次接班演练。不能只有周砚会恢复,我们才考虑续签。”
唐敏下意识看向周砚。周砚问:“演练在隔离环境进行,还是直接结合下次上线?”
“隔离环境。”赵总说,“替补负责人独立操作,你只能在安全节点介入。我们要看到真实能力,不接受临场代做。”
贺驰立刻答应:“可以,唐敏一直跟着项目,照手册做不会有问题。”
唐敏嘴唇动了动,最终只记下日期。周砚却注意到,她在“独立操作”四个字下面连画了两道线。
会议结束已近凌晨。小宋留在现场观察数据,周砚确认备用节点稳定后,才收起设备。
停车场里,林舒让唐敏先坐小陈的车,自己把周砚拦在车门旁:“你坐我的车,我们谈谈。”
回程驶上高架后,她握着方向盘,语气压得很低:“今晚一定要把贺驰叫到客户面前吗?他不懂技术,你让他回答那些问题,就是不给他留面子。”
周砚看着窗外退后的路灯:“他不懂技术,却替技术团队承诺上线时间。出了故障,又准备让我一个人签道歉函。”
“他是为了拿订单。”
“拿订单不是问题。”周砚转头看她,“为什么他报错了能力和时间,你允许我背错?”
林舒握方向盘的手紧了紧,没有回答。车厢里只剩导航提示下一出口的声音。
过了许久,她才说:“贺驰有他的价值,你也有你的价值。公司是我们两个人五年的心血,没必要因为一次奖金、一次沟通失误就闹成这样。”
“今晚不是沟通失误。”周砚说。
林舒踩下刹车,车在红灯前停稳:“可事情已经解决了,你还想怎么样?”
周砚平静地说:“从今天开始,未经评估的承诺,我不再兜底。”
绿灯亮起,林舒没有再接话。她把车开得很快,仿佛只要赶回家,这场争执就能和过去无数次一样,被第二天的工作覆盖。
周砚低头打开客户发来的演练要求,将操作手册、权限清单和异常决策表分别发给唐敏。最后一条消息只有一句:“你主持,我按约定只在安全节点介入。”
三天后,恒远的隔离环境开放。唐敏提前半小时到场,桌上摆着她打印的操作手册,每一页都贴满了不同颜色的标签。
周砚检查完安全边界,把主控位置让给她:“今天所有指令由你下。我只在数据越界、环境失控或客户明确要求时介入。”
唐敏点头:“我按手册演练过两遍。部署、监控、回退都能做,只要环境和文档一致。”
客户运维经理坐在观察席,计时器归零后,唐敏开始导入模拟订单。前二十分钟顺利,直到系统要求调用结算服务,她才发现自己的账号没有授权。
她停下操作:“权限清单里写着项目主管可申请临时令牌,但系统里没有入口。”
恒远运维查了后台:“令牌申请只对贵司交付负责人开放。之前每次都是周砚直接提交,所以没给其他岗位配置。”
唐敏看向周砚,又很快收回目光:“我先按异常流程走。请公司授权人批准权限。”
她拨通林舒的电话,林舒正在外地见客户,只问了一句:“周砚不是在现场吗?让他先批,别耽误演练。”
“规则要求替补负责人独立操作。”唐敏提醒,“如果仍由周总审批,这一项不能算我通过。”
林舒沉默几秒:“那找贺驰,他是股东,也负责这个客户。”
电话转给贺驰后,他显得很不耐烦:“一个测试令牌而已,让周砚点一下怎么了?你们别把简单的事情复杂化。”
唐敏把通话开了免提:“后台只认交付负责人账号。您如果要求我接班,需要先完成权限委托。”
“我哪知道你们技术权限怎么配?”贺驰说,“培训没做好,就让周砚继续教。客户等着看结果,不是来看你们走流程。”
观察席上的运维经理抬起头:“权限不是流程装饰。正式环境出故障时,如果替补负责人连恢复令牌都拿不到,演练就没有意义。”
贺驰被噎了一下,转而让行政临时出具授权。行政又要求总经理审批,林舒正在会议中,十分钟后才回了一个同意。
令牌终于生成,计时器已经超出计划十二分钟。唐敏没有抱怨,继续执行切换,却在下一步遇到第二个问题。
操作手册要求先关闭旧版写入,再开启新版验证。可商务补充协议里承诺“切换期间订单写入不得中断一秒”。
唐敏翻到另一份需求单:“这里又要求新版未完成一百笔验证前,旧版不能关闭。两项同时执行,会造成重复写入。”
客户运维经理确认文件都盖着公司的章:“一个承诺零中断,一个要求新版完成一百笔验证前旧版不能关闭。现有手册要求先关旧版,直接并行又会重复写入。你们准备怎么实现?”
唐敏额头冒出细汗:“现有架构做不到。要么增加中间队列,要么允许三分钟只读窗口。”
贺驰不知何时赶到了现场。他推门进来便说:“以前周砚都能上线,怎么换个人就做不到?这说明培训还是有问题。”
唐敏攥着鼠标,第一次当面打断他:“不是培训问题。两份互相冲突的承诺都由商务发出,手册里没有凭空消除冲突的步骤。”
贺驰脸色一沉:“你是在推责任?”
“我在说明为什么演练中断。”唐敏把两份文件并排放到桌上,“过去周总每次临时协调客户暂停部分请求,再让研发补脚本,所以表面上没有中断。那不是手册操作,是额外决策。”
客户运维经理转向周砚:“她说的属实吗?”
“属实。”周砚回答,“这些临时协调没有写进岗位说明,也没有对应授权。以前我用个人确认承担风险,不代表替补人员天然具备同样条件。”
贺驰冷笑:“说到底,还是你没把经验教全。”
唐敏把自己的权限申请记录投到屏幕上:“经验可以教,授权不能靠教。”
观察席上没人接话。
客户要求演练继续,唐敏选择加入临时队列方案。她按步骤部署后,模拟流量突然堆积,告警提示缓存即将超过安全阈值。
她的手停在回退按钮上:“手册写的是阈值百分之八十回退,现在已经七十八,但队列仍在增长。我申请执行恢复。”
周砚没有接管键盘:“你是主持人,决定由你下。”
唐敏盯着曲线两秒:“停止新版写入,保留日志,回退旧链路。”
回退过程中,一个残留进程没有退出,持续向缓存写入。数值越过百分之八十五,进入预设安全节点。
周砚这才上前:“我介入恢复操作。你继续报步骤,不要离开主控位。”
他依照唐敏的指令终止残留进程,并补上一条环境级权限命令。唐敏完成旧链路恢复,数据最终停在安全线以下。
客户运维经理记录结果:“恢复有效,但替补负责人缺少环境级权限,且现有方案无法同时满足两项商务承诺。本次接班演练不通过。”
唐敏摘下耳机,手指仍有些发抖,却没有把位置让给周砚:“请在纪要里注明,我申请的权限未在演练前完成,失败点不是不会操作。”
“可以。”客户运维经理说,“你们明天提交可执行方案,明确是缩减承诺,还是增加资源。不能再用一个人的临时处理代替正式能力。”
贺驰靠着桌边,语气缓和了些:“事情没这么严重。把一百笔验证取消,直接上线,就能满足零中断。客户没必要知道每个测试步骤。”
唐敏猛地抬头:“取消验证,错误数据可能直接进入结算。那不是解决冲突,是把风险转给客户。”
贺驰反问:“隔离环境的数据都跑过了,还能有什么问题?做项目要看结果,不能永远卡在最保守的标准上。”
周砚收起恢复日志:“隔离环境刚刚发生缓存失控,已经证明方案不稳定。验证环节不能取消。”
“你当然可以说不能。”贺驰盯着他,“反正合同快到期了,项目成不成,好像都和你没关系。”
“现合同期内,风险和我有关。”周砚把日志副本交给客户,“所以我不会签署取消验证的方案,也不会让团队用真实业务证明自己能不能接班。”
晚间复盘改在恒远的小会议室进行。唐敏主动坐到客户一侧,把白板分成承诺、资源、风险三栏。
她先写下两个选项:一是修改零中断承诺,取得三分钟只读窗口;二是增加中间队列、双人值守和环境级授权,重新安排验证。
林舒通过视频接入会议。她看完费用估算,眉头紧锁:“增加资源会吃掉大半利润。能不能沿用过去的方式,由周砚在关键节点远程支持?”
唐敏没有再看周砚,直接回答:“那不叫替补能力,仍然是由他承担决策。客户这次验收的正是团队能否脱离个人救场。”
贺驰敲了敲桌面:“客户只关心准时上线。只要结果没出错,谁会追问中间少了一次验证?”
客户运维经理合上记录本:“我们会追问。你们若自行取消验证,年度续签评估立即终止。”
林舒的脸色变了:“赵总之前没有说得这么严重。”
周砚把两份互相冲突的商务文件发进会议群。
会议最终保留两套风险方案,要求林舒次日上午给出选择。唐敏主动申请参加整改会议,并要求商务人员逐项说明承诺来源。
散会时,贺驰仍坚持增加资源不划算。他把文件夹夹在腋下,先一步离开,没有再提让周砚替他向客户道歉。
唐敏关掉投影,轻声说:“以前我以为你半夜上线,是负责人动作快。今天才知道,很多事根本没有分配给岗位,只是默认你会补。”
周砚把主控账号退出:“现在知道还不晚。明天你只需要说清团队缺什么,不必证明你能一个人扛下所有东西。”
走出园区时已过十点,林舒发来一条消息,让他回家后继续讨论续约。周砚没有回复承诺,只将明日整改会议的材料整理好。
客户给出的期限就在次日。缩减承诺,意味着贺驰必须亲口收回卖出去的话;增加资源,则意味着林舒必须承认过去的利润建立在周砚无偿补位之上。
第二天上午,整改会议开始前,唐敏把昨晚的失败路径重新画在白板上。权限缺口、合同冲突和缓存失控被分成三条线,不再笼统归为培训不足。
周砚没有替她发言,只把演练日志接入投影:“我们先向各位重现失败过程,再给可执行的替代方案。今天不在真实业务上试错。”
赵总看完日志,指向两份相互冲突的承诺:“先说结论。既要零中断,又要新版完成一百笔验证前保留旧版,你们准备怎么避免重复写入?”
热门跟贴