Несколько месяцев назад я купил портативный насос для накачки шин на Amazon, когда он прибыл, мне нужно было его протестировать. Но пару дней назад шины моей машины проверили на воздухе. У меня был неофициальный разговор с моим наставником, которому я рассказал о накачке шин. Затем я сказал ему: «Я чувствую, что давление в шинах моего мотоцикла немного низкое, я собираюсь проверить воздух с помощью моего нового портативного накачки». Он засмеялся и сказал: «Теперь, когда у вас есть новый насос для накачки шин, каждая шина, которую вы увидите, будет иметь низкое давление, и вы, возможно, захотите ее накачать 🤣». Надо сказать, наверное, он был прав 😁

В области ИТ принято считать, что решение проблемы — это новейшая технология/метод, который вы недавно изучили или прочитали. Например, человек, недавно прочитавший о событийно-ориентированном дизайне, может подумать, что это лучшее решение всех проблем, с которыми он сталкивается. Это совершенно нормально и называется эвристикой доступности (Эвристика доступности — Википедия), которая представляет собой склонность людей полагаться на информацию, которая наиболее доступна в их памяти, при принятии решений. Лучшие решения проблем появляются, когда разработчик решений сознательно перехватывает эту когнитивную предвзятость, оценивает все доступные варианты и рассматривает несколько точек зрения, прежде чем прийти к решению.

Есть такая история об осле, которую вы, возможно, слышали. Хозяин использовал этого осла для перевозки различных грузов из одного места в другое, и осел не был поклонником этой каторжной работы. Однажды осел нёс мешок с сахаром и по пути, переходя мелководную реку, осел упал и лег в воду. Возобновив путь, осел почувствовал, что вес мешка уменьшился, так как в воде растворилось некоторое количество сахара. На следующий день осёл нёс мешок с солью и, переходя реку, нарочно упал в воду, надеясь, что вес мешка уменьшится. В его пользу соль тоже растворялась в воде, и ему стало легче нести. Теперь у осла есть решение для уменьшения каторжного труда. Через пару дней осёл нес мешок с хлопком. Осел применил единственное известное ему решение, чтобы уменьшить вес. Однако хлопок впитал воду, и вес мешка увеличился вопреки ожиданиям осла. Хотя это вымышленная история, одно сообщение из нее заключается в том, что применение единого решения для каждой проблемы, с которой вы сталкиваетесь, не приведет к хорошим результатам.

Когнитивный уклон в выборе архитектурных стилей.

Когнитивные предубеждения могут играть роль в выборе архитектурных стилей. Примеры когнитивных искажений:

  1. Предвзятость подтверждения: предвзятость подтверждения — это тенденция искать и интерпретировать информацию таким образом, чтобы подтвердить существующие убеждения или предположения. В контексте архитектуры это может привести к тому, что архитекторы отдадут предпочтение определенному архитектурному стилю, полностью не рассматривая другие варианты.
  2. Предвзятость привязки: предвзятость привязки — это тенденция слишком сильно полагаться на первую часть информации, с которой сталкиваются при принятии решений.
  3. Эффект побеждающей стороны: Эффект побеждающей стороны — это тенденция делать или верить во что-то, потому что многие другие люди делают или верят в то же самое. В контексте архитектуры это может привести к тому, что архитекторы будут следовать популярным архитектурным стилям без полной оценки того, подходят ли они лучше всего для конкретного проекта.
  4. Эвристика доступности. Эвристика доступности — это тенденция оценивать вероятность события на основе того, насколько легко в голову приходят релевантные примеры. В контексте архитектуры это может привести к тому, что архитекторы будут выбирать архитектурный стиль, основанный на недавних успехах в этом стиле, без полного рассмотрения того, подходит ли он лучше всего для текущей проблемы.

Признание того, что у всех нас могут быть предубеждения, — это первый шаг к тому, чтобы избавиться от них. Вот хорошая статья с некоторыми способами борьбы с этим — Перехитри свои собственные предубеждения (hbr.org)

Не все является серебряной пулей

Не существует единого архитектурного стиля или методологии, универсально применимого ко ВСЕМ проблемам. Уникальные проблемы требуют тщательного рассмотрения ряда факторов, включая проблемную область, вовлеченных заинтересованных лиц, бюджет и сроки, а также опыт команды разработчиков.

Принимая архитектурный стиль, мы должны очень хорошо осознавать компромиссы. Например, при рассмотрении вопроса об извлечении локального модуля в качестве независимой службы, развернутой отдельно, вызов локального метода станет вызовом удаленного метода, в процессе будет задействован дополнительный уровень безопасности и сетевой трафик. То же самое добавит задержку для удаленного вызова процедуры. Этот подход следует использовать, когда преимущества перевешивают недостатки или когда преимущества имеют больший вес, чем потенциальные недостатки.

Когда все, что у тебя есть, это молоток

Если единственный инструмент, который у вас есть, — это молоток, возникает искушение относиться ко всему, как к гвоздю.
Авраам Маслоу

Здесь молотом могут быть микросервисы, архитектура, управляемая событиями, отсутствие кода, искусственный интеллект и все модные слова, которые вы можете придумать.