Когнитивные искажения в программировании
Каждый из нас, разработчиков, может назвать множество вещей, которые мешают его продуктивности. Но часто мы не видим общей картины.
Есть проблемы незначительные и огромные, есть те, с которыми мы можем что-то сделать — и те, с которыми, увы, нет. Все вместе они образуют своего рода самовоспроизводящийся внутренний цикл, в котором теряются часы работы, умирает продуктивность и царит фрустрация. Но если снизить влияние всего одного-двух факторов в цепочке, цикл разорвется, нейтрализуя остальные. Вот 5 когнитивных искажений, за которыми вам стоит следить при программировании:
Оригинальная иллюстрация с clipartfest.com
Переоценка скидок
Вы выбираете краткосрочную выгоду вместо отложенной, но более значительной.
Вам доводилось откладывать сдачу теста? Или ловить себя на том, что используете стрелки в Vim? Поздравляю, вы попались на переоценку скидок. Краткосрочная выгода от использования стрелок намного приятнее, чем поиск синтаксиса, который помог бы найти нужную строку. И всё же, если вы научитесь ускоренной навигации, выгода в будущем будет намного значительнее. Вы сэкономите много времени.
Эффект IKEA
Вы переоцениваете собственное решение проблемы, тем самым недооценивая другие решения.
Эффект IKEA — это когнитивное искажение, когда потребители придают неоправданно большое значение продуктам, к созданию которых приложили руку сами. Мы склонны переоценивать собственные решения, таким образом недооценивая другие решения. Если вы когда-либо работали в компании, которая использует неудобный внутренний инструмент вместо лучшего внешнего решения, вы знаете, о чем я говорю.
Преждевременная оптимизация
Вы оптимизируете что-то раньше, чем это может понадобиться.
Заголовок говорит сам за себя. Если добавить аэродинамическое крыло к корпусу машины, не исправив двигатель, она не будет ехать быстрее. Отличный пример: вы пишете идеально выверенный код для проекта, который, в конечном счете, не более чем экспериментальный.
Ошибка планирования
Вы оптимист и недооцениваете срок выполнения работы.
Это ошибка, которая ближе всего каждому (и каждой) из нас. И работники, и менеджеры проектов, и потребители склонны слишком оптимистично относиться к срокам. Это прекрасно отражает старый добрый афоризм:
«Первые 90% кода занимают 90% времени разработки. Оставшиеся 10% кода занимают остальные 90% времени разработки».
Искажение от новизны
Вы придаете большее значение новым открытиям, чем более давним.
Искажение от новизны поражает нас в момент, когда нам нужно решить проблему, а мы тут как раз решили похожую. Эгегей, у нас уже есть решение, так давайте же используем его! Вы снова и снова придерживаетесь одного и того же дизайн-принципа? Если да, возможно, вы используете одну и ту же оптику в разных ситуациях.
Мы не можем полностью искоренить свои искажения, но можем понять их влияние и научиться легче решать возникшие из-за них проблемы.
А вы замечали за собой когнитивные искажения в программировании?
Спасибо Робу Трейму (Rob Trame) за помощь с материалом.
Об авторе: Яш Ранадайв (Yash Ranadive) — один из разработчиков Facebook, основатель GrepPage, специалист по обработке данных в Lookout
Переведено и адаптировано командой BrainRain




