Программирование
Когнитивные искажения в программировании
Мы никогда не избавимся от наших предрассудков целиком, но если мы знаем о том, как они на нас влияют, мы можем смягчить проблемы, которые они вызывают.
Разработчик Facebook Яш Ранадив описал пять когнитивных искажений, чаще всего встречающихся в работе программиста.
Продуктивности разработчиков мешают самые разные проблемы. Некоторые из этих проблем могут быть большими или маленькими, с какими-то мы можем бороться, а с какими-то не можем. Но в большинстве случаев мы не видим общей картины.
Всё это соединяется в бесконечный цикл, который приводит к потере рабочих часов, багам и фрустрации. Если мы сможем минимизировать влияние нескольких из этих факторов, то сможем разорвать цикл и нейтрализовать все остальное. Вот список пяти когнитивных искажений, которых мы должны опасаться при программировании.
Гиперболическое дисконтирование
Желание моментальной отдачи вместо большего результата позже
Вы когда-нибудь откладывали написание теста? Использовали стрелки в Vim? Поздравляю, вы испытывали гиперболическое дисконтирование. Моментальная отдача от использования стрелок превышает боль, которую вам нужно испытать, чтобы найти правильный синтаксис для переход к нужной строке. Хотя как только вы учитесь перемещаться быстрее, польза этого действия в будущем значительно возрастает. Вы сэкономите много времени.
Эффект IKEA
Переоценивание вашего решения проблемы и недооценивание остальных решений
Эффект IKEA — это когнитивное искажение, при котором клиенты вкладывают непропорционально большую ценность в продукты, в создании которых они приняли участие. Обычно мы переоцениваем свои решения проблемы, поэтому недооцениваем решения других людей. Если вы когда-либо работали в компании, которая использовала дурацкий внутренний инструмент вместо хорошего готового решения, вы знаете, о чем я говорю.
Преждевременная оптимизация
Оптимизация до того, как она нужна
Название говорит само за себя. Если вы добавите спойлер на старый автомобиль перед тем, как почините двигатель, машина не поедет быстрее. Хорошим примером этого является создание идеально настроенного и производительного кода для эксперимента.
Ошибка планирования
Оптимистичная недооценка времени, требуемого для завершения задачи
Это искажение наблюдали многие из нас. Касается ли это нас, продакт-менеджеров или людей, использующих наши продукты, мы обычно оптимистично смотрим на потенциальное время завершения задачи. Это хорошо демонстрирует старый афоризм:
Не так страшны первые 90% проекта, как вторые 90% проекта.
Заблуждение новизны
Придание большей значимости недавним событиям, чем произошедшим давно
Заблуждение новизны часто настигает нас, когда нам нужно найти решение. Эй, мы только что решили похожую проблему, так что давайте используем то же решение, потому что оно сработало! Вы используете одни и те же шаблоны проектирования снова и снова? Если да, то вы, вероятно, смотрите на разные проблемы через одну и ту же линзу.
Мы никогда не избавимся от наших предрассудков целиком, но если мы знаем о том, как они на нас влияют, мы можем смягчить проблемы, которые они вызывают.