编程中的认知偏差
编程中的认知偏差
原文:https://medium.com/hackernoon/cognitive-biases-in-programming-5e937707c27b
作为开发人员,我们熟悉干扰我们生产力的各种问题。但是我们常常忽略了全局。有些是微妙的,有些是巨大的,有些你可以做些什么,而有些你就是做不到。
所有这些结合在一起形成了一种内部反馈循环,这种循环会导致生产力的损失、错误和全方位的挫败感。如果我们能把其中一两个的影响降到最低,我们就能打破循环,中和其余的。以下是你在编程时应该注意的 5 个认知偏差:

双曲线贴现
追求立竿见影的回报,而不是延迟的更大回报
你有没有延迟写测试的经历?你有没有发现自己在 Vim 中使用箭头键?恭喜,你展示了双曲线贴现。使用箭头键的直接回报远远超过了为找到正确的语法导航到正确的行所要经历的痛苦。然而,一旦你学会如何更快地导航,未来的回报会高得多。你最终会节省很多时间。
宜家效应
高估你自己对问题的解决方案,从而相反低估其他解决方案
宜家效应是一种认知偏见,消费者对他们部分创造的产品赋予了不成比例的高价值。我们倾向于高估我们自己对问题的解决方案,从而相反低估其他解决方案。如果你曾经为一家使用愚蠢的内部工具而不是更好的现成解决方案的公司工作过,你知道我在说什么。
过早优化
O 在你知道你需要之前进行优化
不言自明。在修理引擎之前给你的旧车加装一个空气动力学扰流翼不会让它跑得更快。这方面的一个很好的例子是,在最终只是一个实验的基础上编写完美调优和高性能的代码。
规划谬误
乐观地低估完成一项任务所需的时间
规划谬误是我们大多数人都应该能够理解的。无论是我们,还是项目经理,或者是那些使用我们产品的人,我们都倾向于乐观地看待我们什么时候能真正完成。古老的格言很好地证明了这一点,
“前 90%的代码占用了前 90%的开发时间。剩下的 10%代码占用了另外 90%的开发时间。”
新近偏差
比过去发生的事情更重视最近发生的事情
当我们需要一个问题的解决方案时,最近偏差经常袭击我们,嘿,我们刚刚解决了一个类似的问题,所以让我们使用那个解决方案,因为它有效,而且我们记得它!你是否发现自己一遍又一遍地使用相同的设计模式?如果是的话,你可能是从同一个角度看不同的问题。
我们永远无法完全消除我们的偏见,通过意识到它是如何影响我们的,我们可以在某种程度上减轻它造成的问题。
感谢 Rob Trame 帮我做这件事。图片由 clipartfest.com 提供。