精彩小说尽在丛林文学网! 手机版

您的位置 : 丛林文学网 > 男生生活 > 项目做完我被踢出群,验收那天甲方点名只要我签字_精选章节

精选章节

更新时间:2026-11-05 18:05:21

1 导语

项目上线那天,我在会议室熬了整宿,改完最后一个接口。

庆功宴没叫我。

第二天我发现,项目群里已经没有我了,署名栏上是我带了三年的徒弟。

我去问,领导拍拍我的肩:“老陈,给你记个内部贡献。”

同一天晚上,我前妻把离婚协议放在餐桌上。

“你没什么本事,”她说,“三年了,你连个署名都保不住。”

三个月后,甲方来验收。

三十七项指标,三十三项对不上。

甲方技术总监把验收表推回来,只说了一句:

“让写这段代码的人来签。”

她叫江晚。

三年前,她给过我一份 offer,我没去。

2 上线前夜

凌晨三点四十,整层楼只剩会议室这一盏灯。

外面的工位全黑着,只有一排显示器的待机灯,像一排没闭上的眼睛。白板上还留着昨天下午的倒计时,“距上线 14 小时”,字被谁擦了一半,剩下的笔画在灯下泛白。

我面前摊着三样东西:压测报告、渠道方的对接文档、一杯已经凉透的美式。

压测报告一共三十七页。三十七项指标,三十六项绿,一项红。

红的那一项叫“回调幂等”。

说白了就是一件事:用户付了一次钱,系统不能扣他两次。

渠道方那边的机制是,支付结果会重复推送。推一次,两次,最多三次。他们不管你收没收着,他们只管推。我们这边如果没有去重,每推一次,就落一笔账。

上一次试运行,三个用户被扣了两次钱。

其中一个把银行短信的截图发到了投诉平台,图上时间、金额、商户号全在。那条客诉单最后落在我桌上,编号尾号 4471。

我把那行代码翻出来,光标停在判断条件上。

这段逻辑我写过三版。第一版是原始设计,加了一张请求指纹表。第二版被砍了——理由是“表太多,影响性能”,砍的人当时说,这个概率很低,先跑起来再说。第三版就是现在这版,表没了,只剩一句注释:

“重复回调由渠道方保证不重复。”

渠道方从来没有保证过。

我把鼠标放下,往后靠了靠,椅背发出很轻的一声响。

这三年,我在这家公司做过四个项目。第一个项目的署名是“技术组”,第二个是“技术中心”,第三个开始写人名了,写的是赵子航。

赵子航是我带的。他从实习进来,第一版代码是我一行一行给他改的。

我把那段逻辑重写了一遍,加了去重表,加了一个二百毫秒的缓存返回。写完在注释里敲了七个字:

第三次回调必须在 200 毫秒内返回。

然后另起一行,又敲了一句:

否则渠道方会重推。

保存。

三点五十,我给赵子航发消息:

“这段明天上线前再过一遍,别动幂等那段。”

他没回。

他的头像是他自己,戴着一顶棒球帽,笑得很开。

早上八点二十,切流。

我坐在会议室角落,看着监控面板上的曲线往上抬,抬到第一格,第二格,稳住。

九点,群里开始刷红包。

红包一个接一个,标题都是同一句:“攻坚必胜”。

王振发了三个,赵子航发了两个,运营那边发了一串表情包。

我在输入框里打了一行字:

“上线后盯一下回调,别动幂等那段。”

点了发送。

屏幕上弹出一行灰字:

你已不在该群聊。

我盯着那行字看了几秒,又点了一次发送。

还是那行字。

我在这个项目群里待了二百一十七天。最后一条消息是三天前,我发的,内容是压测报告的第八版。

我把手机扣在桌上。屏幕的光照着摊开的压测报告。

九点零六分,监控面板上最后那一项也变绿了。

三十七项,全绿。

我盯着那个绿色看了很久,久到保洁阿姨推门进来收垃圾桶。

她看了看我,看了看屏幕,问了一句:“小陈,你还不走啊。”

我说,马上。

她走的时候把门带上了,门轴响了一声。

整层楼开始有人说话了,笑声从走廊那头传过来。

我坐着没动。

那盏会议室的灯,我最后关的。

3 记个内部贡献

九点半,技术中心开早会。

