阅读设置

20
18

第448章 林眠的发现:加班时长与bug率呈诡异正相关曲线 (1/4)

周日凌晨两点十七分,数据模型运行到了最关键的阶段。

林眠已经三十七个小时没有合眼了。他的太阳穴在突突跳动,视野边缘偶尔会出现细微的闪烁光点——这是视觉皮层过度疲劳的信号。但他没有停。桌面上散落着能量饮料的空罐子,还有一个只咬了一口的冷掉的三明治。

屏幕上,三条曲线正在同步绘制。

第一条蓝色曲线,是过去一周技术部所有人每小时的平均代码提交量。这条线从早上九点开始平稳上升,在下午三点达到峰值,然后开始缓慢下滑——这很正常,符合人体生理节律。

第二条红色曲线,是每小时产生的bug数量。这条线就诡异了:早上九点到下午六点,它几乎是一条平直的底线,偶尔有轻微波动。但晚上七点过后,它开始抬头。八点,小幅上升。九点,明显爬升。十点之后,几乎呈45度角直线飙升。

林眠放大晚上十点到凌晨两点的区间。

红色曲线在屏幕右上角几乎要冲出坐标系。峰值出现在午夜十二点左右,是白天平均水平的3.8倍。

更诡异的是第三条黄色曲线——这是林眠自己添加的“代码复杂度指数”。它测量的是每段代码的逻辑复杂度和依赖关系。理论上,复杂的代码更容易出bug,所以黄线应该和红线同步波动。

但现实是:黄色曲线很平稳。甚至在晚上十点后,代码复杂度还在下降——因为员工太累了,写的都是简单重复的逻辑,或者直接复制粘贴以前的代码。

复杂度下降,bug率却飙升。

这不合理。

林眠皱起眉头。他调出原始数据,一行行检查。

晚上十点四十五分,小李提交了一段数据验证代码。白天类似的代码,平均bug率是每百行0.7个。这段代码的bug率是每百行3.2个——而且都是低级错误:边界条件没判断,空指针没处理,连变量名都拼错了一个字母。

午夜零点二十一分,小张提交了一个接口模块。林眠记得这个模块——小张三天前就写好了初版,当时测试通过率98%。现在提交的是“优化版”,测试通过率却跌到了71%。优化了什么?林眠点开代码对比工具。

所谓“优化”,就是把原本清晰的三个函数,硬生生揉成了一个两百多行的巨型函数,注释乱七八糟,异常处理七零八落。

这不是优化,是退化。

是疲劳状态下,大脑丧失结构化思维能力的典型表现。

林眠的手指在键盘上停住了。

他忽然想起母亲批改作业时的情景。她教语文,最常说的一句话是:“文章写得好不好,不在于用了多少华丽辞藻,在于思路清不清晰。”她批改到深夜时,有时候会揉着眼睛说:“眠眠,妈妈眼睛花了,有些字都看成重影了。”

那时候他不懂,只觉得妈妈辛苦。现在他懂了——当视觉疲劳到出现重影时,大脑的判断力已经严重受损。母亲那时批改的作业,肯定有很多错漏没看出来。

但作业批错了,最多是学生少得几分。

代码写错了,系统可能会崩溃,数据可能会丢失,公司可能会损失真金白银。

林眠深吸一口气,新建了一个分析维度。

他要把“个人累计加班时长”和“个人bug率”关联起来。

数据重新跑起来。进度条缓慢移动。

等待的时间里,他站起身,在办公室里踱步。地毯很软,吸收了脚步声。月光从东面的窗户斜斜照进来,在地板上投出窗格的影子。行军床区域传来均匀的呼吸声——小李睡着了,小张还在低烧中昏睡,其他几个人也都进入了深度睡眠。

至少,他们现在在休息。

林眠走到小张床边,伸手探了探他的额头。温度降下来了,但皮肤摸起来还是干燥发烫。小张在睡梦中皱了皱眉,嘟囔了一句什么,听不清。

林眠给他掖了掖被角,走回工位。

进度条走到100%。

屏幕上的散点图让他倒吸一口凉气。

---

上午八点十分,苏早推开技术部玻璃门时,被眼前的景象震住了。

白板上贴满了打印出来的图表和照片,用不同颜色的马克笔密密麻麻写满了标注和箭头。林眠站在白板前,手里拿着激光笔,正在给围坐的十几个人讲解——不只是技术部的人,还有产品部刘总监、运营部的两个经理,甚至财务部那个平时很少露面的老会计也来了。

“看这张图。”林眠的嗓音沙哑,但语气清晰有力,“横轴是个人过去一周的累计加班时长,纵轴是个人bug率。每个点代表一个人。”

白板上的散点图呈现出一个令人不安的规律:大多数点都落在一条向右上方倾斜的带状区域里。加班越多,bug率越高。

但真正诡异的是右上角那三个点——它们几乎垂直飙升,bug率是其他人的四到五倍。

“这三个点是谁?”产品部刘总监问。

林眠用激光笔圈出那三个点旁边的标注:“技术部的小周、王浩,还有运营部的小陈——就是前天晕倒送icu的那个实习生。”

会议室里一片死寂。

“他们过去一周的累计加班时长分别是78小时、82小时和91小时。”林眠继续说,“bug率分别是平均水平的4.2倍、4.8倍和5.1倍。更关键的是——”

他切换下一张图,是一张时间序列分析。

“这三个人的bug率变化曲线,在加班时长超过60小时后,开始指数级上升。而在加班时长超过70小时后,曲线几乎垂直。”

激光笔的红点停在那三条冲天而起的线上。

“这意味着什么?”林眠环视众人,“意味着当疲劳积累到某个临界点后,人的工作质量不是线性下降,是断崖式崩塌。你付出的每一分钟额外加班,不是在创造价值,是在制造错误——而且错误的成本,可能远高于你创造的价值。”

财务部老会计推了推眼镜:“林工,这个‘错误的成本’,有数据支撑吗?”

“有。”林眠从桌上拿起一份刚打印出来的报告,“我调取了公司过去两年的bug修复成本统计。平均每个线上bug,从发现到修复到验证到重新上线,需要1.5个人日。按技术部平均薪资计算,成本大约是3000-5000元。”