Как стать автором
Обновить
60.64

Когнитивные искажения в программировании. Часть 2

Время на прочтение5 мин
Количество просмотров9.2K

Всем привет!

Ну что ж, давайте продолжим знакомство с когнитивными искажениями и узнаем, какие еще ловушки нам уготованы. (А для тех, кто только что присоединился, вот ссылка на первую часть этой статьи.)

Итак, сегодня мы поговорим о таких искажениях:

  • эффект фокусировки;

  • предпочтение нулевого риска;

  • искажение в восприятии сделанного выбора;

  • иррациональная эскалация;

  • эффект знакомства с объектом;

  • эффект Даннинга — Крюгера.

Эффект фокусировки

Это чрезмерная концентрация на каком-то одном объекте, событии или аспекте, а в результате — ошибка в предсказании эффекта от его изменения. И вот вам пример. Допустим, нам кажется, что ТЗ, которое мы получили, мягко скажем, далеко от идеала. Но если бы его написали хорошо, вот тогда бы да-а, тогда бы мы ух какой проект запилили! "Гуглу" на зависть просто. Возможно, конечно. Но вряд ли. Возможно, наша основная беда вовсе не в ТЗ, а в команде, состоящей исключительно из джуниоров, которые если и способны сделать хороший проект, то в далеком будущем, но точно не сейчас.

Зацикливаясь на чем-то одном (на плохом управлении или, допустим, на одной технологии) и не пытаясь взглянуть на проблему шире, мы можем уйти по пути неверных решений, а в результате — проект на костылях, тлен и безысходность: "Ну как так-то, как так? Плохое вроде исправили, а хорошо все равно не стало. Беда, беда, огорчение".

Совет: оценивая воздействие тех или иных факторов, смотрите на них в совокупности, а не на каждый по отдельности. Если поставить в "Приору" двигатель от Nissan GTR, то, может, у вас и получится на ней полететь. (Полететь на небеса, кхм.) Но, очевидно, что двигатель не самая большая проблема "Приоры". (Кстати, не имею ничего против "Приор".)

Предпочтение нулевого риска

Это искажение о том, что обычно мы выбираем решение, которое убирает какой-то один риск целиком и полностью, но игнорирует все остальные или даже усугубляет их. В разрезе программирования можно проиллюстрировать так: мы выбираем подход, который избавляет нас от определенных рисков и проблем, зачастую даже не очень важных, но приносит с собой статистически более частые и значимые неудобства.

Вот вам самый простой и отчасти натянутый пример. Допустим, мы боремся с проблемой, связанной со скоростью ответа сервера, и выбираем решение на основе кеширования. И мы вроде бы молодцы и красавчики, ведь проблема полностью решена. Риск того, что пользователь будет долго ждать свои данные, ликвидирован. (Разумеется, остаются угрозы в виде медленного интернета, перегруженного фронта и т.д.). Но в то же время мы получаем проблемы с валидацией и инвалидацией кеша, консистентностью, релевантностью и всем таким прочим.

Еще один простой пример. Переусложненное тестирование. Вроде бы вероятность появления багов мы снизили. Да, но. Риски по поддержке вошли в чат. А вместе с ними — падение скорости реализации задач и еще целый хоровод последствий. Оптимальное решение — это компромисс. Так что приглядитесь к своей гениальной идее: а не троянский ли конь она, часом?

Совет: выбирайте решение с наибольшей эффективностью в целом. Работа с рисками вообще штука непростая. На эту тему есть много книг и статей, существуют разные подходы и стратегии. Наверное, можно сказать, что это целая наука. Если не хотите в нее углубляться, выкручиваемся так: выписываем все возможные риски, указываем вероятность их возникновения в процентах и некое числовое значение значимости. В другой столбик заносим решения и их влияние на риски в целом. Дальше все просто: выбираем тот вариант, который нас устраивает, не усугубляет боль и страдания по каждой проблеме и не приносит новых неудобств. В общем, с наибольшей общей эффективностью, если по-умному.

Искажение в восприятии сделанного выбора