会议室里坐了三十多个人,前排是各组组长,后排是刚来的应届生。投影亮着,第一页 PPT 上写着“区域清算平台一期上线总结”。

那份 PPT 的模板是我做的。去年做另一个项目时熬了两个晚上,配色、字体、页码位置都是我一页一页调的。后来它成了技术中心的标准模板,谁做汇报都用它。

王振站在投影旁边,红光满面。

“这次上线,是我们技术中心一次硬仗。”他说,“连续两个月,整个链路都是子航扛下来的。”

他抬手,指向第一排。

“特别表扬赵子航。”

赵子航站起来,鞠了个躬,鞠得有点深。

“谢谢王总,谢谢团队。”

掌声响起来,从前面往后传。

我坐在第三排靠边的位置。前面有根柱子,投影的光打不到我脸上,也打不到我身上。

我跟着鼓了几下掌,手掌合在一起,声音混在别人的声音里。

“子航才二十六。”王振继续说,“这就是我们讲的‘年轻化’。”

散会的时候,人往外走,椅子腿刮着地板。

王振在走廊拦住我,手掌拍在我肩上,力道很大,一下、两下、三下。

“老陈,辛苦了。”他说。

“应该的。”

“给你记个内部贡献。”

“记在哪一栏?”

他笑了,笑得像在结算一笔早就对好的账:“年底考核,我给你打个优。”

“哪个优?”

“最优。”他往前走了两步,又回头,“老陈,你别钻牛角尖。公司现在讲的是团队作战。一个人再能干,也得有组织。”

他走了,皮鞋声在走廊里一路远去,最后被电梯的提示音盖住。

我回工位。

工位上少了一样东西。

显示器没了。

桌面上只剩键盘、鼠标,和一只印着公司 logo 的马克杯,杯底有一圈茶渍。

我问行政。行政是个刚毕业的女孩,说话时手一直在鼠标上。

“统一换新。”她说,“先紧着有项目的人。”

“我不是有项目的人?”

她没接这句,低头点开一个表格。

赵子航从旁边走过来,手插在卫衣口袋里。

“陈哥。”他说,“我这个双屏,先用你这个顶一下。我那台旧的你先用。”

我说行。

他愣了一下,大概没料到我答应得这么快。

“那我搬了啊。”

“搬吧。”

他把显示器抱走的时候,屏幕右下角那道划痕朝着我。

两年前搬工位,是我自己磕的。当时我还心疼了半天。

我把旧显示器接上,画面偏黄,看得出用了很久。

开机,登录。

打开邮箱,在搜索框里敲了三个字:diff。

回车。

一百四十七封。

最早的一封在三年前的春天,标题是 `diff-0307`,收件人是我自己,附件是一个三百多行的 patch。

那天开始给自己发备份,只因为王振在一次酒桌上说过一句话。

年终聚餐,包厢里烟味很重。他端着杯子,脸红着,说话时筷子在半空里点。

“公司电脑是公司的。”他说,“人走了,东西留下。”

一桌人笑。

我也笑了,端起杯子跟他碰了一下。

回去以后,我把自己当天的改动打了个包,发到了自己邮箱。

从那天起,一天一封。

一千二百多天,一天没断。

4 家里的行李箱

晚上九点四十到家。

楼道的声控灯坏了一半,我跺了两下脚,灯才亮。

钥匙插进锁孔的时候,我听见屋里有声音,是拉链,来回拉的那种声音。

门开了。

玄关摆着两双鞋。

一双是我的旧运动鞋,鞋头磨破了,鞋带有一根是后配的,颜色不一样。

另一双不是我的。

四十四码,黑色皮鞋,鞋面擦得很亮,鞋跟外侧有一点磨痕。

我换鞋的时候,把那双皮鞋往边上挪了挪,给它腾出位置。

客厅里摊着两个行李箱。

周妍蹲在地上叠衣服。

她做行政出身,连收拾行李都有流程:外套在下,内衣在上,毛巾卷成条塞进缝里。每一层都压平,压得没有一丝褶。

“回来了。”她说,没抬头。

“这是干什么。”

“你自己看。”

茶几上放着一份文件,四页,装订过。

我拿起来。

离婚协议书。

房子归她。车归我,车贷还有两年。存款对半,她那一半已经算好,连利息都写在备注栏里,精确到个位数。

我翻到最后一页,签名栏还空着,她的名字已经写好,笔画很工整。

