第二天早上七点五十,林辰提前四十分钟到了公司。
电梯门打开的时候,走廊里安安静静,工位上的电脑屏幕大多还黑着。他走到自己的新工位前,没有着急坐下,而是先绕着这一片区域走了一圈。
六个人的工位。
靠窗的位置堆着两个纸箱,桌面上落了一层灰,显然已经很久没人坐了。旁边那张桌子上凌乱地摊着几本技术书,键盘缝隙里卡着面包屑。再往里的两张工位挨得很近,桌上各放着一个马克杯,一只印着“代码不加班”,另一只印着“需求不改了”,杯底都结了深色的茶垢。
最里面的两个位置相对整洁一些,但其中一个显示器上贴满了便利贴,层层叠叠,像是一条条无声的留言。
林辰从口袋里掏出手机,拍了一张工位区的全景照,然后坐回自己的位置,打开电脑。
他调出部门人员名单,快速扫了一遍。
算法组,算上他这个新来的组长,一共七个人。副组长叫老周,在公司干了六年,技术过硬,属于那种靠着年限和业务熟练度升上去的老员工。剩下的四个人,有的是校招进来的新人,有的是从其他组调过来的,还有一个是外包。
林辰看完名单,又把这三个月的项目日志翻出来过了一遍。
进度拖了三个月,按原计划本该上线的功能,只完成了一半不到。日志里反复出现同一个名字——陈辉。每次项目卡壳,日志里都会有一句“待陈辉确认”或者“陈辉反馈中”。
但这个陈辉,已经离职一个月了。
林辰关掉日志,靠在椅背上,目光落在窗外的灰白色天空上。他心里清楚,上一个组长的离职,很可能就跟这个陈辉脱不了干系。一个关键人物的长期拖延,足以拖垮整个团队的节奏。而团队里的人,要么被拖得没脾气了,要么已经被拉拢到了另一边。
八点二十,走廊里传来脚步声。
林辰转回头,看到一个三十出头的男人端着保温杯走进来,穿着格子衬衫,头发乱糟糟的,眼皮耷拉着,一副没睡醒的样子。他看到林辰坐在组长位置上,愣了一下,然后嘴角扯出一个不大自然的弧度:“林组长?”
“你好。”林辰冲他点了点头,“你是……老周?”
“嗯,老周。”那人走到自己的工位前,把保温杯放下,没有立刻坐下,而是转过身看着林辰,“林组长今天来得挺早啊。”
“习惯了。”林辰站起来,朝他走过去,语气平和,“老周,我刚看了项目日志,有几个地方想跟你了解情况,现在方便吗?”
老周的目光闪了一下,没有马上回答,而是从桌上拿起保温杯拧开盖子,吹了吹热气,喝了一口,才慢吞吞地说:“行啊,你说。”
林辰注意到,老周头顶的情绪数值是7.2,颜色是浅灰色。那是一种接近警惕的状态。不是敌意,但绝对谈不上友好。老周在防备他。
“咱们现在这个版本,核心功能跑通了吗?”林辰没有绕弯子,直接问。
“跑是跑通了。”老周把保温杯搁在桌上,手指轻轻敲着杯盖,“但稳定性不够,一批量数据就崩。”
“崩的原因找到了没有?”
“找是找到了。”老周这次回答得更慢,眼神有些飘,“但那个模块是之前陈辉写的,注释写得不太清楚,逻辑也比较绕。我这边改了两版,都还是不行。”
林辰捕捉到了老周说这句话时语气里的一丝微妙。那是推脱的味道。不是能力不够,而是不想轻易暴露自己的底牌,也不想替一个已经走的人背锅。
“那个模块的代码我看看。”林辰说。
老周顿了顿,然后弯腰拉开抽屉,翻出一个U盘,插到电脑上找了一会儿,把文件拖到了林辰的桌面上。
林辰回到自己工位,把代码调出来。他一行一行地看,一开始只是大致扫一遍结构,但看到第三页的时候,他的手指停在了键盘上。
这段代码有bug,而且不止一个。
但真正让林辰意外的,不是bug本身,而是这些bug的位置和类型,都太刻意了。像是故意留的坑。一旦系统跑大批量数据,这些bug就会一起触发,直接炸掉整个模块。
林辰抬起头,没有马上说话。他看了一眼老周,老周正在喝水,但是喝完一口之后,手指悄悄地把保温杯往右转了一小截。这个小动作,林辰以前见过。那是人在紧张时无意识的行为。
“老周。”林辰语气很淡,“这段代码你试过改吗?”
“试过啊。”老周的声音提高了半度,“加了两层缓存,改了一个循环逻辑,但结果还是崩。”
“你改的那版,我能看看吗?”
老周的头上,情绪数值跳了一下,从7.2升到了7.8。他沉默了几秒钟,然后说:“我删了。”
林辰没有追问。他知道再问下去,老周只会编更多的谎,圆也圆不回来。他点点头,说:“行,那我先看一下。你这边先忙手头的事。”
老周嗯了一声,坐回去,开始对着屏幕发呆。
林辰没有立刻动手改代码,而是闭上眼睛,在脑子里把那几段代码重新过了一遍。其中有一个bug,位置很刁钻,如果不是对业务逻辑非常熟悉,根本看不出那是问题。而另一个bug,看起来像是一个简单的变量名拼写错误,但只要改掉它,后续的整个逻辑链都会重构一遍。
这不是普通的代码失误。
这是有意设计的陷阱。
谁设计的?陈辉。他留下的代码模块,像是一个埋在系统里的定时炸弹,只要后面的接手者试图推进进度,就必然踩雷。而一旦项目延期,锅就不会扣到他陈辉头上——因为他已经走了。锅会落到林辰头上,落地生根,洗都洗不掉。
林辰睁开眼,嘴角微微上扬。
这个陈辉,确实不简单。
但他林辰也不简单。
他没有急着去动那几段有问题的代码,而是先打开另一个文档,开始用自己的方式梳理整个项目。他没有只看结果,而是从需求、到设计、到开发、到联调测试,倒着把整个流程捋了一遍,然后用情绪感知去看每一步的参与者。
最终,他的目光锁定在了两个人身上。
一个是老周。他跟陈辉共事五年,两人关系一直不错,但项目后期,老周的日志明显开始避开陈辉负责的模块,基本是在“选择性绕路”。
另一个是小刘。小刘是校招生,去年刚入职,技术底子不错,但性格内向,不太跟人来往。他在项目中的参与度很高,几乎所有模块都有他的提交记录。但最关键的那几个核心逻辑块,小刘的代码从来没有深入触及过。
林辰把这两个人的名字圈了出来,然后站起来,走到小刘的工位旁。
小刘刚到,正把包塞进桌下的柜子里,看到林辰过来,微微一愣:“林组长好。”
“早。”林辰笑着打了个招呼,“小刘,我想问你一个事。”
“您说。”
“陈辉走之前,有没有单独跟你聊过什么?”
小刘的眼神闪了一下,然后迅速低下去,声音也跟着变小了:“没……没有。”
他的头顶,情绪数值跳到了7.5,颜色是灰黑色。那是一种混合了紧张和畏惧的状态。
“你确定?”林辰的语气没有变,还是那种平和的、不带威胁的口吻,但他故意停顿了两秒钟。
小刘的手指在桌面边缘来回摩挲了好几秒钟,然后像是想到了什么,突然抬起头:“他……他走之前的那个周五,让我把所有模块的接口文档都整理一份发他邮箱。我当时也没多想,就发了。”
林辰问:“那些接口文档,是你自己写的吗?”
小刘的脸色变得有些微妙,声音比蚊子还低:“有一部分是陈哥之前让我写的,但我写完之后,他说有几处写得不对,让我改了。然后……他也没告诉我哪里不对,就说他那边会自己处理。”
林辰听完,心里已经有数了。
他拍了拍小刘的肩膀,说:“没事,我就是随便问问。你安心工作。”
回到工位后,林辰重新打开电脑,调出接口文档,对照着代码开始逐行比对。他看得极快,但目光极其专注,遇到可疑的地方,就停下来细细分析。大概过了半小时,他脸上浮出了一丝了然的神色。
陈辉让小刘修改的那些接口文档,正是对应那几个关键bug模块的。也就是说,陈辉在走之前,专门抹掉了自己留下的痕迹,还让小刘帮着“背书”,把接口文档改成了对不上代码的样子。
这样就算后面有人查,也只会查到小刘头上,“接口文档跟代码不一致,实习生经验不足”这种理由,再正当不过。
林辰靠在椅背上,闭了一会儿眼。
他想起昨天下午在周总办公室看到的那个人深色西装的男人,头顶那个9.8的黑色控制欲数值。那段时间正好是方案预演的前一天,而陈辉的公司,据说也是那段时间注册的。
这一切,恐怕不是巧合。
林辰睁开眼,看了一眼电脑右下角的时间。八点五十二分。
他站起来,拍了拍手,声音不大,但在安静的办公区里格外清晰:“大家停一下手里的活,我讲两句。”
那五个人都停下了动作,目光齐刷刷地看过来。老周坐在最前面,端着保温杯,表情平静,但眼神微微眯了起来。
“我叫林辰,从今天开始,接手算法组。”林辰的声音不高不低,语速不快不慢,带着一种自然的掌控感,“我知道你们这个项目拖了三个月,也知道大家心里都有压力。压力不可怕,可怕的是不知道该往哪个方向使力。”
他目光扫过所有人的脸,逐个看过去,眼神没有躲闪:“今天上午,我先解决核心模块稳定性问题。下午两点,咱们开一个短会,我把接下来的任务拆清楚。这段时间,大家该怎么干怎么干,有意见可以随时提,有问题也可以直接找我。”
他说完之后,停顿了一下,然后话锋一转:“对了,我刚发现代码里有一些问题。这些问题不是你们任何一个人的责任,但我会在今天解决掉。以后大家写的时候注意一下,有拿不准的地方,先来找我。”他的语气很平淡,但所有人都听出了藏在话里的意思——他老林成不成,不在他们这摊事里。
那群人头顶的情绪数值,在林辰说完这番话之后,明显出现了波动。几个原本是灰黄色的数值,慢慢变成了浅黄色。那代表着警惕度降低,信任度上升。
老周的数值,也从7.2降到了6.5。
林辰没有继续多说什么,坐回工位,开始动手改那段核心代码。他的手速很快,但每一步都很稳,改动的地方逐一加上注释,逻辑关系梳理得一清二楚。
中午十二点十分,他把改好的代码重新跑了一遍。稳定性测试通过。批量数据测试通过。所有结果都显示正常。
林辰把结果截图,发到算法组的工作群里,然后附了一句话:“改好了,各位辛苦了。下午开会之前,有空可以看看。”
三分钟后,小刘第一个回复:“收到,林组长牛!我看了,逻辑很清楚。”
接着第二个、第三个也纷纷冒了出来。连老周,都在群里不咸不淡地回了一句:“看了一下,确实改得不错。”
林辰看着屏幕上的聊天记录,笑了笑。他关掉群聊,打开一个空的记事本,在上面敲下一行字:
“第一步完成。接下来,该看看那个黑衣服的人究竟是什么来头了。”
他按下保存键,站起来,走到窗边,看着楼下穿梭的车流和行色匆匆的人群,深吸一口气。
下午的会,他要做的不只是拆任务。
他还要看清楚,这个团队里,到底谁才是他的人。