沈夜是在第二天上午正式进入锐恒科技调查的。
“正式”这个词用得有些勉强。他拿着介绍信去的,锐恒的法务和HR全程陪同,态度好得无可挑剔,该提供的资料提供,该配合的配合,该回答的问题回答,每一句话都经过三个人的眼神确认才说出口。
沈夜在审讯室里见过太多嫌疑人,知道什么叫“配合式沉默”,你问什么他都答,但答案里永远没有你想要的东西。
锐恒科技的配合就是这种。
公司安排的对接人是孙雅琴,就是昨天电梯里遇到的那个HR总监。她今天换了一身黑色的职业装,大概是刻意选的,毕竟公司刚死了人。但她的口红还是红的,那种介于“职业”和“mourning”之间的暗红色。
“沈警官,您需要看什么,我们全力配合。”孙雅琴把沈夜领到一间小会议室,桌上已经摆好了文件夹和矿泉水。
沈夜没碰矿泉水。他打开文件夹,里面是马学成的人事档案。
马学成,男,三十四岁,未婚,滨城本地人。大学读的计算机,毕业后在两家小公司各了两年,五年前入职锐恒科技,后端开发岗。过去三年的绩效评分分别是B+、B、B-,呈下降趋势。最近一次绩效面谈记录上写着:“需提升工作效率,建议加强时间管理。”
“他的绩效在下降?”沈夜问。
“略有波动,属于正常范围。”孙雅琴说。
“B+到B-,三年降了两档,在你们公司这叫‘正常范围’?”
孙雅琴的微笑没有变化。“我们公司的绩效体系比较严格,B-属于‘待改进’,但并非末位。马学成的专业能力是得到认可的,只是在……”她斟酌了一下用词,“在团队协作方面有所欠缺。”
“什么意思?”
“他不太合群。加班的时候基本不跟同事交流,中午也不在食堂吃饭,自己带饭在工位上吃。团建从来不参加。”
沈夜想起了昨天的笔录,“不认识”“点头之交”“什么都不知道”。一个每天在公司待十四个小时的人,死在同事面前,却没有一个同事了解他。
“他的‘自愿加班’是什么时候开始的?”
“去年三月,公司推行‘奋斗者计划’,他是第一批签署自愿加班协议的员工。”
“第一批有多少人?”
“当时是六十几人,后来陆续增加,目前有三十七人。”
“三十七个人,每天工作十四个小时以上,每周六天。”沈夜重复了一遍这些数字。“你们的劳动法合规审查是怎么做的?”
孙雅琴的笑容终于出现了肉眼可见的停顿。“沈警官,自愿加班是员工自主选择的行为,公司不强制。协议里写得很清楚。”
“不强制。”沈夜点了点头,“那‘低绩效池’呢?不签自愿加班协议的人会被放进低绩效池,这也是‘自主选择’?”
孙雅琴没有回答。她看着沈夜,脸上的表情像是一扇刚刚被敲了敲但拒绝打开的门。
“沈警官,我来配合您调查马学成的死因,不是来讨论公司的人力资源政策的。”
“马学成的死因可能就跟你的人力资源政策有关。”
这句话让孙雅琴的脸色变了一瞬,很快,不到半秒,但沈夜捕捉到了。
“我会把您的疑问反馈给管理层。”她最终说。
“不用反馈,”沈夜站起来,“我自己去看。”
锐恒科技的办公区在四十二到四十七层,占了六层楼。沈夜从四十七层开始,一层一层往下走。
四十七层是技术研发部,马学成生前所在的地方。沈夜昨晚来过,但那时候是凌晨,灯光昏暗,人走了大半,只有加班区亮着灯,整层楼像一艘空船。现在是大白天,灯全开着。
锐恒的办公室没有窗户意义上的自然光,整层楼靠光灯照明,色温统一在4000K,但沈夜觉得那光像是一种漂白剂,把所有人的脸色都洗成了同一种苍白。
他走进开放办公区的时候,感觉走进了一个巨大的蜂巢。
工位密密麻麻地排列着,每排八个,中间隔着一米二的通道。每个工位都用低矮的隔板分开,刚好挡住视线,让你看不见对面人的脸,但又能听到他们敲键盘的声音。空气里是中央空调循环出来的恒温气体,混合着咖啡和方便面的气味。
沈夜站在通道中间,看着两排低头的脑袋。所有人都对着屏幕,戴着耳机,手指在键盘上移动。偶尔有人抬头看他一眼,不是好奇,而是一种本能的警觉,然后迅速低下头去。
没有人说话。
或者说,这里不需要说话。所有交流都通过屏幕完成,即时通讯软件、邮件、代码注释。沈夜注意到,相邻的两个工位之间,两个人明明伸手就能够到对方,但他们正在用聊天软件对话。
他走近了一些,看到其中一个人的屏幕上弹出一条消息:“需求改了,今晚能交吗?”
那个人回复了一个字:“能。”
沈夜沿着通道往里走,经过一排排工位,看到每个人的桌上都有一个白色的药盒,和马学成桌上那个一模一样,圆的,LED屏幕,侧面印着笑脸。有的药盒屏幕亮着,显示“今已服药 ✓”;有的暗着。
他走到一面墙前面停住了。
那面墙大概有十米长,从地板到天花板全被利用了。左边是“锐恒价值观”,创新、奋斗、共赢,三个金色的大字。中间是“奋斗者光荣榜”,贴着每个月的加班时长排名,第一名的小照片被放大了一圈,用红框框起来,下面的统计数字显示:本月加班 187 小时。右边是“健康小贴士”,打印了几张海报,标题分别是“久坐的危害”“护眼小妙招”“科学补充维生素”。
沈夜盯着那个“187小时”看了几秒钟。一个月三十天,加班187小时,意味着每天加班超过6小时。按正常工作8小时算,这个人每天在公司待14个小时以上。
光荣榜。
他转过头,看到走廊尽头有一块电子屏,滚动播放着公司公告和新闻。他走过去,站在屏幕前面看了一会儿。
屏幕上正在循环播放几条内容:
“恭喜AI组提前完成二期交付,公司特别奖励团队旅游基金!”
“本月‘奋斗之星’:张明远,加班时长第一,贡献代码量第一!”
“温馨提示:冬季流感高发,请各位同事按时服用维生素,注意保暖哦~”
“深切缅怀马学成同事,愿天堂没有bug。”
沈夜站在那里,看着屏幕。第一条公告和最后一条公告之间隔了大概三秒钟。从“恭喜”到“深切缅怀”,三秒钟。电子屏不会尴尬,不会停顿,不会觉得这两条消息放在一起有什么不对。它只是在执行程序,按照设定的时间间隔,一条一条地滚动。
恭喜。
缅怀。
继续。
沈夜约谈的第一个对象是林小蕾——那个发现马学成尸体的人。
林小蕾二十四岁,前端开发,入职一年半。她坐在会议室里的时候一直在抖——不是因为冷,会议室的空调开到了二十四度;也不是因为害怕,她已经哭过一轮了,眼圈红肿但已经了。她在抖是因为她体内还有大量的——沈夜注意到她的工位上有四个空的红牛罐子和一杯没喝完的浓缩咖啡。
“林小蕾,”沈夜翻开笔记本,“你和马学成是什么关系?”
“对面。”林小蕾的声音沙哑。
“对面?”
“坐对面。工位对着工位。我抬头就能看到他。”
“你们平时聊什么?”
“不聊。”林小蕾抬头看沈夜,眼神里有一种奇怪的无措,“我们每天面对面坐十四个小时,但不聊天。偶尔在茶水间碰到了会点个头,就这样。”
“你对他了解多少?”
林小蕾想了想。“他……中午自己带饭,用一个蓝色的保温盒。不喝咖啡,只喝水。键盘声音很大,青轴的,我有时候觉得吵但没好意思说。上周他好像感冒了,一直在咳嗽,我问他要不要请假,他说不行,赶不上。”
“就这些?”
“就这些。”林小蕾低下头,手指绞在一起,“我们对坐了一年半,我知道的只有这些。他叫马学成,三十四岁,中午自己带饭,键盘很吵。其他的我什么都不知道。我不知道他有没有女朋友,不知道他住哪里,不知道他喜欢什么讨厌什么。我甚至不知道他姓什么……直到昨天我才知道他姓马。”
她顿了一下,声音更低了:“我听到他死的时候,我第一反应不是‘他死了’,是‘他那个位置空出来了’。然后我就……”
她没说完,但沈夜明白。她为自己的第一反应感到羞耻。一个活生生的人死了,她的第一反应是“工位空了”,这不是她冷血,这是这个环境把她训练出来的。
在这里,人等于工位,工位等于产出,产出等于数字。一个人死了,首先不是失去了一个生命,而是空出了一个位置。
“他的药盒你见过吗?”沈夜问。
“见过。每个人都有。公司发的,说是关怀计划。”林小蕾指了指自己的口袋,“我也有一个。”
“你吃药了吗?”
“吃了。每天三次,药盒会亮,手机会弹提醒,我就吃。”她从口袋里掏出药盒放在桌上,和马学成那个一模一样,“大家都吃。没什么特别的,就是维生素嘛。”
“你打开看过药片吗?什么颜色?”
“粉色的。小小的,圆圆的,上面有个字母V。”林小蕾说完,像是突然意识到了什么,脸色变了,“马哥的……不是粉色?”
沈夜没回答。
“你的药盒最近有没有收到过升级通知?”
“升级?我不太注意这些。它提醒我吃药我就吃,其他功能我不用。”
“你有没有觉得吃药之后有什么不对……困、心跳快、头晕?”
林小蕾摇头。“没有啊,挺正常的。吃完该活活。”
沈夜点了点头,让林小蕾走了。她走的时候在门口停了一下,回过头来看了他一眼。
“沈警官,”她说,“马哥的死……跟药盒有关系吗?”
“我们在调查。”
“如果跟药盒有关系……”她的声音很轻,“那一千五百多个吃了药的人呢?”
她走了。会议室里只剩下沈夜一个人,和桌上那个白色的药盒。药盒的LED屏幕还在亮着,笑脸还在笑。
沈夜约谈的第二个人是刘伟。
马学成的组长。就是那个第一个走过去探脉搏、然后说“他的还没交”的人。
刘伟三十八岁,中等身材,微胖,发际线还在但已经开始后退,戴一副金属框眼镜,穿格子衬衫,IT男的制服。他走进会议室的时候,沈夜注意到他的手在抖,而且不是一般的抖,是那种端着水杯但水会洒出来的抖。
“刘伟,组长,入职七年。”刘伟坐下来,自己先报了一遍身份信息。
“你和马学成是什么关系?”
“上下级。他是我组里的开发。”
“平时交流多吗?”
“工作上的交流多。他负责后端的核心模块,每天要跟我对进度。”刘伟推了推眼镜,手还在抖,“私底下……不太多。他不太爱说话,我也不太爱说话。我们就是活,活就行了。”
“你说他最近状态不好,提过头疼?”
“对。上周他跟我说头晕,我让他去看看,他说没时间。我说你至少请半天假,他说不行,赶不上。”
“赶不上会怎样?”
刘伟沉默了几秒钟。他的手指在桌面上无意识地敲着,哒哒哒,节奏和周牧原打代码的节奏很像。
“进了低绩效池,年终考核不过,要么降薪,要么走人。”他说,声音很平,“马学成已经B-了,再来一个C就是劝退。他房贷还没还完,不可能走。所以他说‘不能停’。”
“不能停。”沈夜重复了这个词。
“你也不能停?”沈夜问。
刘伟抬起头,看着沈夜。他的眼睛里有一种沈夜很熟悉的东西,不是恐惧,不是愤怒,是一种更基础的、更本能的东西:疲倦。一种深到了骨头里的、不是睡一觉就能补回来的疲倦。
“沈警官,你有房贷吗?”
“没有。”
“车贷呢?”
“也没有。”
刘伟点了点头,像是在确认他们之间的某种无法跨越的距离。“我有。房贷每月八千三,车贷三千二,女儿幼儿园每月四千五,老婆去年辞职在家带二胎。我一个月到手两万一,扣完这些还剩五千,五千要覆盖一家四口的生活费、水电煤气、物业费、双方父母的赡养费。”他扳着手指算,语速越来越快,“我上个月给车做了个保养,一千二,那个月就没钱交物业费,拖了半个月被催了两次。”
他停下来,深吸一口气。
“所以,对,我也不能停。”
沈夜看着他。三十八岁,组长,看起来像四十五岁。格子衬衫的领口有点泛黄,眼镜的一条腿上缠着透明胶带。他坐着的姿势是佝偻的,肩膀向前缩——身体已经忘记了怎么站直了。
“你的药盒呢?”沈夜问。
刘伟下意识地摸了一下口袋,然后又放下了。“在工位上。”
“你吃吗?”
“吃。每天都吃。”
“有没有觉得不对?”
“什么不对?”
“吃了以后有没有异常反应……困、心慌、头晕?”
刘伟想了想。“好像……最近确实比以前容易困。尤其是下午两三点的时候,以前扛一扛就过去了,现在不行,必须站起来走动一下,不然就睁不开眼。”
“你中午吃药吗?”
“吃。早中晚都吃。”
“中午吃完药之后特别困?”
刘伟的表情慢慢变了。他看着沈夜,嘴巴微微张开,像是有什么话到了嘴边但又咽了回去。
“刘伟?”沈夜追问。
“我……”刘伟的声音发紧,“我以为是正常的。中午本来就犯困……”
“但你是吃完药之后犯困,不是吃完饭之后。”
刘伟不说话了。他的手停止了抖动,不是平静了,是僵住了。
沈夜观察着他的反应。恐惧?是的。但还有一种更复杂的东西,像是恐惧之下还埋着别的什么。内疚?隐瞒?
“刘伟,你知道马学成药盒里的药不是维生素。”
这不是问句。
刘伟的脸一下子白了。一秒钟之内,所有的血色都从他脸上撤退了。
“我……”
“你不用否认。你的反应已经告诉我了。”沈夜的声音不高,但每个字都像是钉子一样敲在桌面上,“我再问一遍:你知道马学成药盒里的药被换了吗?”
刘伟的嘴唇在抖。他的手指攥紧了裤腿的布料,指关节发白。
“我……我只是……”
“只是什么?”
刘伟闭上眼睛。当他再睁开的时候,沈夜看到了一种他没预料到的表情——不是害怕被发现的恐惧,而是一种更深处的、像裂缝一样蔓延的崩溃。
“我只是想让大家不要那么累。”刘伟说。
声音很小。小到沈夜几乎要凑过去才能听清。
“什么意思?”
“晚上加班的时候,最难熬的是十一点到凌晨一点那段时间。脑子转不动了,眼皮在打架,但进度压着,不能睡。有人喝红牛,有人喝浓咖啡,有人用冷水洗脸,但最管用的是……”
他停住了。
“是安眠药。”沈夜替他说完。
刘伟摇头。“不,不是你想的那样。我不是要毒死谁。我只是……我只是觉得,如果大家中午吃一颗安眠药,哪怕只有半颗的量,中午就能真正休息一会儿……趴在桌上睡二十分钟……下午精神会好很多。比红牛管用,比咖啡管用。”
“所以你把药盒里的维生素换成了安眠药?”
“不是所有的!只是中午那一颗!”刘伟的声音突然高了起来,带着一种失控的急切,“早上的还是维生素,晚上的也是,只有中午那颗我换成了唑吡坦……剂量很低的,半颗的量,不会出事……”
“马学成有心律不齐。”
刘伟的声音戛然而止。
“你知不知道他有心脏问题?”
“我……我不知道……他没说过……”
“你们对坐七年,你不知道他心脏不好?”
“我们从来不聊这些!”刘伟几乎是吼出来的,然后又立刻压低了声音,“我们不聊私事,不聊健康,不聊家庭。在这个公司,聊这些是……是不专业的。你一旦让人觉得你身体不好、撑不住,你就会被标记……”
他停住了。
“被标记什么?”
刘伟看着沈夜,眼睛里有一种溺水者才有的绝望。
“低效节点。”他说,“公司内部的说法。效能分析系统会给每个员工打标签,产出不够、加班不够、健康数据异常的,都会被标记成低效节点。进了这个名单,就意味着……”
“意味着什么?”
“意味着你快被淘汰了。”
沈夜沉默了很长时间。会议室外面,有人在走廊里走过去,高跟鞋敲在大理石地面上,声音很脆。
“你换了多少人的药?”沈夜问。
刘伟低下头。“我……我们组的。五个人。”
“包括马学成?”
“包括。”
“药哪来的?”
“网上买的。一个论坛,暗网的那种,不用处方就能买到唑吡坦的仿制药。我买了半年的量,自己做了糖衣,看起来跟维生素一模一样。”
“你知道那个论坛是谁开的?”
“不知道。注册用户名是‘夜行客’,没有实名。转账用比特币。”
“ABYSS。”沈夜说。
刘伟抬起头。“什么?”
“那个论坛,和要查的东西有关。你先回去,别跟任何人提今天说的话。”
刘伟站起来,走到门口又停住了。他回过头来看着沈夜,脸上的表情很复杂,有恐惧,有后悔,还有一种说不清的、像是想要被理解的东西。
“沈警官,我不是坏人。”他说,“我只是……太累了。大家都太累了。我只是想让大家能稍微休息一下。”
他走了。
沈夜约谈的第三个人不是正式约谈,更像是闲聊。
他叫张明远,二十九岁,后端开发,就是光荣榜上那个“奋斗之星”,加班时长全公司第一的人。沈夜在茶水间遇到他的时候,他正在用微波炉热一份外卖,外卖盒子上印着“满30减15”的红色标签。
张明远很瘦,头发油腻,黑眼圈重得像是化了妆。他看到沈夜的时候先是一愣,然后露出一丝警惕。
“你是昨天来的那个警察?”
“对。”
“我问你个事儿……我们那个药盒,还能不能吃了?”
“你觉得呢?”
张明远犹豫了一下。“我老婆让我别吃了。但我今天中午还是吃了。不吃不行——药盒亮着,手机弹通知,旁边的人都在吃,你不吃就……”他比了个手势,说不上来。
“你每天加多久班?”
“十六个小时吧。有时候十七个。”张明远说这话的时候语气很平,像是在报一个天气预报,“早上九点到凌晨一点,周一到周六。周有时候也来。”
“你有效代码产出多少?”
张明远看了沈夜一眼,眼神里闪过一丝什么,也许是心虚,也许是无奈。“你连这个都知道?”
“刘伟跟我提过。”
张明远叹了口气。“我产出确实不高。但我坐在这里啊。系统看的是时间,不是质量。我坐十六个小时,哪怕有六个小时在刷视频,我也是‘奋斗之星’。”
他端着热好的外卖走出茶水间,走了两步又回头。
“警察同志,我跟你说实话……我知道我这个‘奋斗之星’是个笑话。但我能怎么办?我回到家也睡不着,不如在公司坐着,至少系统记录我在加班,绩效不降。我老婆问我为什么每天回来那么晚,我说赶。其实有时候不赶。但我不能早回来……早回来就是‘低效’,低效就进池子,进了池子就等着被裁。”
他苦笑了一下。“所以我就在这坐着。像个灯泡。开着就行,亮不亮无所谓。”
他走了。沈夜站在茶水间里,看着微波炉的转盘还在空转,发出嗡嗡的声音。
像一个灯泡。开着就行,亮不亮无所谓。
这就是饲养场的真相,不是你拼命,是让你以为拼命是唯一的活法。不是把你锁在格子里,是让你自己走进去,然后锁上门,把钥匙扔掉。
沈夜离开锐恒科技的时候是下午五点。
电梯从四十七层降到一层,用了四十五秒。在这四十五秒里,沈夜看着电梯里的数字一点点变小……47、46、45、44……像是某种倒计时。
出了大楼,沈夜被傍晚的阳光刺了一下眼。他站在锐恒科技大厦的门口,抬头看了看这栋楼。五十二层,深蓝色的玻璃幕墙,在夕阳下反射出金红色的光,看起来庄严、现代、高效。像一座神殿。
祭祀的是什么神?
效能。产出。KPI。
沈夜点了烟,靠在大楼门口的柱子上,看着下班的人流从旋转门里涌出来。五点,准时下班的人,这些是不参加“奋斗者计划”的人。他们的表情比楼上的那些人好一些,但也好不到哪里去,大多数人低头看手机,走路的速度很快,像是急着从一种囚禁赶往另一种囚禁。
他注意到人群中有一个熟悉的身影——刘伟。他走得很慢,落在人群后面,双手在裤袋里,肩膀耷拉着。他走到停车场,没有立刻上车,而是站在车旁边,低着头,一动不动。
沈夜远远地看着他。
刘伟站了大概两分钟,然后抬起手,抹了一把脸。从远处看不清他的表情,但那个动作,用手掌从上到下抹一把脸,沈夜太熟悉了。那是在把眼泪抹掉,或者阻止眼泪流出来。
然后刘伟上了车,发动引擎,开走了。
沈夜掐灭烟,走向自己的车。他坐进去,没有立刻发动,而是掏出手机给秦鹿发了条消息:
“查一下暗网论坛,关键词‘夜行客’,卖唑吡坦仿制药的。另:锐恒的效能分析系统,你能远程进入吗?”
秦鹿的回复很快:“已经进去了。但你得来看看这个。”
沈夜赶到局里的时候,秦鹿正面对着三个屏幕发呆。
“沈哥,你看这个。”她把主屏幕转向沈夜。
屏幕上是锐恒科技的效能分析系统后台,秦鹿不知道用什么方式拿到了管理员权限。界面的设计很简洁,甚至可以说很好看,深蓝色的背景,白色的文字,各种数据用圆角卡片整齐地排列着。但如果仔细看那些卡片上的内容,你会觉得脊背发凉。
每个员工都有一张卡片。卡片上有名字、工号、部门、职位,然后是一系列数字:均工时、代码行数、bug率、完成率、加班时长排名。在这些数字下面,有一个标签,绿色的是“高效节点”,黄色的是“待观察”,红色的是……
“低效节点”。红色的标签,像一块小小的伤疤。
马学成的卡片上就是红色的。
沈夜点开马学成的卡片,更多的数据弹了出来:体检数据、心率曲线、睡眠时长、药盒服药记录、OA系统登录时间、键盘敲击频率,甚至还有鼠标移动轨迹。
“这些数据他们都有?”沈夜的声音有些发。
“全都有。员工的每一个行为都被记录、量化、分析。”秦鹿推了推眼镜,“而且你看这个……”她点开了另一个页面,上面是一份自动生成的“员工效能报告”,标题写着“第47周效能周报·马学成”。
报告的内容是一系列评价和建议:
“本周加班时长 62h,低于部门平均 68h,建议增加工作投入。”
“本周代码产出 3421行,低于上月平均 3876行,效能下降 11.7%。”
“心率数据异常波动频率上升,建议关注。”
“药盒服药依从率 100%,健康习惯良好。”
沈夜盯着最后一行。
药盒服药依从率 100%。健康习惯良好。
他吃了每一颗药。每一颗被掉包的药。他都吃了,按时吃了,药盒记录了,系统判定“依从率100%”,然后给了一个“健康习惯良好”的绿色标签。
“系统知道他吃了安眠药吗?”沈夜问。
“这就是最诡异的地方。”秦鹿的声音压低了,“药盒的固件……就是我之前说的那个被OTA升级过的……它记录的服药数据只包含‘是否开盒’和‘是否点击确认’,不包含药片的实际成分。也就是说,系统只知道马学成打开了药盒、点了确认,就默认他吃了维生素。至于他实际吃的是什么……系统不知道,或者……”
“或者不在乎。”沈夜接了下半句。
“对。不在乎。因为系统的目标不是确保员工健康,而是确保员工‘看起来健康’……按时吃药,按时打卡,按时提交代码。只要数据是好的,人好不好不重要。”
沈夜看着那些数据、那些标签、那些评价,感觉像是看一张巨大的、精密的、冰冷的网。每个员工是网上的一个节点,每个节点都被一线牵住,线的另一头连着一个系统,系统在计算每个节点的“效能”,然后据计算结果决定是拉紧还是松开——或者,直接剪断。
“马学成被标记为‘低效节点’是什么时候的事?”沈夜问。
“两个月前。”秦鹿调出了记录,“他上季度的绩效评分从B降到了B-,同时他的加班时长连续三周低于部门平均,因为他生病了,感冒,咳了两周,每天只能加到十点就撑不住了。系统判定他‘效能下降’,自动升级为‘低效节点’。”
“生病了,加不了班,所以被判定为低效。”
“对。”
“然后呢?低效节点会怎样?”
秦鹿又点开了几个页面。“据系统设定,‘低效节点’会被纳入‘重点关注名单’,HR会安排绩效面谈。同时,系统会调整该员工的药盒提醒频率和健康建议内容。”
“调整?怎么调整?”