签下第一单的兴奋只持续了一个晚上。
第二天早上,陈默刚到办公室,孙丽就冲了进来。
“陈总,吴总那边出问题了。”
“什么问题?”
“昨天晚上他们公司的人开始试用系统,发现数据导入功能有问题。他们现有的客户数据有两万多条,想一次性导入,但系统只能支持每次五千条,而且导入速度特别慢。他们的运营总监发邮件给吴总,说‘这个系统不行,退货’。”
陈默皱了皱眉。
数据导入功能的问题他之前就知道。系统确实只能支持每次五千条数据的导入,而且速度慢,一万条数据大概要导四十分钟。对于只有几百个客户的小公司来说不是问题,但对于吴总这种有两万多个客户的公司来说,确实是个硬伤。
“吴总怎么说?”
“吴总还没回邮件,但孙丽说,如果今天之内解决不了,这单就黄了。”
陈默看了一眼时间。早上八点四十。
“李明到了吗?”
“还没。他一般九点半到。”
陈默拿起手机,给李明打电话。响了三声,接了。
“李明,你在哪儿?”
“在来的路上。怎么了?”
“吴总那边数据导入出了问题。你现在直接来公司,不要绕路。我需要你今天之内把这个bug修好。”
电话那头沉默了两秒。
“数据导入的问题不是bug,是架构问题。当初设计的时候就没考虑大数据量的场景。要改的话,至少要三天。”
“没有三天的窗口期。”陈默说,“客户说今天之内解决不了就退货。”
“那我没办法。”
陈默握着手机,深吸了一口气。
“李明,你几点能到?”
“二十分钟。”
“到了来找我。”
挂了电话,陈默坐在椅子上,盯着桌上的电脑屏幕。
数据导入的问题。不是bug,是架构问题。需要三天。
他想起许愿说的话——“我做错了什么?我最大的错误,是以为我一个人可以搞定一切。”
不,这不是许愿一个人的问题。这是整个产品的问题。从第一天起,这个产品的设计就没有考虑过大数据量的场景。许愿做产品的时候,心里想的是小微企业,几百个客户、几千条数据,所以他没想过要做大数据量的优化。
但吴总这样的客户,两万多条数据,直接就把系统的短板暴露出来了。
二十分钟后,李明到了。
他背着双肩包,手里拿着一杯咖啡,走进陈默的办公室,把包放在椅子上,没有坐。
“陈默,我跟你说过了,这个问题不是今天能解决的。”
“我知道。”陈默说,“但客户不会等我们三天。”
“那你想怎么办?”
陈默站起来,走到白板前面,拿起一支马克笔。
“我们现在有哪些选项?”
李明想了想。
“选项一,让客户分批导入。每次五千条,分五次导。但这只能解决导入的问题,解决不了速度的问题。就算分五次,每次四十分钟,全部导完也要三个多小时。”
“选项二呢?”
“选项二,我写一个脚本,绕过系统的限制,直接在数据库层面导入。但这个方案有风险,万一数据出错,客户会更生气。”
“风险有多大?”
“百分之十左右。”
“百分之九十的成功率。”陈默在白板上写下“90%”,“选项三呢?”
“选项三,跟客户说实话,告诉他我们需要三天时间修复。如果他愿意等,我们给他打折或者送几个月服务期。”
陈默放下马克笔,转过身,看着李明。
“三个选项,你选哪个?”
李明犹豫了几秒。
“我选选项二。”
“为什么?”
“因为选项一解决不了问题。选项三客户不会等。只有选项二有可能在今天之内搞定。”
“风险呢?”
“我来扛。”李明说,“数据备份做好,如果出问题,我手动恢复。”
陈默看着他,点了点头。
“去做。我陪你去客户那边。”
“你也要去?”
“对。出了问题,我来跟客户解释。你专心写脚本。”
李明看了他一眼,没再说什么,转身走出了办公室。
上午十点,陈默和李明到了吴总的公司。
吴总不在,出去见客户了。他们的运营总监姓赵,一个三十出头的男人,戴着黑框眼镜,说话很冲。
“陈总是吧?你们这个系统我真没法用。我们两万多条数据,你们那个导入速度,我导完黄花菜都凉了。”
“赵总,今天之内解决。”陈默说,“我们带了技术负责人过来,现场写脚本,直接在数据库层面导入。”
赵总监皱了皱眉。
“数据库层面?会不会影响我们现有的数据?”
“不会。”李明说,“我先做全量备份,然后在新数据库里导入,导入完成之后再跟你们的系统对接。全程不影响现有数据。”
赵总监看了看陈默,又看了看李明。
“你们确定能搞定?”
“确定。”陈默说,“如果搞不定,我们今天不走了。”
赵总监犹豫了一下,然后叹了口气。
“行吧。我给你们一个会议室,你们在那里弄。”
李明从中午十一点开始写脚本。
陈默坐在他旁边,帮不上什么忙,只能偶尔给他倒杯水、买个盒饭。李明写代码的时候很专注,一句话不说,眼睛盯着屏幕,手指在键盘上飞快地敲击。陈默看着他的手速,心想,这大概就是专业和业余的区别。
下午两点,脚本写完了。
李明先在测试环境里跑了一遍,导入了五千条数据,用了不到五分钟。速度比原来的系统快了将近十倍。
“可以了。”李明说。
“上线之前再测一遍。”陈默说。
李明又测了一遍,还是五分钟。
“行了。”
下午两点半,李明开始在生产环境里导入数据。
两万三千条数据,预计用时十二分钟。
前十分钟一切顺利。陈默看着屏幕上不断跳动的进度条,心里默默地数着。
百分之八十七。
百分之九十一。
百分之九十五。
百分之九十八。
百分之九十九。
进度条走到百分之九十九的时候,停了。
李明的手指在键盘上停了一下。
“怎么了?”陈默问。
“卡住了。”李明的声音很平静,但陈默看到他额头上渗出了细密的汗珠。
“什么原因?”
“不知道。我查一下。”
李明开始检查代码和数据库志。办公室里很安静,只有空调的嗡嗡声和李明敲键盘的声音。陈默站在他身后,看着屏幕上滚动的代码,一个字也看不懂,但他没有催。
他能做的,就是站在这里,等着。
如果出了问题,他来扛。
三分钟后,李明长出了一口气。
“好了。”
“怎么回事?”
“网络波动,连接断了一下。脚本自动重连了。”
进度条重新开始跳动,这一次直接跳到了百分之百。
“导入完成。”李明说,“两万三千条,全部成功。数据完整性校验通过。”
陈默看了看时间。下午两点四十九分。
从他们到客户公司到现在,不到五个小时。
他拿出手机,给赵总监打了个电话。
“赵总,数据导入完成了。麻烦您过来验收一下。”
赵总监很快过来了,坐在电脑前,打开系统,翻了几页客户列表,又查了几条数据的完整性。
“可以。”他说,语气比刚才好了很多,“速度确实快了。这个脚本你们会集成到正式版本里吗?”
“会。”李明说,“一周之内,数据导入功能会全面升级。”
赵总监点了点头,站起来,和陈默握了手。
“陈总,今天麻烦你们了。我回头跟吴总说一声,这个单子没问题了。”
“谢谢赵总理解。”
从吴总公司出来的时候,已经下午三点多了。
太阳还很高,晒得地面发烫。李明背着双肩包走在前面,步子很快。陈默在后面跟着,看着他的背影。
“李明。”他叫住了他。
李明停下来,转过身。
“今天谢谢你。”
李明愣了一下,然后摆了摆手。
“没什么。这是我的工作。”
“不光是工作。”陈默说,“你今天做了超出你职责范围的事。你扛了百分之十的风险,帮公司留住了一个客户。”
李明看着他,沉默了几秒。
“陈默,你知道我为什么愿意留下来吗?”
“为什么?”
“因为你愿意跟我一起去客户现场。我在阿里了三年,从来没见过一个CEO愿意跟技术人员一起去客户那里,坐在旁边等五个小时,什么都不,就等着。”
“我这不是什么都没吗?”陈默笑了笑。
“你了。”李明说,“你坐在那里,我就知道——出了问题,不是我一个人扛。”
他说完,转过身,继续往前走。
陈默站在原地,看着李明的背影越走越远。
他想,这大概就是团队。
不是一群人各各的,而是一群人愿意为彼此扛事。
回到公司已经快五点了。
陈默坐在办公室里,把今天的事从头到尾想了一遍。
数据导入的问题暴露了产品的短板,但也暴露了团队的潜力。李明愿意扛风险,赵总监愿意给机会,吴总虽然不在现场,但最终没有退货。
这一单,从“要黄”变成了“成了”。
不是因为产品好,而是因为人对了。
他打开笔记本,在今天的期下面写了一行字:
“7月22。第一单,保住了。”
然后他又写了一行:
“数据导入功能必须在两周内升级。这不是可选项,是必选项。”
写完之后,他合上笔记本,靠在椅背上。
窗外,夕阳正在落下去,把天空染成了橘红色。
他的手机震了一下。
是林婉发来的消息:
“今天回来吃饭吗?”
他回复:“回。还有一个小时到家。”
林婉:“给你做了糖醋排骨。”
他看着这条消息,笑了。
四十五岁,失业后重新开始,在一家快要死的公司里当CEO,每天工作十几个小时,拿的薪水只有以前的一半。
但有人在家等他吃饭。
有排骨。
这就够了。