原创 青小蛙 2025-04-09 15:18 四川
这是一篇来自 idiallo 的文章,很有意思,一起来看一下。
这是一篇来自 idiallo 的文章,很有意思,一起来看一下。
说是在几年前,一位名叫 t0st 的程序员用 13 航代码,修复了 GTA Online 游戏中,一个已经存在了 8 年的漏洞。
这个漏洞是什么?加载时间过长,有时需要 20 分钟。而单人模式只需要几秒钟。
随后 Rockstar 给了他 10000 美金的奖励。
那么问题来了,为什么如此简单的问题,往往多年都得不到修复呢?
青小蛙也听开发者说过,在 GitHub 给著名的开源软件提交了 bug 修复的推送请求之后,3年后才得到代码被合并的通知,就...看起来很常见。
idiallo 随后描述了这幕后可能发生的情况。
错误的生命周期
想象一下这样的对话发生在 Rockstar(或者任何一家大型科技公司):
第一年开发人员 1 :“嘿,我认为我们可以通过修复 JSON 解析方式来缩短加载时间。这是一个快速见效的方法。”开发人员 2 :“听起来不错。创建一张工单,这样我们就不会忘记。”产品经理 :“这是需求吗?不是?好的,我会将其标记为技术债务并将其添加到待办事项中。”
第三年开发人员 3 :“这个 JSON 瓶颈仍然存在。我们应该优先处理旧票吗?”产品经理 :“本季度我们专注于下一个 DLC 和微交易。也许明年。”
第六年
产品经理 :“这张票是 2013 年的。它现在还有意义吗?”Dev 35 :“不知道。代码库已经重写了两次。可能没有。我们把它存档吧。”
第八年
t0st:“嘿,我认为我们可以通过修复解析 JSON 的方式来缩短加载时间...”
如此循环下去。
最后,为什么好的 bug 无法被修复
在大型组织中,一切都围绕路线图展开。如果错误修复与特定要求或功能无关,则会被标记为“技术债务”(tech debt)并被推到积压工作的最底部。说实话:“技术债务”是企业用语,意思是 “我们永远不会处理这个问题”。
另外,八年来,开发人员和产品经理已经不一定是原来的那一波人。最初提交工单的人?早已离去。了解问题的人?转到了另一个项目。
以及,13行代码看似简单,但能用就不要动。你完全无法预料修改了13航代码之后会发生什么。
所以,没有人愿意碰这些代码。
最后,缩短加载时间不能造成销量的上升 🤷
没有意外
不会有任何意外,这样的故事依旧会一次又一次的上演。你常常吐槽的 bug,可能真的没人敢碰。
ref: https://idiallo.com/blog/companies-dont-fix-bugs