第十八章 我有更好的方案
沈知行写第一段的时候,宋严就看出了区别。
他没去原有的各个任务里逐个加判断,而是把入口、等待和结束的状态单独理出来。旧程序还能照常做事,只是外面多了一层清楚的安排。
像一间原本谁都能冲进去喊一声的办公室,终于有了知道每个人来做什么的人。
陈墨站在旁边看了会儿,问:“你准备保留原接口?”
“保留。今天先看安排有没有用,没必要为了展示把所有东西拆一遍。”
“出问题时能退回原方式?”
“开关在这里。”
他指了一下,继续打字。
宋严没有一直站在身后,回到自己的机器前准备核对数据。新东西跑得好看是一回事,能不能说明白为什么好看,是他的工作。
周野坐在门边,已经进入一种奇怪的状态。
他听不懂全部实现,但知道这时候不该给人递十次水、问八次累不累。他把可以自己处理的消息全拦在这边,需要决定的才写在便签上,等沈知行停手再递。
何敏看了一眼,轻声说他做得不错。
周野点头,嘴角差点没压住,赶紧低下去看手机。
机房的空调温度不低。
沈知行手腕贴着桌边,额头有一点汗。他把袖口往上卷了一截,继续补全退出与记录部分。
实验室里,那条经过反复推演的路径已经足够清楚。
他仍然没有跳过现实的检查。
编辑器里的字要能运行,输入要能对应,设备的实际表现也不能靠脑内结论替代。金手指让他知道路该往哪里走,却不会替马骏插好电源,也不会让宋严的测试文件自己出现在电脑里。
他把一项参数留给宋严确认。
又让陈墨核对另一台设备公开提供的变化范围。
两个人各自答复。
实现继续往前。
梁岳在旁边看得很安静。他经历过无数次现场交流,大多数工程师到了陌生环境,会先谨慎地把所有不确定因素围起来,再试探着走。
沈知行也在确认边界。
但他的确认像装好路牌,随后直接出发。
没有多余的踌躇。
二十多分钟后,他停下手。
“先做小样本。”
宋严早已准备好。
一组很小的任务进入系统,各自按设定的路径运行。结果返回时,沈知行看了几个关键状态,确认记录完整,再让原方式跑同一组。
没有问题。
陈墨要求交换两类任务出现的顺序。
沈知行照做。
结果依然符合约定,没有把某一类永远往后推。
宋严把小样本的完整记录存好,抬头问是否开始正式一轮。
“开始。”
这次没人再说话。
十二分钟的输入按事先确定的节奏进入。
屏幕上的数字并不总是更漂亮。某些短暂时段,原型反而留出一点余量,让系统不至于把所有资源一口气占满。
周野看见那个空着的部分,差点问为什么不用。
陈墨在旁边先开了口。
“他把后面一段需要的空间提前留出来了。”
周野问:“如果后面没来呢?”
“那就逐步收回来,不会永远空着。”
他解释完,目光又回到屏幕。
现场能看见的只是一小部分表象。真正让他重视的,是沈知行把几个原先互相牵制的要求放在一起之后,竟然没有依赖一堆复杂而脆弱的特判。
做复杂很容易。
以后每加一个场景,都继续往上补。
可这种东西用久了,谁也不敢轻易碰,任何一个小改动都像抽掉桌角垫着的纸。
眼前这层安排更干净。
他能看懂,也能看出后续怎样扩展。
正式轮次结束。
宋严先没有读总成绩。
他把输入数、完成数、失败数和取消数一项项对齐。几处最容易被忽略的尾部任务也展开核实,没有因为演示时间到就被悄悄留在统计之外。
许知夏在旁边对应用户侧的结果。
用户收到回应、真正拿到结果、可以开始下一步,是几件不同的事,她把它们清楚地分开。
陈墨则核对设备运行状态。
最后,三个人的记录放到一起。
宋严抬起头,声音比刚才慢了一点。
“这组条件下,超过约定等待阈值的任务,原方式八十一项,现在十四项。”
周野迅速低头记。
“后台那批都完成了,没有拿长期推迟换前面那部分的成绩。完整批次执行用时,缩短了约百分之二十八。”
他停了一下,补上范围。
“这是当前配置、当前输入的一轮结果。下一步需要重复和换条件。”
梁岳盯着两份完整记录。
这几个数字没有大到离谱,却同时满足了几个原本很容易互相牺牲的要求。
他很清楚,如果相近收益能在真实业务里稳定成立,意义远不止一张演示报告。
宋严把一段关键过程重新展开,拿自己的笔在纸上跟了一遍。跟到中间,他停下来,把原先准备补在后面的一条规则划掉。
“这条其实不用了。”他说。
沈知行看过去,点头:“前面已经保证过,后面重复检查只会多一道开销。”
宋严把纸往旁边推,露出一张更早的草图。那是他来之前自己尝试过的办法,零零散散加了不少判断,虽然能照顾一部分情况,却很难把整个过程讲得这么清楚。
他并没有把旧图藏起来。
“我原来想从这里补。”他指给陈墨看,“后来越补越多,最后准备先只做一种场景。”
陈墨看了一眼,说这条思路很常见,自己团队也走过类似的路。
宋严重新看向沈知行:“你怎么一开始就知道该把这一层单独拿出来?”
沈知行想了想,只回答眼前能解释的部分。他让宋严把几个反复出现的状态圈起来,指出原来被分散放在不同业务里的,其实是同一件事。先把它们认清,再决定放在哪儿,后面就少了很多互相拉扯。
宋严顺着圈完,坐在电脑前没有动。
“明白了。”他说。
这次的明白跟听懂一个演示结果不同。他拿回那张旧图,在背面重新画了第一条线,旁边没有写任何夸奖,只写了沈知行刚才提醒他先看的那个状态。纸上的线终于不再绕成一团。宋严将那张旧图也夹进笔记,没再把它揉掉。回去以后,他想先跟自己的同事完整讲一遍今天这个过程。
苏景明此时已经结束旁边的远程会议,走到机房门口,恰好听见宋严最后那句话。
他没有立刻让人安排发布。
先问:“原来的方案,是正常运行的基线?”
“是。”宋严说,“修过已知故障,没故意留一个坏版本来比较。”
苏景明点头。
“那继续看。”
这四个字很简单,却让屋里的气氛明显不同。
唐宁翻到新的空页,何敏把后续会谈安排留出更长时间,罗祺开始给自己那边发信息,准备正式把第二种设备的验证加入进来。
沈知行仍坐在原位。
他正检查一项记录是否描述得足够清楚。
周野凑过来,小声说:“他们看起来都挺高兴。”
“嗯。”
“你怎么跟交完一次普通作业似的?”
“我还没交完。”
沈知行指了指另一台机器。
周野顺着看过去,立刻把想说的话收回去。
对他来说,一轮成绩已经值得把宿舍群刷满。
对沈知行来说,还有几项约好的事情没做完。
许知夏看了眼时间,已经接近三点。
她把整理好的用户侧记录发给宋严,又告诉沈知行自己要去参加小组讨论,后面无法继续留在现场。
沈知行说好,认真道了谢。
“你标出的几处都很有用。”
“你们愿意改才有用。”她把本子收起来,“不然我只能当那个不断问为什么的人。”
“这个位置以后可能一直需要。”
许知夏抬头看他一眼。
“先把今天的做完,别提前给我安排工作。”
沈知行笑了。
她离开时,没有绕到苏景明旁边特意打招呼,只向大家说了一声,按时去了自己的项目组。
叶婧在线上看到她提交的记录,问沈知行后面是否能单独介绍认识。
“你可以通过学校联系她,她自己决定。”
“当然。”
宋严正在安排复核。
沈知行却让他先保存当前版本,不急着改新的条件。他将今天与基线相比变动了哪些地方,做成一张非常简短的对照。
有几处只是记录方式更清楚,并不直接贡献速度,他也标明了。
陈墨看完,问为什么连这些也要注明。
“免得以后有人把记录改了,以为算法变慢。”
陈墨轻轻点头。
这是一个做过真实交付的人才会持续惦记的麻烦。
罗祺问沈知行,是否愿意让曜芯后续针对特定设备再做更深入的合作。
“愿意谈。现在这组结果不能直接当成你们所有产品都能达到。”
“知道。”
“你们如果有兴趣,先挑一项真正想解决的。”
罗祺把那份资源清单重新拿出来。
这次他没把它当招聘附件,而是按后续项目需要,一项一项与陈墨确认。
何敏站在旁边,忽然觉得昨天食堂里那张薪酬说明好像已经很久以前的事情。
实际上只过去一天。
钱当然仍然有吸引力。
只是现在坐在这里的人都知道,单纯提高一个岗位的工资,未必是让沈知行愿意长期留下的最好方式。
梁岳走到门口,给一个同事拨电话。
第一遍没人接。
他又拨了一次,接通以后先问对方在忙什么。
那边似乎在开会。
梁岳看了一眼机房里的测试屏幕。
“你把能决定试点需求的人一起叫上,找个能看屏幕的地方。”
对方问出了什么问题。
“不是出问题。”
梁岳停了一下,想了一个更准确的说法。
“我们可能有办法,把你们每个月都在解释的那件事解决掉一部分。”
电话那头顿时安静。
周野恰好出来拿打印纸,听到后半句,站在原地等他挂断。
“梁总,还要加人?”
“加一个业务负责人。”
“我得记一下名字。”
“温景。”
周野写好,又问大概多久。
“十分钟,远程。”
“好。”
梁岳看见他把时间和姓名分开记,笑了笑,回机房继续看数据。
周野低头,把原本写着下午预计结束时间的那一栏留白。
他今天终于明白,真正忙起来的时候,谁也不会提前知道这页纸最后要写多满。