“王总给我安排了个位置。”她说,“项目助理,跟着他。”

“什么时候的事。”

“半年。”她把最后一件毛衣放进箱子,用手掌压了两下,“你天天在机房。我总得找个人说话。”

“半年。”我重复了一遍。

“半年。”她说,“你上个月有十九天没回家吃饭。我数过。”

她把箱子的拉链拉上,站起来,拍了拍手上的灰。

“你没什么本事,陈默。”她说这句话的时候语气很轻,像在说今天有雨,“三年了,你连个署名都保不住。”

“署名能当饭吃?”

“不能。”她说,“但它是个东西。别人一看就知道这活儿是你干的。你连这个都没有,你让我怎么跟人说我嫁的是谁。”

她走到茶几边,把那份打印好的东西拿起来,往包里塞。

那是我的接口清单。

三十七个接口,每个后面标着我改了几版,边界条件写两三行,有几条后面还写了“注意:这里会疼”。

那是我自己整理的一份东西,打印出来,原本是想给赵子航的。

“那是我的。”我说。

“你都要走了,还留着干什么。”她拉上拉链。

拉链的声音很响,从这头拉到那头。

“周妍。”

她停下来,但没回头。

“那份清单,你拿去没用。”我说,“你看不懂。”

“我看不懂,有人看得懂。”

门关上了。

玄关的灯还亮着,我忘了关。灯是暖黄的,照着门口那块地砖,地砖上有一道裂纹,从墙角斜着爬出来,一直没补。

我站在玄关,站了大概十分钟。

手机在口袋里响了一次,是公司群的通知,我点开,系统提示我没有权限。

我坐到餐桌前,打开电脑。

屏幕亮起来,屋子里多了一块白光。

登录邮箱。搜索框里,我敲了两个字:diff。

回车。

一百四十七封邮件,一封一封往下排。

从 0307 到 1102,一千二百多天。

像一条线。

5 三年的 diff

那天晚上我把一百四十七封邮件全部导了出来,做成一个时间轴。

每一封的标题都是日期,附件是当天的改动。最长的一封一千二百行,是重构对账模块那次,我改了六天,每天存一版。

我用一个开源的比对工具把每天的 patch 叠在一起,屏幕上是密密麻麻的加号和减号,绿的和红的。

看着像一个人给自己记的账。

三个月前,人事给过我一份文件。

《自愿离职申请》。

“组织架构调整。”人事说话时看着屏幕,不看我,“签了,当月工资照发,再加三个月补偿。不签,就按待岗处理,只发基本工资,一天一百二。”

王振站在旁边,手里转着一支笔。

“老陈,你先签。”他说,“签完我返聘你。资料归档那一块,你熟,别人干不了。”

我签了。

笔尖压在纸上,签完那一栏,后面还有一栏叫“员工确认”,我在那儿又签了一遍。

返聘的合同是一张劳务协议,一天二百,没有工牌,没有社保,没有年假。

九月一号,我搬进了 B1 库房。

库房在地下一层,进门要过两道门,第二道门锁着,钥匙挂在门口的钉子上。

里面十二台退役服务器,三百多箱纸质合同,空气里有一股发霉的纸味,混着机箱风扇的灰。

每天七点四十上班,六点下班。

打卡机已经不认我的卡,我在门口的登记本上写字。那本登记本的第三页有一行是我的名字,写的时候笔没水了,字迹很淡。

没人给我派活。

我把三百多箱合同按年份重新码了一遍,码了十一天。

码完以后,我开始拆那十二台旧服务器。有一台的主板烧了,我给它换了电容,通电,居然亮了。

我给自己装了个系统,在上面跑了个小服务,每天定时抓一次公开的招标公告。

抓它没什么目的,就是手闲。

十一月一号上午,我正在给一台旧服务器除尘。

手机在纸箱上震了一下,是那个小服务推过来的消息。

招标平台公示:云枢支付区域清算平台,验收时间,十一月四日上午九点。

我往下滑。

验收组名单,五个人。

第四个名字:江晚。

我盯着那两个字看了很久,看到屏幕自动暗下去,又亮起来。

三年前,她也用过这两个字,给我发过一封邮件。

标题只有四个字:你来不来。

正文一句话:这边缺一个愿意把注释写成中文的人。

我回了三个字:我再想想。

后来我没去。

