为什么公司不修复 Bugs:来自 GTA Online 的启示
为什么公司不修复 Bugs
“需求里有这个吗?” By Ibrahim Diallo 发布于 20 小时前 ~ 阅读需要 4 分钟
几年前,一位名叫 t0st 的程序员做了一件非凡的事情:他修复了 GTA Online 中一个长达 8 年的 Bug,这个 Bug 困扰了玩家很久。是什么 Bug 呢? 令人痛苦的加载时间,有时长达 20 分钟。而单人模式加载只需要几秒钟。他的解决方案非常优雅:一个 13 行的代码调整,将加载时间缩短了 70%。 背后是工作室 Rockstar Games,奖励了他 10,000 美元的赏金并修复了游戏。 问题解决了吗?
并非如此。
互联网上爆发了批评的声音。 一个价值数十亿美元的公司怎么会忽略如此明显的事情? 他们的开发人员是不是不称职? 作为一名在科技行业工作过的人,我可以告诉你答案并非如此简单。 这里的真正故事不是关于懒惰的开发人员或技术上的无能。 而是关于即使是最简单的修复也会迷失在公司优先事项的迷宫中。
让我描绘一下幕后可能发生的事情。
Bug 的生命周期
想象一下在 Rockstar(或任何大型科技公司)发生的这段对话:
第一年
开发人员 1:“嘿,我认为我们可以通过修复我们解析 JSON 的方式来缩短加载时间。 这是一个快速的胜利。”
开发人员 2:“听起来不错。 创建一个工单,这样我们就不会忘记。”
产品经理:“这个在需求里吗? 没有? 好的,我将其标记为技术债务并将其添加到 backlog 中。”
第三年
开发人员 3:“这个 JSON 瓶颈仍然存在。 我们应该优先处理旧工单吗?”
产品经理:“我们本季度专注于下一个 DLC 和微交易。 也许明年吧。”
第六年
产品经理:“这个工单是 2013 年的。 它仍然相关吗?”
开发人员 35:“不知道。 代码库已经被重写了两次。 大概不会。 让我们存档它。”
第八年
开发人员 N:“嘿,我认为我们可以通过修复我们解析 JSON 的方式来缩短加载时间……”
就这样,循环继续。
为什么好的 Bugs 没有被修复
这不仅仅是 Rockstar 的问题。 这是一个 大公司 的问题。 以下是为什么即使像这样的明显 Bug 也会被忽略的原因:
- “需求”的暴政 在大型组织中,一切都围绕着 roadmap 展开。 如果 Bug 修复没有与特定需求或功能相关联,它就会被标记为“技术债务”并被推到 backlog 的底部。 让我们说实话:“技术债务”是公司术语,意思是 “我们永远不会处理这件事。”
- 所有权的旋转门 在八年的时间里,开发人员和产品经理来来去去。 最初提交工单的人? 早已离开。 了解问题的人? 已经转移到另一个项目。 机构记忆逐渐消失,该工单成为过去的遗物。 即使问题仍然非常活跃。
- “快速修复”的神话 一个 13 行的补丁可能看起来微不足道,但在遗留代码库中,即使是很小的更改也可能产生意想不到的后果。 如果没有适当的测试或文档,开发人员通常会犹豫是否要触及旧代码。 破坏某些东西的风险远远超过了修复非关键 Bug 的回报。
- 隐形的 ROI 让我们面对现实:改善加载时间不会直接影响利润。 出售 Shark Cards(GTA 的虚拟货币)会。 公司会针对季度财报电话会议上显示的指标进行优化,而不是针对善意或用户体验,直到为时已晚。
毫无改变的快乐结局
t0st 的修复是 Rockstar 的一次 PR 胜利,但它并没有解决根本问题。 对于每一个被修复的备受瞩目的 Bug,成千上万的 Bug 都在 backlog 中无精打采,被遗忘和忽略。 这里的真正意义不是公司不关心 Bug。 而是他们常常因相互竞争的优先事项、官僚惯性和冷酷的利润计算而瘫痪。
所以下次当你盯着加载屏幕或诅咒一个故障时,请记住:敌人不是懒惰的开发人员。 而是将用户体验视为事后的系统。 直到局外人强迫它出手。
灵感来自 t0st 的调查:How I Cut GTA Online Loading Times by 70%
你喜欢这篇文章吗? 你可以请我喝杯咖啡。 在这里分享您的深刻见解。
注册时事通讯。
姓名:
电子邮件:
订阅
上一篇:Google Couldn’t Build “Instant” Today
顺便说一句,这里有一些有趣的文章。
What you do as a web developer
我已经工作了五年,在这五年里,我曾在面试中被要求解决一些奇怪的难题。 我被要求实现链表、红黑树、斐波那契数列和各种排序算法。 五年来,我一直在满怀信心地等待着有一天我将在我的代码中使用这些奇特的术语。 但今天,所有的希望都破灭了。 看起来他们欺骗了我,让我以为我会有机会实现 bubble sort。
互联网速度每年都在变得越来越快,而且今天的移动设备通常比旧的台式机性能更好。 但是就在几年前,满足移动用户的需求还是一门精细的艺术。 如果你想提供流畅的体验,你必须尽量减少 JavaScript 文件的数量和大小。 一个大型文件可能会冻结甚至导致移动设备崩溃。 使用旧浏览器(如 Internet Explorer)的桌面用户也面临着类似的挑战。
当疫情全面爆发时,我的孩子们正处于喜欢游乐园的完美年龄。 其他家长站在远处,手持 Lysol 湿巾和全套 COVID 装备,看着并等待着轮到他们。 另一方面,我像一个人类气泡一样,保护性地盘旋在我的孩子身边。 不成文的规则很明确:看到另一位父母靠近游乐园就表明我们该离开了。 回首往事,我的孩子们在那些年里几乎没有享受到游乐园的乐趣。
评论
尚未添加任何评论。
让我们听听您的想法
您的姓名(必填)
您的电子邮件(必填)仅供我查看
您的网站
您想订阅新闻通讯吗? ← 点击这里
关于我
首先,哇! 您一直滚动到最下面。 这意味着您想更多地了解我。 嗯,这是我是谁以及我做什么的摘要。 我开始写这个博客是因为……等等,我也有一个链接。
嘿! 您听说过 humans.txt 吗? 嗯,我有点喜欢这个想法,并做了自己的版本。
您可以在以下位置找到我:
不要犹豫,打个招呼,这就是我前进的动力 : )
由您真心设计。
版权所有 © 2013 - 2025