项目办公室的墙上贴着一张流程图。白色的纸面,蓝色和黑色的线条纵横交错,四个字母分别标在四条路径的末端——A、B、C、D。林苟站在流程图前面,手里端着一杯已经凉透的咖啡,他把它放在旁边的文件柜顶上,然后面对那张图闭上了眼。
他推演了A方案。面板亮了,他看见自己在系统上线的当天收到警报,三分钟内十九个报错窗口同时弹出,服务器的负载曲线像一条没有上限的上升斜线。他看见自己靠在椅子上,面前是客服转接过来的第七十三通投诉电话的提示窗。他睁开眼,选了B。
B方案的推演在面板上走了大约半分钟,他看见自己在用户投诉到消协的第四天,坐在会议室里对着一张空白的答辩表,面前坐着三个他不认识的人。他选了C。C方案推演完了之后,他的视线在面板上多停了一拍——总部的邮件弹出来,预算是超的,红色的数字在屏幕左上角闪了三下。他选了D。
D方案的推演一开始是暗的。图像出现得比前三个慢,第一帧画面是他签了项目确认书,然后时间跳跃了三周,他坐在同一间办公室里,桌面上没有堆满文件,电脑屏幕亮着但没有报错。面板浮出结论:“D方案会延期三个月。”林苟睁开眼,选了D。
结果D方案的逻辑框架上线之后,数据平台自动匹配上了三周前发布的行业新标准——那个标准在项目立项之后才出的,没人预料到。原本需要做的五轮格式调整因此直接跳过。项目进度反而比其他三条路径快了两周。
第二次卡点是供应商报价。三家供应商,三份报价单,价格差幅超过百分之四十。最低的那一档低得不像真实的——数字写在报价单的最后一栏,比市场平均价低了将近一半。林苟看着那份报价单,闭上眼推演了“选最低价”。面板上他在项目验收的第三个月收到质监通知,设备送检的三台样品全部不合格,参数偏离标准值的百分数被标红。他睁开眼,选了最贵的那家。
最贵的那家供应商在签约的时候主动给了五折。他们的理由是年底冲业绩——合同总额越大折扣越高,林苟的项目正好卡在他们优先客户的门槛线上。五折的价格比中间价还低了一截。采购流程走完的那天下午,负责采购的同事在走廊里朝他竖了一下拇指,他没看见。
第三次卡点出现在用户测试期。第一批反馈回来的数据只有二十三条,但其中十八条都指向同一个方向——“界面太复杂,学习成本高”。用户满意度得分显示在仪表盘上,百分之二十二。反馈意见里有一条写得比较长:“我用了两小时没找到心率监测的入口,退出之后卸载了。”林苟看着那份反馈报告,闭上眼推演了“全部重新开发”。面板上的时间线延长了八周,他看见自己在会议桌上对着新的交互稿发呆,桌角的台历翻了一页又一页。他睁开眼,只改了界面颜色。原来那片偏冷的蓝色主调换成了暖灰色,按钮的圆角扩大了一毫米,字重做了微调。两周后,第二次用户测试的满意度得分跳到了百分之八十九。
项目的庆功宴在公司食堂办的。王总让行政买了十箱啤酒,码在食堂靠墙的桌子上,摆了两排。人从办公区慢慢走进来,说话声和啤酒瓶盖被撬开的声音混在一起,不算嘈杂但有一种被填满了的氛围。林苟站在长桌的中间位置,面前放着一杯倒了半满的啤酒,他的右手正握着杯壁,指腹贴着玻璃外侧微凉的地方。
食堂一侧的墙上挂着一面大的显示屏。总部视频连线的信号接通了,副总的头像出现在屏幕上,背景是总部的会议室,白色的墙面和灰色的会议桌。副总对着镜头开口,声音从扩音器里传出来,带着一点视频连线的延迟:“林苟,总部决定——给你加薪百分之五十。”
掌声在食堂里散开,不算整齐,但持续时间比之前任何一次都长。林苟抬头看了一看屏幕,点了一下头,幅度不大,他没有笑。他保持着那个表情。
赵哥端着啤酒走过来的时候,食堂里的人声还在。他走路时酒杯倾斜着,啤酒的液面跟着他步伐的频率微微晃动。他在林苟旁边停下来,把杯沿往林苟的杯壁上碰了一下,杯壁相撞发出一声清脆的短音。“林主编,”赵哥说,“六年做到这个位置,全公司也就你了。”他仰头喝了一大口。
林苟端着杯的手停在半空。杯沿还在他嘴唇前面大约五厘米的位置,没有继续往上送,也没有放下来。“六年?”他问。赵哥已经把酒喝完了,他放下杯子,用大拇指擦了一下嘴角的泡沫,“对啊,你比我早来一年呢。”他把空杯子放在桌子上,转身走了。
林苟还站在那个位置。他把端着的半杯啤酒放在桌面上,然后转身,穿过人群,走到洗手间的门口,推门进去。门在他身后合上。洗手间里没有人,灯是自动感应的,他一进去就亮了。水龙头还在滴水,周期性的水滴落在不锈钢台面上,每一下的间隔大约两秒。他把酒杯放在洗手台边,双手撑在台面的边缘,面朝着镜子。
镜子里的他在笑。嘴角的弧度比正常人的微笑高了两毫米,大约是一个正在做表情但表情已经脱离了控制的人。那个笑挂在那里,既不扩大也不缩小,固定在一个他平时不会用到的位置。他盯着那个弧度看了大概三秒,然后抬起右手,用手指摸了摸自己的嘴角。他的手指碰到嘴角的时候,指尖在皮肤上停留了一下——他摸到的那个弧度是硬的,像是一个面具黏在脸上。他的手指沿着嘴角的弧度走了一小段,然后他感觉自己的手指在抖。不是大幅度的抖动,是一种细微的、持续的震颤,频率很高,从指尖传到指节,然后传到手腕。他用左手抓住右手的手腕,想让它停下来,但左手也在抖。他松开了手。
镜子里的他还在笑。嘴角的弧度和他几秒前看到的一模一样——没有降低,没有收拢,没有变回他平时的嘴角位置。他看着镜子里那个笑着的自己,在心里问了一个问题,声音很轻,没有说出口。如果他是四年前来的,那多出来的那两年是谁替他活的?他没有答案。
模拟器浮出来了。“反向操作成功。剩余安全阈值:1次。”
他看着那行字。他的视线在那行字上停了大概一秒,然后他看向镜子里自己的眼睛。他对着镜子里的自己说了两个字,声音很轻,轻到几乎只有嘴唇在动,没有气流发出:“六年。”
他松开手,拿起洗手台上的酒杯,把它放回了走廊外面的桌子上。他把酒杯放下的动作很轻,没有发出声音,杯底落在桌面上,轻轻地搁住了。