因为周妍说,甲方那边不稳定,乙方这边至少有个编制。

因为那年我们刚付了房子首付。

因为我总觉得,还有下一次。

6 甲方要来验收

十一月二号下午,技术中心开动员会。

会议室坐满了,投影上放着一张甘特图,验收日那一格标成红色。

王振站在台上,说验收是“生死线”。

“八百万尾款。”他用笔尖点着屏幕,“一天都不能拖。这条线一断,四季度全完。”

他在白板上写下两个名字。

主讲:赵子航。

资料支持:陈默。

“老陈熟悉历史版本。”他说,“让他做资料支持。”

资料支持的意思是,不能进会场。

会后,赵子航从我旁边走过去,脚步很快。

他怀里抱着我那份接口清单的打印件,边角已经卷了,第三十七页有一处折痕,是我当时标“这里会疼”的那一页。

“子航。”

他停下来,没转身。

“第三十七页,你看一下。”

“看了。”他说。

“看了哪里?”

“陈哥,我这两天有点忙。”他说完就走了。

十一月三号,我在库房给旧服务器除尘。

吸尘器声音很大,灰尘在应急灯的光里飘,飘到一半又落下来。

行政小刘下来找我。

她站在门口,没进来,好像库房里有什么东西会传染。

“陈工。”她说,“王总说,让你把工牌交一下。”

“为什么。”

“说是外来人员管理。这两天甲方的人要来看现场。”

“我算外来人员?”

她低下头,手指捏着自己的工牌绳,捏得很紧。

“陈工,我就是传话的。”

我把工牌从上衣口袋掏出来,放在一个空纸箱上。

蓝色的挂绳,塑料卡套,照片是三年前拍的。那时候我头发还很密,拍照的人让我笑一下,我没笑出来,照片上的表情有点僵。

“那我明天还来吗。”

“王总说,等通知。”

她说完就走了,走得很快,第二道门都没关严。

我坐在水泥地上,背后是一台退役服务器的散热孔,凉气一直往外冒,透过工装,凉到背上。

手机亮了一下。

公示页面还开着,江晚的名字后面括着一个职务:技术总监。

我把屏幕按灭,放在膝盖上。

那天下午,我把十二台服务器全部擦了一遍。

擦到第七台的时候,手上磨出一个水泡。

我没停。

7 江晚

十一月四号上午九点,验收会开始。

十点二十,小刘跑下来。

她跑到一半就喘得说不成句:“陈工,上面……让你上去。”

“谁让的。”

“甲方那个女的。”她说,“她把会停了。”

我穿着工装,袖子上有一层灰。手里还拿着除尘的毛刷,走到电梯口才想起来放下,塞进了裤兜。

电梯上行的二十二层,数字一格一格跳。

会议室里坐了十七个人。

长桌一头是甲方,五个人,江晚坐在中间。她穿一件深灰色的西装,头发扎起来,桌上摊着一台电脑和一叠打印稿。

长桌另一头是王振,旁边是赵子航,还有三个我不认识的人。

我进门的时候,所有人都看了过来。

“这份技术文档,谁写的?”江晚问。

她的声音不高,会议室里每个人都听得见。

“我。”赵子航说。

“第三十七页。”她翻到那一页,把屏幕转向会议室,“注释写着:第三次回调必须在二百毫秒内返回,否则渠道方会重推。”

她停了一下。

“你们系统里,没有这个判断。”

没人说话。

“上线第二天,有三个用户被扣了两次钱。”她说,“客诉单尾号 4471。”

王振开口:“这是版本迭代过程中的疏漏,我们正在复盘——”

“我问的是谁写的。”江晚打断他。

会议室安静得能听见投影机的风扇声。

赵子航的衬衫后背湿了一片,从肩胛骨往下湿到腰。

江晚抬起头。

她的目光扫过长桌,扫过门口。

看见了站在门槛上的我。

她看了三秒。

三秒很长。长到我听见了自己的呼吸。

“过来。”她说。

我走过去。

“坐下。”

我在她左手边坐下。椅子的滚轮有点卡,我调了两下才坐正。

她把电脑转过来,推到我面前。

“第三十七页。”她说,“你写的?”

屏幕上那行注释,一个标点都没改。

“我写的。”

“署名呢。”

我没答。

“你们公司改了署名。”她说,“没改注释。”

赵子航的脸白了。他张了张嘴,没说出话。

王振站起来:“江总,这个事我们内部会核实——”

“核实什么。”江晚说,“文档在这里,注释在这里,人在这里。”

她把打印稿推到长桌中间。

“我要原始作者签字。”她说,“不是技术中心,不是项目组,是他本人。”

她顿了一下,眼睛落在我上衣口袋上。

那里现在是空的。三年来一直是那个位置,卡套的边缘把布磨出一个长方形的浅印。

“你的工牌呢。”她说。

8 三十七项,三十三项

我说,交了。

江晚没追问。

“开始吧。”她说,“从第一项开始。”

我不用讲稿。

终端打开,日志在屏幕上滚。会议室里所有人都在看我手上那台电脑。

“第七项,幂等。”我说,“渠道方重推三次,我们没有指纹表。每一次推送都会被当成新请求,扣一次钱。”

我敲了三行命令,现场触发了一次重复回调。

屏幕上跳出三笔扣款记录,金额一样,时间差不到一秒。

“加一行代码就能拦住。”我说。

“那你现在加上。”王振说。

“加不了。”我说,“这个版本的表结构被改过,去重字段被删了。要加回去,得改表,得停服四小时。”

“谁删的。”

我没答。

赵子航低着头,手指在桌下绞在一起。

“第十九项,对账差错率。”我往下翻,“合同要求万分之一以内。现在是万分之三。因为分库分表之后,跨表对账没有落临时表,日切的时候有一个时间窗口,那段时间进来的单子会漏。”

“漏多少。”

“十一月一号那一批,漏了四十一笔。”

会议室里有人抽了一口气。

“第三十一项,T+1 差错回滚。”我翻到第三十七页,“承诺书里写的是次日人工处理。人工处理,不是系统回滚。”

“这两个有区别吗。”甲方一个戴眼镜的人问。

“有。”我说,“人工处理是第二天上班有人去看,看见了才补。系统回滚是自动的。合同里写的是系统回滚。”

三十七项,三十三项对不上。

“赵工。”江晚转向赵子航,“第三十一项的边界条件,你讲一下。”

赵子航站起来。

他翻了半天文档,翻到一页,又翻过去,再翻回来。

“这个是……历史遗留。”

“历史遗留是哪一年。”

“我接手的时候就是这样。”

“你什么时候接手的。”

“今年三月。”

“三月的时候,第十四页就写着边界条件。”江晚说,“三行。”

赵子航不说话了。

江晚转向王振。

“你带了他三年。”她说,“他连第十四页写了什么都不知道。”

王振说:“这是前期外包人员留下的问题,我们正在整改。”

“外包。”江晚把文档翻到封面,推到他面前。

编制人:陈默。

审核:陈默。

下面是他公司的公章,红色,盖得很正。

“贵司盖的章。”她说,“编制人也是他。”

王振没有接那份文档。

他的手放在桌面上,指关节有点发白。

江晚把验收表翻到最后一页,推回长桌中间。

最下面一栏写着五个字:原始作者签字。

那一栏是空的。

她的指尖压在上面。

9 王振来谈

中午十二点四十,王振把我叫进小会议室。

他把门关上,指了指椅子。

桌子上一杯水,纸杯,温的,杯口有一圈水汽。

“坐。”

我坐下。

“复职。”他说,“补发三个月工资,加薪百分之三十。技术中心副总的岗,给你留着。”

“条件。”

“验收会上,你签个字。”他把笔推过来,“就说这些问题都是版本迭代造成的,责任在流程,不在人。”

“那是假话。”

“这是给公司止损。”他把烟按灭在纸杯里,纸杯瘪下去,水渗出来,洇湿了桌面上一份文件的边角,“你要想清楚,八百万尾款,你赔得起吗。”

“赔不起。”

“那就别硬。”

“王总。”我说,“你让我签不合格,我签。你让我签合格,我签不了。”

“你这个人。”他笑了,“三年了,还是这样。”

他站起来,走到窗边,背对着我。

“你知道我为什么一直留着你吗。”

“不知道。”

“因为活儿只有你能干。”他说,“但你不能一直这么干。一个项目,署名给谁,是组织决定的。你不服,你就自己当组织。”

“那我现在当组织。”

他转过身。

“老陈,你别忘了竞业协议。”

“我没忘。”

“那份协议是我让人拟的。”他说,“你要真闹起来,我可以让你两年之内在这行里找不到活。”

