第5章 深夜办公室
晚上十点十七分,易科科技十六楼的灯光已经熄灭大半。
林默盯着屏幕上滚动的代码,指尖悬在键盘上方。数据标记清洗模型的初步框架已经搭好,但卡在一个关键参数上——标记可信度的权重分配。理论上应该用熵值法,但直觉告诉他,这组数据有隐藏的共线性问题。
他需要验证。
推开椅子起身时,才注意到办公室另一端还亮着一盏台灯。苏晚晴坐在工位前,平板电脑的蓝光映在她脸上,表情是绝对的专注。她手边摊着三本厚厚的行业报告,纸页边缘贴满了彩色标签。
“你还没走。”林默说。
苏晚晴抬起头,眨了眨眼,像刚从深水区浮上来:“几点了?”
“十点十八分。”林默走近她的工位,“你在查门店管理规范?”
“嗯。”她揉了揉眉心,“那些标记背后有地域特征。比如‘#缺货’在北方门店出现频率比南方高23%,但南方门店的‘*促销’标记更密集。我在找原因。”
林默看向她屏幕上打开的资料:《中国零售业区域运营差异白皮书》《生鲜商品冷链损耗率研究报告》……全是专业文献。
“有什么发现?”
“北方门店的缺货标记集中在冬季,尤其是生鲜类。”苏晚晴调出一张气温变化图,“我猜测和物流有关。冬天气温低,运输延误更频繁,但门店的订货周期没调整,导致断货。”
“而南方门店促销标记多,可能是因为竞争更激烈。”林默接过话,“我看了那些门店的地理位置,南方门店三公里半径内的竞争者数量平均比北方多1.7个。”
苏晚晴眼睛亮了:“数据支持吗?”
“刚算的。”林默指了指自己电脑,“用地图API抓了周边商业数据。”
两人对视了几秒。凌晨的办公室安静得能听见中央空调送风的微弱声响。
“所以权重分配不能一刀切。”苏晚晴在平板上快速写着,“北方门店的缺货标记可信度应该调高,南方门店的促销标记需要谨慎验证——可能真是竞争压力下的策略,也可能是虚报。”
“但还需要更细的颗粒度。”林默回到自己电脑前,“同一区域内,不同规模的门店执行规范也会有差异。”
“那得交叉比对门店档案。”苏晚晴站起身,“档案系统的权限我们有没有?”
“周凯给了临时权限,但只能查基础信息。”
“够了。”
接下来的两小时,办公室只剩下键盘敲击声和偶尔的低声讨论。林默负责写脚本抓取数据关联,苏晚晴构建分析模型。某个瞬间,林默抬头看向窗外——城市的灯火已经稀疏了许多,玻璃窗映出他们两个埋头工作的倒影,像某种镜像。
凌晨十二点零三分,苏晚平忽然说:“这里不对。”
林默走过去。她屏幕上显示着一个门店的数据流:缺货标记在某个周二集中出现,但同一天的销售数据却显示该商品有成交记录。
“矛盾。”林默皱眉,“要么标记是错的,要么销售数据是错的。”
“或者都不是错的。”苏晚晴放大地图,“看这个门店的位置——工业园区内,主要客群是工人。周二是他们发薪日,商品可能上午就卖空了,但下午才补货。销售记录是整天的,所以显示有成交,但中间确实存在缺货期。”
林默快速查询了发薪日信息:“确实,该区域的工厂多数在周二发薪。所以这个标记是‘时段性缺货’,不是全天缺货。”
“那我们的模型得加入时间维度。”苏晚晴已经开始修改代码,“标记不仅要看内容,还要看发生的时间点,以及该时间点的业务背景。”
林默看着她敲代码。她的手指移动速度极快,但几乎不出错,像经过精密校准的仪器。他忽然想起面试时陈立说的“1+1>2”——此刻他理解了。有些问题他需要十分钟推导,她三分钟就能补全业务逻辑;而某些数据模式,她能一眼看到,却需要他的算法实现验证。
“饿了。”苏晚晴突然说,手没停,“你饿吗?”
林默这才意识到自己胃部隐隐作痛。从中午食堂到现在,十三个小时了。
“有点。”
“楼下便利店还开着。”苏晚晴终于停下手,看了眼时间,“但我建议吃泡面。一来节省时间,二来便利店的食物此刻新鲜度低于标准值67%。”
“你怎么知道?”
“因为那家便利店每晚十点半补货,现在是十二点零七分,距离补货已经过去九十七分钟。生鲜类商品的最佳陈列时间是补货后两小时内。”她说得理所当然,“而泡面的保质期单位是年。”
林默忍不住笑了——很浅的笑,但确实笑了:“有道理。我去泡。”
茶水间有公司准备的免费泡面。林默拿了两桶红烧牛肉味,接热水时注意到苏晚晴跟了进来,靠在门框上揉着后颈。
“你经常熬夜?”他问。
“必要的时候。”苏晚晴说,“时间是最稀缺资源,有时需要用睡眠兑换。”
“兑换率是多少?”
她想了想:“对我来说,连续三天睡眠少于五小时,认知效率下降30%以上,就不划算了。所以我在控制——今晚是本周第一次过十二点。”
林默把泡好的面推给她一碗:“那吃完应该收工了。”
“模型还差最后一个验证环节。”苏晚晴接过泡面,撕开盖子,热气扑在她脸上,“再给我四十分钟。”
“我帮你,能快一倍。”
“成交。”
他们端着泡面回到工位,边吃边继续。红烧牛肉味的香气在安静的办公室里弥散,混着纸页和电子设备的气味。林默瞥见苏晚晴吃泡面的样子——依然很规整,每一口都吹凉,面条卷得恰到好处,没有发出一点声音。
凌晨一点二十分,模型验证通过。
准确率89.7%,比他们预想的还高两个百分点。苏晚晴把最终报告保存好,伸了个懒腰,骨节发出轻微的响声。
“可以走了。”她说,声音里终于透出一丝疲惫。
关电脑,收拾东西。办公室只剩下安全出口标志的幽绿光线。等电梯时,林默忽然问:“你为什么这么拼?”
苏晚晴看着电梯楼层数字跳动:“因为需要。”
“需要什么?”
“证明。”她转过头,在昏暗光线里,她的侧脸线条显得格外清晰,“证明我选的路是对的,证明我能靠自己在江州站稳,证明……”她停顿了一下,“证明我配得上那些机会。”
电梯来了。进去后,她才继续说:“你也是吧?特困生档案,全额助学金,每一分钱都要计算用途。你更没退路。”
林默默认了。
电梯下行。苏晚晴又说:“但你和我不一样。你有一种……天赋。那种直觉。如果我是用公式推导世界,你好像是直接看到了答案。”
“有时候是。”林默承认,“但不总是好事。无法解释的过程,会让人怀疑结果的可靠性。”
“所以你需要我这样的人。”苏晚晴说,“我能补全你的逻辑链,让那些直觉变得可解释、可验证。”
林默看向她:“那你需要我什么?”
电梯到达一楼,门开了。深夜的风灌进来,带着凉意。
“速度。”苏晚晴走出电梯,声音很轻,“你能在信息不全时做出高质量猜测,缩短试错周期。而时间,是我最缺的东西。”
大厦门口,两人要走向不同的方向。
“明天九点见。”苏晚晴说。
“记得你的睡眠兑换率。”林默提醒,“再熬夜效率会降。”
“知道。”她顿了顿,“谢谢你的泡面。”
“不客气。”
林默看着她走向地铁站,背影在路灯下拉长又缩短。然后他转身,朝旧教职工宿舍的方向走去。街道空旷,偶尔有出租车驶过。他大脑里还在回放今晚的片段:那些数据、那些标记、那些默契的配合瞬间。
手机震动,是周凯发来的消息:“看到你们提交的模型草稿了,牛逼!明天上午我和业务部门沟通,等好消息。”
林默回复:“收到。”
他放下手机,抬头看了看天。城市的光污染遮住了星星,但月亮很亮,半悬在楼宇之间。他想起来,苏晚晴说“证明”时的表情,那种深藏在冷静之下的迫切。
他们确实不一样。她要用逻辑构建安全区,他靠直觉寻找突破口。但在这个深夜,他们用两桶泡面的时间,共同完成了一个可能改变实习轨迹的项目。
回到宿舍已经凌晨两点。林默简单洗漱后躺下,闭眼时眼前还是代码和数据流。但最后定格的画面,是苏晚晴在茶水间吃泡面时,热气后面那双过于清亮的眼睛。
他设了七点的闹钟。
第二天早晨八点五十分,林默踏进办公室时,发现苏晚晴已经在了。她换了件白色衬衫,头发重新扎得一丝不苟,正端着咖啡和周凯说话。
“来了?”周凯看到他,立刻招手,“正好!我刚跟业务的老王开完视频会,他把当年项目的内部文档都发过来了。你们猜怎么着?那些标记真的有戏!”
周凯的工位上摊开了打印出来的文档——三年前那个智能补货项目的原始设计。厚厚的几本,里面是手写的备注和各种颜色的荧光笔标记。
“项目失败的原因很复杂,但数据本身有价值。”周凯兴奋地说,“老王说,如果你们真能把这套标记清洗出来,做成可信度评估模型,他们业务部门愿意试点用起来!”
苏晚晴和林默对视一眼。
“试点规模多大?”苏晚晴问。
“先选二十家门店,跑一个月。”周凯说,“如果效果明显,可能会扩大到整个区域。”
“我们需要更多业务背景信息。”林默翻开那些文档,“这些手写备注是谁写的?门店经理?督导?不同角色的标注可信度不一样。”
“问得好。”周凯打了个响指,“下午老王亲自过来,你们当面问。但现在——”他压低声音,“陈总刚知道这事了,很感兴趣。他说如果试点成功,这可以做成一个独立的分析工具,甚至可能作为产品模块卖出去。”
空气安静了几秒。
苏晚晴先开口:“那我们需要更完整的方案,包括实施计划、风险评估、预期效益测算。”
“下午三点前能出来吗?”周凯问。
“可以。”林默说。
“可以。”苏晚晴同时说。
周凯笑了:“我就喜欢你们这劲儿。去吧,今天给你们最大的自主权,需要什么资源直接跟我说。”
回到工位,苏晚晴调出昨晚的模型:“基础框架有了,但要产品化,还得加很多层:用户界面、权限管理、结果可视化……”
“还有算法解释模块。”林默补充,“业务人员需要知道为什么某个标记被判定为可信或不可信,不能是黑箱。”
“那会增加复杂度。”
“但能提高接受度。”
他们又进入了那种工作状态——快速对话,高效分工,几乎不用解释就能理解对方的意图。上午十一点,周凯送来两份食堂打包的盒饭:“别下去吃了,抓紧时间。”
两人边吃边继续。林默发现苏晚晴吃工作餐的样子和吃泡面时一模一样:规整、高效、没有多余动作。她像是把自己也编成了一个程序,优化掉了所有不必要的消耗。
下午两点四十五分,方案完成。十五页的文档,包括技术架构、实施步骤、风险管控,甚至初步的ROI测算——最后这部分是苏晚晴独立完成的,数据翔实到让林默都多看了一遍。
“你这财务模型是现学的?”他问。
“昨晚查资料时顺便看的。”苏晚晴说,“基础的投资回报分析不难,关键是参数设定要合理。”
林默注意到她的眼睛有点红,但眼神依然锐利。
下午三点,业务部门的王经理准时出现。四十多岁,微胖,穿着 Polo衫,说话声音很大。他翻完方案,第一句话是:“你们实习生搞的?”
“是。”苏晚晴回答。
王经理摸了摸下巴:“后生可畏啊。当年我们搞这个项目,光需求讨论就开了两个月,最后还黄了。你们两天就弄出这么个东西?”
“站在前人的肩膀上。”林默说,“如果没有你们当年积累的数据和文档,我们做不了。”
这话说得很得体。王经理脸色明显缓和了:“行,那就试试。我挑二十家执行力强的门店配合你们,跑一个月数据。但我丑话说在前头——”他看向周凯,“要是没效果,或者给门店添麻烦,我随时叫停。”
“没问题。”周凯拍胸脯。
送走王经理,周凯转身对林默和苏晚晴竖起大拇指:“干得漂亮。陈总下午外出,但他说了,这个项目如果跑通,算你们实习期的重大贡献。”
回到工位,苏晚晴长长舒了口气。她靠在椅背上,闭眼揉了揉太阳穴。
“你该休息了。”林默说。
“嗯。”她睁开眼,“昨晚加今天,我的认知效率已经开始下降了。刚才和王经理说话时,我差点把ROI数字说错。”
“下降了百分之多少?”
“目测15%左右。”苏晚晴看了眼时间,“我打算六点准时下班,回去睡足七小时。”
“明智。”
下班前,林默收到了助学金到账的短信通知。他看着账户余额,忽然想起苏晚晴说的“证明”。或许他们都在证明,只是证明的对象不同。
关电脑时,苏晚晴忽然说:“下周开始,我们要经常跑门店吧?”
“可能。”
“那我得准备双平底鞋。”她说着,从包里拿出一双折叠的平底鞋,换下了脚上的低跟鞋,“数据采集需要实地观察,高跟鞋不适合。”
林默看着她这个动作——计划周全到连鞋都备好了。
“你总是这么准备充分。”
“因为意外成本最高。”苏晚晴把高跟鞋装进布袋,“对了,你昨天说衬衫扣子要缝,缝了吗?”
林默低头,第二颗扣子果然还摇摇欲坠:“忘了。”
“给我。”苏晚晴伸出手,“我带了针线包。”
林默愣住。
“别误会,是基础生存技能。”她从包里真的拿出一个小小的针线包,“福利院教过吧?缝扣子这种。”
林默脱下衬衫递给她。苏晚晴接过,穿针引线,动作熟练得像个裁缝。办公室里只剩下他们两人,夕阳从西侧的窗户斜射进来,在她手指上镀了一层金边。
“好了。”两分钟后,她把衬衫递回来,“这次不会掉了。”
林默接过,扣子缝得很牢固,线迹整齐。
“谢谢。”
“不客气。”苏晚晴收拾好东西,“走了,周一见。”
她离开后,林默坐在工位上,拿着那件衬衫看了几秒。缝扣子的线是浅灰色的,和他衬衫颜色几乎一样,不仔细看根本注意不到。
很符合她的风格——解决问题,不留痕迹。
他把衬衫叠好,装进背包。走出大厦时,傍晚的风吹过来,带着初夏特有的暖意。手机又震了一下,是房东发来的消息:“小林,下季度房租还是按六百收吧,我看你也不容易。”
林默站在路边,打了两个字:“谢谢。”
他抬头看向十六楼的窗户。某个工位上,一个刚刚起步的项目正在沉睡,等待下周被唤醒。而他和那个缝扣子的女生,即将一起走进二十家真实的门店,把数据模型变成可以触摸的现实。
城市在黄昏里变换着光影。林默想起福利院老师的话:“有些路,得和人一起走。”
他以前不懂。现在,好像开始有点懂了。
不是所有的路都需要直觉预判。有些路,走着走着,才会知道通向哪里。而此刻,他至少知道,周一的早晨,会有一个人带着平底鞋和针线包,准时出现在那里。
这就够了。暂时够了。