О, это искажение встречается в повседневной жизни на каждом углу. В разработке, кстати, тоже. Суть в том, что мы начинаем придумывать плюсы и оправдывать собственный выбор уже после того, как мы его сделали. Доходит порой до истинно фанатического упорства. Мы придумали какое-то решение, реализовали его, и от всех противоречащих ему аргументов яростно отбиваемся порой даже надуманными и крайне субъективными доказательствами своей правоты.

Совет: иногда нужно уметь сказать себе: "Да, я облажался, я все исправлю". На такое способны только психологически взрослые люди. Признать свои ошибки, особенно перед другими людьми, очень сложно. Но стоит помнить о том, что признание ошибок говорит не о вашей слабости, а о вашей взрослости и умении брать на себя ответственность.

Иррациональная эскалация

Это ошибка невозвратных затрат. Приверженность ранее сделанному выбору, даже при объективных недостатках оного. Очень распространено в инвестировании. (Ох, сколько я видел стартапов, с которых хоть научный труд пиши по этой теме!). Ну и в программировании встречается, конечно.

К примеру, есть у нас проект с неправильной архитектурой. Ну не подходит она теперь под новые требования и реалии. Что же делать, как же быть? По-хорошему, надо собрать волю в кулак, выкинуть все старое и написать с нуля. Но мы же не готовы так просто сдаться. Мы же еще поборемся. Мыши плакали, кололись, но продолжали свое мазохистское развлечение, да. Проект дорабатывается и обрастает костылями невообразимой формы. И чем дальше, тем, с одной стороны, жальче проявленной фантазии и усилий, потраченных на очередную гениальную подпорку, с другой стороны, все ближе тупик, выход из которого вы уже не найдете. Если посмотреть в цифрах, реально дешевле и быстрее было вовремя сказать: "Прости, прощай!". Но мы подпираем палками, ставим заплатки, плачем и просим нашу лошадку скакать дальше, не замечая, что она как бы умерла. Насовсем. И никакая некромантия уже не поможет.

Кстати, заметили, что это искажение похоже на предыдущее, которое о восприятии сделанного выбора? Так и есть, они вообще часто парой ходят.

Совет: оценивайте риски и дальнейшие потери. Оценили? Повеяло безысходностью? Значит, говорим себе: "Умерла так умерла, пойду куплю новую коняшку, но в этот раз кормить буду зерном, а не пиццей".

Эффект знакомства с объектом

Мы выражаем симпатию и отдаем предпочтение тем вещам, с которыми мы знакомы. Вы думаете, зачем нам эти бесячие рекламы показывают без конца? Вот именно поэтому. А в программировании это очень частое явление при выборе фреймворков, языков программирования и тому подобного.

Совет от капитана Очевидность: откройтесь новому! Предубеждения и привычки бывают полезны, не спорю. Но лишь тогда, когда они приносят пользу. И если вы глядите на числовые показатели, графики, сравнительное тестирование, а результаты вас не радуют, пора искать новый путь. Но не стоит впадать и в другую крайность: каждый раз использовать новые технологии — это за гранью добра и зла, конечно.

Ну и напоследок небольшой вброс.

Эффект Даннинга — Крюгера

Люди с низким уровнем квалификации делают ошибочные выводы и принимают неудачные решения, но при этом они не в состоянии осознать свои ошибки как раз из-за низкого уровня квалификации.

Как говорил доктор Хаус: "Хуже профнепригодных только те, кто не подозревает о своей непригодности".

Совет (тут сложно, но я попробую): когда принимаете решение, спросите себя: "А так ли это, как я думаю?". Проверьте информацию, хранящуюся в вашей голове. Быть может, существуют более удачные подходы, а возможно, об этом еще и писали, и даже видео снимали. Здоровая самокритичность и здоровое сомнение в своих познаниях — это хорошо. Главное, не впадайте в состояние "я ни в чем не уверен, и вообще у меня лапки".

Что ж, на этом пока все. Надеюсь, вам было интересно. И если все-таки было, то могу обрадовать: скоро появится еще одна статья об искажениях. Ну или две. (Но это, как вы поняли, неточно.)

Теги:
Хабы:
Всего голосов 15: ↑11 и ↓4+8
Комментарии10

Публикации

Информация

Сайт
www.reksoft.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия