复盘后的第三天下午,罗致远加了周衡的私人联系方式。
好友申请来得和他说的一样,隔了两天。周衡没有在工位上通过。等到下班打卡、走出园区,他才点下确认。
罗致远很快打来电话。
“线索是汇邻供应链。老板蒋明川是我以前的同事,我们一起做过几年零售信息化,后来他出去做仓配。公司现在给上海周边三十二家社区门店送货,内部的库存同步和仓库看板越来越慢。”
门店只有八家时,页面延迟不明显。扩到三十二家后,下午补货高峰能落后四十分钟。门店看见旧库存接了单,仓库却已经没货,当月为此取消了七十多笔订单。
周衡问:“汇邻和嘉禾、海拓有业务关系吗?”
“据我所知没有。但这件事你别只听我说,让他们自己出书面说明。”罗致远说,“我只负责把你们介绍认识,不参与报价、合同和验收。你接不接、收多少、最后做得怎么样,都由你和蒋明川谈。”
周衡确认汇邻不在原公司的业务范围里,便约了第二天晚上见面。私单使用自己的电脑,下班以后做,手续按正规服务走。
回到合租房,室友还在客厅外放短视频。他戴上耳机,打开自己的旧笔记本,先把罗致远提到的几个现象记下来。
电脑卡了一会儿,才弹出空白文档。
周衡盯着那枚转圈的小图标,笑了一下。
这单成了,先给它办退休。
第二天晚上七点半,周衡在张江一家连锁咖啡店见到了蒋明川和负责系统维护的小孙。罗致远没有来,三人也没有把他拉进项目沟通群。
蒋明川四十出头,衬衫袖口卷到手肘,一坐下就把一张脱敏截图推过来。门店名、联系人和订单号全被遮住,只剩几十条催问的时间和内容。
“你看,仓库明明十六点已经收货,门店到十六点四十还看不见。现在店长不信系统,补货都先打电话。三十多家店,一到高峰仓库三个人的电话能同时响。”
小孙打开电脑,先展示脱敏后的看板记录,再登录一套使用模拟门店和测试数据的环境。页面能用,只是点一次刷新要转很久。记录里最慢的一次,库存数字比后台实际变化落后了三十七分钟。
“数据库不够了吗?”蒋明川问,“上个团队说再买一台服务器能解决。”
周衡没有顺着回答:“门店从八家增加到三十二家,商品数量和单量各涨了多少?”
“商品差不多翻了三倍,订单五六倍。”
“慢是突然出现,还是一直变慢?”
“一点点。二十家以后特别明显。”
“有没有某个时间段最严重?”
小孙说:“下午三点到六点,仓库收货、门店补货、线上订单都赶在一起。”
周衡继续问了十几分钟,没碰键盘,只把同步频率、失败重试、库存修正方式和最近一次发布的时间记下来。
当他问到“每次同步是取变化的数据,还是重新核一遍全部库存”时,小孙愣了一下。
“应该是全量。以前数据少,开发的人说这样最稳。”
“同步没结束,下一轮会不会继续启动?”
“不会,有一把锁。拿不到锁就等。”
蒋明川没听懂:“锁是什么意思?”
“可以先理解成只有一个人能进仓库盘货。”周衡说,“原来三分钟盘完,后面的人等一等没关系。现在一次盘四十分钟,门口排着几十个人。服务器可能不是完全没压力,但先加机器,大概率只是让队伍排得稍微快一点。”
蒋明川听明白了,身子往前倾了一点。
“那机器先不买?”
“先看记录,找到卡的位置再决定。两万元的机器买回来,也不能替你把错误的盘点流程改掉。”
小孙连连点头,在电脑上打开了任务记录。
“原来开发系统的人呢?”他问。
蒋明川摇头:“团队去年散了。现在偶尔能联系上一个,按次收钱,回复也不及时。”
“源代码和部署账号在谁手里?”
小孙说:“代码仓库是公司的,云账号也已经改成我们自己的。只是文档不全。”
周衡看了测试环境和备份情况,将需要补齐的准备工作列给小孙。对方负责现有系统,可以直接配合,不必再临时找失联的原开发团队。
“测试跑通以后再上线。”他说,“我来做改造,你们的人能接得住。”
蒋明川端着咖啡,看他的神情已经和刚进门时不一样。
蒋明川问:“多少钱?”
“两万元。”
小孙抬起头。蒋明川也皱了皱眉:“就看一个慢的问题,两万?”
“不是看一眼。”周衡把刚才记的内容转过电脑,“范围包括性能基线、根因定位、同步流程改造、压力测试和上线观察。目标不是把页面暂时刷快,而是在你们现在三十二家店的峰值下,把库存变化推送延迟控制在三分钟内,失败任务可追踪、可补偿。做不到不算验收。”
“多久?”
“先给我三个晚上做诊断。如果判断可以在原系统上改,再用两个周末完成。上线以后观察三个工作日。不是重做系统,也不包含新功能。”
蒋明川没当场答应。他让小孙把交付项记下来,说要先算故障损失,也要确认两周内能不能配合测试。
第二天上午,蒋明川打来了电话。
“我们昨天下午又取消了七笔补货。”他开门见山,“按你说的做,两万元,验收付清。”
周衡握着手机,停了半秒。
他以为还要谈两轮价格,蒋明川却已经让小孙开始准备测试环境。
“可以。今晚我把合同发过去。”
“还有一件事。”蒋明川说,“以后店还要开,能不能让小孙也知道这次怎么改的?”
“我会带他走一遍。你们要继续用,他就得看得懂。”
“好,那就这么定。”
周五晚上九点,双方签完合同。项目价格两万元,两周完成,验收指标直接写成门店能感受到的变化。
周衡把签好的合同展开,手指在两万元上停了一下。他第一次给自己的技术明码标价,对方认了。
按现在的比例,等这笔钱到账,他实际能拿三万二千四。电脑可以买,房子也可以去挑。他给蒋明川回了进场时间,将购物清单里的笔记本又往上挪了一格。
他把海拓配发的电脑关机,装进公司电脑包,推到桌子最里面。随后拿出自己的旧笔记本,接上个人购买的移动硬盘,按照汇邻发来的授权说明登录测试环境。
屏幕右下角显示,下一次全量同步将在二十七秒后启动。
二十七秒过去,任务拿到锁,开始扫描第一张库存表。
一分钟。
三分钟。
八分钟。
任务还没有结束,后面等待执行的同步请求已经排到了十九个。
周衡把时间、锁等待和扫描行数记进新建的工作日志,在第一行写下:
“不是服务器先不够,是旧办法装不下新门店了。”
周衡放下笔,把第一处需要修改的位置圈了出来。他想好了,款项到账那天,先把新电脑买回来。