为什么开发者对 Bug 视而不见?
Bug Blindness
我每周能发现数百个 Bug,但大多数人却视而不见。这种现象被称为 Bug Blindness,即人们对自己熟悉的产品或公司作品存在严重的认知盲区。从 Google、Bing 到 Kagi 的搜索结果,再到 Blackboard 和 Discourse 等软件,内部员工往往坚信产品完美,而外部用户却深受其害。这种心理防御机制让人难以接受负面反馈,甚至为了美化数据而作弊。作为程序员,保持对缺陷的敏锐感知至关重要,唯有打破这种盲目,才能真正提升产品质量。
平均而言,人类对喜爱之物的负面信息具有极高的忽视能力,尤其是针对自己的作品或所在公司的产品。
HN 评论区
274- sgentle
我觉得这里有两个截然相反的原因:要么是心智模型过度对齐,要么是完全不对齐。
对于开发者而言,"bug 盲视"往往是因为他们的心智模型与系统模型如此接近,以至于两者拥有相同的盲点,导致开发者无法有效地跳出系统思维(经典的"QA 走进酒吧,点了 0 杯啤酒,点了 -1 杯啤酒,点了 0.999 杯啤酒",对比"顾客走进酒吧,问洗手间在哪,酒吧瞬间燃起大火")。
另一方面,普通人使用系统的常见方式就是……根本没有心智模型。完全没有。比如,他们点一下某个东西看看会发生什么,如果结果不符合预期,他们耸耸肩再去点别的东西。看到非软件人员使用软件系统的恐怖之处在于,你意识到他们通常无法区分预期行为和意外行为,因为他们一开始就没有形成任何预期。电脑更像是一个精灵,而不是一台机器。
你在文章里也能看到这一点:"Google Docs 增加了一种延迟机制,导致你在打开文档后立即在标题框中输入的内容会被覆盖"。这是开发者在构建系统模型。而普通人的替代方案则是简单地学会:有时候在框里打字,文字会出现;有时候则不会。如果没出现,就再试一次。
如果你放弃"系统是被设计成可被理解的"这一假设,你就不需要去理解系统。一个 […]
- amadeuspagel
> 几乎没人对我关于 Google 和 Bing 搜索结果的描述提出异议,但人们告诉我,我关于 Kagi 的说法是错的。
为产品付费会让你变得具有防御性,尤其是当存在免费替代品时。
- Sniffnoy
回应链接中 Patreon 帖子里的一段话:
> Blackboard(以及 Epic 和 SharePoint)是典型的软件案例,其中用户和购买者是不同的人,而购买者基本上不在乎用户,所以你并不指望软件会好用,如果软件没带来糟糕的用户体验,反而有点让人惊讶。但更让我惊讶的是,有人竟然认为自己在开发那些最遭人痛恨的软件之一,却觉得该软件广受欢迎。
我在 Epic 短暂工作过,那里的态度更像是"是的,我们知道人们讨厌 Epic,但他们错了"。:P 那里的人并不认为 Epic 广受欢迎!
(给出的解释基本上有两点:1. 人们讨厌 Epic 是因为他们的 IT 部门配置错了,如果他们以更合适的方式配置,就不会有这些问题;2. 问题不在于 Epic 本身,而是所有 EMR 软件都有问题,如果你觉得 Epic 很烂,你应该看看竞争对手,他们更烂。我不确定第二个理由是不是真的站得住脚,但这就是我记忆中听到的解释。)
- encomiast
当作者能看到的、而其他人却视而不见的第一个"bug"例子是搜索结果时,我就不得不放弃了。
"在某些情况下,人们把他们的实际搜索结果发给了我。在每一个这样的案例中,搜索结果里都没有我能看到的好结果。"
未能满足预期的软件,尤其是在搜索这样一个本质上长期处于 SEO 与搜索引擎博弈的领域,并不是一个"bug"。这就像说出版业存在"bug 盲视",因为当我随手拿起一本书时,它很烂,尽管其他人觉得它不错。当然,也许确实有问题,甚至可能改进,但让我们把"bug"这个词留给更具体的东西。
- bambax
我们的大脑倾向于高效的信号处理,并 actively 删除它认为"不必要"的信号。它只想让我们注意到新的和意外的事情;这就是为什么过一会儿你就注意不到同样的气味或同样的重复噪音了。它们只是被当作"已检测/非新"而忽略。
这背后的原因可能是进化论的(尽管我们不知道哪些特征对我们在野外生存最有效);但忽略信号还有一个非常实际的原因,那就是信号太多了:如果我们处理来自每个传感器的所有数据,并思考气味、光线、温度、噪音等等,我们就会被压垮,无法做其他任何事情。
这也是为什么我们通常不会"看见"事物或人:我们是在识别它们。我们不是在看脸,我们只是在识别 Alice 或 Bob。这也解释了为什么大多数人不会画画:Alice 这个概念是画不出来的;要画出 Alice,我们需要真正描绘她脸部的特征。成为艺术家意味着能够"忘却"(或禁用)那个识别过程。
我认为大多数人看不到 bug 的原因也类似:他们不感兴趣,他们只想把事情做完。如果有一个简单的变通方法能让东西运转起来,那就足够了;其余的一切都不相关。这不是偏见或善意:这是效率。
- meling
很有趣的话题,有趣的是我个人认为 danluu 博客的文本宽度和字体大小就是一个"bug"。众所周知,较窄的文本列能让我们读得更快(想想以前报纸印刷在纸上的栏宽)。这就是为什么我总是用 Apple 的阅读模式(Reader mode)来阅读这个特定的博客,它用更大的字体和更窄的宽度来渲染文本。
- ghastmaster
> 我原本以为这与我使用电脑的方式有关,但随着时间的推移,我意识到这主要是因为人们遇到了同样的 bug 却没注意到。
我怀疑我知道他们为什么没注意到。见下文。
> 它运行良好等等,但当我打开它并尝试时,它处于一种只有当你执行许多非直观的变通方法时才能正常工作的状态。
我怀疑大多数人之所以不擅长导航 UI,是因为即使是一个好的 UI 对他们来说也不直观。一个糟糕的 UI 同样不直观。他们不知道那是 bug,因为对他们来说一切都是 bug。
我可以使用全新的 UI 并很快弄清楚在哪里找到我需要的功能。根据我与普通人的经验,他们可以使用该软件比我多十年,却依然无法理解某些功能,也无法像我那样在几分钟内或经过少量研究后就能导航并利用它们。
致敬 https://grumpy.website/。非常喜欢。
- dusted
我也认为这是由于"偏差正常化"(normalization of deviance),人们只是习惯了。
- 你无法构建模型,因为一切都会在下一次更新中改变,所以,即使不是有意识地,人们也不会去构建模型,何必去学习一些下次使用应用程序时就没用的东西呢。
- 因为你基本上不知道任何东西是如何工作的,所以它到底是真的坏了,还是你只是"用错了",这就像抛硬币一样。
- 大多数东西都无法持续地做你期望它们做的事,所以你不会对它们抱有任何期望。
昨晚,我把一些文档上传到我的保险公司 => 弹窗:
- 标题:"文件上传成功"
- 文本:"发生未知错误"
- 按钮:"确定"
谢谢。