我没说话。

他走过来,拍了拍我的肩。一下,两下,三下。

“你再想想。”他说,“四点钟,甲方那边还要谈。你现在改主意,还来得及。”

手机在口袋里震起来。

我拿出来看了一眼。

来电显示:周妍。

10 前妻当说客

下午三点,商场二楼的咖啡厅。

她坐在靠窗的位置,穿一件米色新大衣,袖口还有折痕,吊牌应该刚剪。

桌上两杯咖啡,一杯是她的,一杯是给我的,已经凉了。

“你来了。”她说。

“谁让你来的。”

“没人让我来。”她把糖包撕开,倒进去,“王总说,只要你签,位置给我留着。”

“位置。”

“项目助理。”她搅着咖啡,勺子碰在杯壁上,一声一声,“不是求你,陈默。这是你自己的事。”

“我的事。”

“你签一下,大家都好过。”她抬眼,“八百万的尾款,几十号人的年终奖。你非要闹到所有人都不好看吗。”

我把手机推过去。

屏幕上是转账记录,我提前按年份排好了,一条一条,从上往下。

“二零二二年三月。”我说,“你妈住院,六万八,我一次性转的,那天我在机房,转账是在机房门口蹲着转的。”

我往下滑。

“二零二三年九月,你弟学费,一年一万二,四年,四万八。你弟现在大四。”

再往下。

“房贷,三年,四十七万。这三年,我一个人还的。”

我把手机收回来。

“这些我没算过。”我说,“你现在算得挺清楚。”

她眼睛红了。

“我也是没办法。”她说,“你天天在机房,回家倒头就睡。我三十五了,我总得给自己找条路。”

“你找路,踩着我过。”

“你别这么说。”

“你不是没办法。”我说,“你是算过了。算完发现,跟着他比跟着我划算。”

她哭出声。

肩膀一抽一抽,米色大衣的袖口被她攥出了褶。邻桌有人看过来,又很快转过去。

我没动。

以前她一哭,我就站起来,去给她倒水,去把她抱过来。

今天我没站起来。

“陈默。”她抬起头,眼睛红了,“那份清单,我给他了。”

“我知道。”

“你怎么知道。”

“因为第十四页的边界条件,他们删了。”

我把餐巾纸推过去。

站起来。

走到门口,我回头说了一句。

“那份接口清单,你用不上。那是我的东西。”

11 我开我的价

下午四点,甲方会议室。

江晚没来。

她避开了。这很职业——她自己要避嫌,她要让这场谈判看起来不像人情。

王振带着公司法务。法务姓刘,三十来岁,西装袖口露着一截白衬衫,说话前会先看王振一眼。

“陈工。”刘法务说,“我们想请你以顾问身份返场。”

“什么身份。”

“外部技术顾问。日薪你开。”

“三倍年薪。”我说。

他笔尖停了一下。

“另外三个条件。”我说,“一,独立顾问,不入职,不签劳动合同。二,不进你们任何一个人的汇报线,我的技术结论直接对甲方。三,签字权归我,谁都不能代签。”

“这不合流程。”

“那就走流程。”我说,“你们有流程,我等着。”

刘法务翻手里的文件,翻了两页。

“还有一件事。”他抬起头,“你还有竞业限制。你签过一份竞业协议,两年。”

“签过。”

“那你返场,我们是有风险的。”

我从包里拿出一张纸,推过去。

竞业协议复印件。第三条,我提前用荧光笔划出来了。

“甲方应于乙方离职后按月支付竞业限制补偿金。逾期三个月未支付的,本协议自动失效。”

刘法务看了很久。

“我从八月离职,到今天,一笔没收到。”我又拿出一张银行流水,摊在桌上,“你们可以查。八月、九月、十月,三个月,零。”

“这个……”

“还有。”我说,“人事把我按‘内部调动’处理,没走离职流程,所以补偿金他们压根没打算付。他们要的是这份协议一直有效——既能拿来吓我,又不用花钱。”

会议室里静了几秒。

刘法务的手在抖。那张纸在他手里抖出了声音,很轻,但在安静的房间里很清楚。

王振站起来,椅子在地板上刮了一声。

“陈默。”他说,“你早就准备好了。”

“我准备了三年。”

“三年。”他重复了一遍,像在掂一个词的分量。

“第一年,我以为署名不重要。”我说,“第二年,我以为再干一个项目就会好。第三年,我发现这件事没有‘下一次’。”

王振坐回去。

他松了松领带,喉咙那里动了一下。

“日薪多少。”

“按三倍年薪算,一天一万二。”我说,“按天结,当天结。签字那天,另外算。”

刘法务低头算了一会儿,抬头看王振。

王振点了下头。

“合同今晚出。”刘法务说。

“还有一件事。”我说,“验收会重开。我要重新讲一遍三十七项。”

“甲方已经——”

“甲方已经同意了。”我说,“你们去问。”

那天晚上八点,江晚给我发了一条消息,只有一行字:

“明天下午两点。会议室还是那个。”

12 我签了“不合格”

十一月四日下午两点,验收会重开。

还是那间会议室,还是十七个人。多了一个记录员,坐在角落,笔记本电脑开着。

我讲了九十分钟。

三十三项,一条一条演示,一条一条给修复方案,一条一条给工期。

“幂等,停服四小时,加指纹表,两天。”

“跨表对账,落临时表,改日切窗口,五天。”

“差错回滚,改写日切任务,加自动补账,七天。”

“日志脱敏,三天。”

“压测复测,两天。”

“你要几天。”江晚问。

“全部改完,十四天。”

“合同里没有这一条。”王振说。

“合同第十四条。”我说,“验收不合格,乙方应在十五个工作日内完成整改。逾期未完成的,按合同金额百分之五计违约金。”

八百万的百分之五,四十万。

王振的手指在桌面上敲了一下,停住了。

“另外。”我翻到最后一页,“这三十三项里,有十一项是因为表结构被改过才出现的。改回来这十一项,两天就够。剩下的二十二项,是原来就没有做。”

“谁改的表结构。”江晚问。

会议室里没人出声。

“我三月交的版本,去重字段在。”我说,“四月上线前,有人为了压测数据好看,把去重表删了,把日切任务的时间窗口调小了。这两处改动,在提交记录里都有。”

赵子航的肩膀塌了一下。

江晚把验收表翻到最后一页。

“结论。”她说。

我拿起笔。

会议室里所有人都在看我手上那支笔。

笔是甲方准备的,黑色,笔杆上印着云枢支付的 logo。

我在结论栏写下两个字:

不合格。

然后在“原始作者签字”那一栏,写下我的名字。

陈默。

笔尖在纸上顿了一下,最后一笔的横拖得有点长。

王振的脸白了。他嘴唇动了一下,没出声。

“整改期限十五个工作日。”江晚合上验收表,“从明天算起。”

“江总。”王振站起来,“这个结论,能不能再讨论一下。”

“讨论什么。”江晚说,“三十三项,你们自己讲不出来,他讲出来了。他没讲错,也没讲多。”

她转向我。

“陈工,你的顾问费,从今天下午两点开始算。”

“还有一件事。”她说,“这份验收记录,我会抄送贵司总部审计部。”

王振的手扶在椅背上。

那天夜里,B1 库房的灯灭了。

二十二楼的灯亮了一整夜。

我凌晨一点路过楼下,抬头看了一眼。那扇窗户里有人影走来走去,走来走去。

我在路灯底下站了一会儿,然后回家睡了。

那是我三个月来第一次睡够七个小时。

13 徒弟

第二天上午,赵子航在楼梯间等我。

他眼睛是肿的,眼白里全是血丝。

楼梯间没开灯,只有应急灯,每隔几秒闪一下,把人脸照得发白。

“你早就知道会这样。”他说。

不是问句。

“我知道会不合格。”我说,“我不知道你会站上去讲。”

“我不讲,谁讲。”

“你讲之前,看过第十四页吗。”

他低下头。

“陈哥,我……”

“第十四页。”我说,“边界条件,我写了三行。第一行写触发频率,第二行写时间窗口,第三行写‘如果渠道方改推送策略,先看这里’。”

我从口袋里掏出一张折过的纸,是那份接口清单的复印件,我留了一份。

我把它展开,递给他。

“你接了这份东西,看了封面,就交上去了。”

他接过纸,手在抖。

“我以为名字就是本事。”他说。

“名字是别人给的。”我说,“本事是自己签的。”

“我签不了。”他说,“我签了,我这辈子就完了。房贷、我妈的手术费……”

他说不下去。

楼梯间的应急灯闪了一下,灭了半秒,又亮起来。

他蹲下去。

二十六岁的人,蹲在楼梯上哭,哭得很难看,鼻涕都流下来了,用袖子擦,擦不干净。

我站着,没扶他。

过了一会儿,他抬起头。

“师父。”他叫我。

这是他三年来第一次这么叫。

“第三十七页的东西,你学会了吗。”

“没有。”

“那你去学。”我说,“我给你三个月。学不会,别再叫。”

他站起来,把那张纸叠好,放进内袋。

那动作有点像三年前的我。

14 第二份合同

一周后,云枢支付发了新标。

标书是公开的,一共七家投标,我们在里面排第三——因为公司资质不够,我是挂靠一家小公司投的。

江晚把合同放在我面前。

重构加三年运维,一千二百万。

“签字费从第一笔款里扣。”她说,“扣我请你喝咖啡的钱。”

“什么咖啡。”

“三年前那杯。”她把笔帽摘下来,放在桌上,“你喝了一半就走了。”

我想起来了。

三年前那家咖啡厅在公司楼下,她约我谈 offer。她点了一杯美式,我点了一杯美式。她说“你来不来”,我说“我再想想”。然后我看了看表,说下午还有个会。

那杯咖啡我确实只喝了一半。

“你为什么等我。”我问。

“我没等你。”她把电脑转过来。

屏幕上一个文件夹,按年份排列,从三年前开始,一年一个。

每个文件夹里是一份文档,都是我们当年做过的项目。她留的不是正式版,是批注版。

“我存你写过的注释。”她说。

“存这个干什么。”

“因为只有你会在注释里写‘这里会疼’。”她说,“别的工程师写 TODO,写 FIXME。你写人话。”

她翻到一份文档的第四页,指着一行。

那是我三年前写的:

“这里会疼。别在这个循环里加业务逻辑,加了以后改不动。”

“我当时看到这句,笑了半天。”她说,“后来我把它抄在了笔记本上。”

“抄它干什么。”

“因为它不是写给机器的。”她说,“它是写给下一个接手的人的。”

她把笔推过来。

“这次我不等你选了。”

我看着合同。

一千二百万。三年。违约责任那一条,她改过,从百分之五改成了百分之二。

“你改了违约条款。”

“我改的。”她说,“你签字那天,我就知道你会是那种宁可赔钱也不写假话的人。所以我把罚则压低,是为了保护你,不是为了保护我自己。”

我拿起笔。

签的时候,手很稳。

15 新机房

十二月的第一天,新办公室通电。

场地在城东一个产业园,两千平,租了其中三百平。

三台服务器上架,交换机在机柜里亮起一排绿灯。

前台牌子是我自己贴的,四个字:默远技术。贴歪了一点,我没重贴。

第一个员工是赵子航。他来得比我早,每天早上七点半到,把机柜的防尘网拆下来洗一遍。

我没问他为什么来。他也没说。

员工一共四个人:我、他,还有一个做前端的女孩,一个做运维的老哥,姓吴,四十多岁,原来在库房隔壁看大门。

凌晨三点四十。

我改完最后一行,注释还是那七个字:

第三次回调必须在 200 毫秒内返回。

保存。

这次没有 diff 邮件。

我给自己发了一封,标题 `diff-final`,收件人是我自己,抄送:江晚。

正文只有一句:这个版本,署名是四个人。

手机亮起来。

周妍。

“听说你签了江晚那边。”

“嗯。”

“我们能见一面吗。”

“不必。”

我打了一个句号,又删掉,重新打了一个句号。

“陈默。”她的消息又跳出来,“我那边……不太好。”

“王振被审计了。”我回。

“你怎么知道。”

“因为违约金是我签的。”

她没再回。

我把手机放下,靠在椅背上。

机房的风扇声很均匀,像很远的雨。

队列跑起来了。

绿灯一排一排亮过去,从机柜这头,亮到那头。

我看了一会儿,起身去把前台的牌子扶正。

回来的时候,屏幕上跳出一行日志:

`callback duplicated, cached, 200ms`

重复回调,命中缓存,二百毫秒。

没有人被扣两次钱。

沪ICP备16008431号-1

本站所有内容都已取得正版授权,且不适合未成年人观看。版权声明 - 投稿声明 - 自审制度 - 免责声明