← Назад к обзору

Золотой молоток

Эту практику я вижу практически постоянно. Когда у вас есть молоток, всё вокруг становится похожим на гвозди.

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

Я встретился с золотым молотком в момент, когда Кафка стала хорошо протестированной шиной. А у нас в проекте везде применялась интеграция через IBM MQ. Пришлось потратить много времени на защиту нового решения интеграции и убедить коллег в её преимуществах для нашей очередной интеграционной задачи.

Симптомы

  • Одна технология (фреймворк, БД, шина) используется для всех задач без исключения.
  • Новые решения отвергаются «потому что мы так не работаем».
  • Обсуждение технологии сводится к «у нас уже есть X, давайте через X».

Почему возникает

Смысл в том, что золотой молоток позволяет решать задачу без когнитивной нагрузки. Просто взяли и забили известной технологией. Новая же технология требует изучения, поиска подводных камней, потом непонятно сколько кода переписать, непонятно, что там с ИБ, непонятно, как поддерживать. Но всё это можно оценить. И если преимущества перехода выше, чем все эти затраты, то переходить имеет смысл.

Важно понимать: это обоснованное желание остаться в рамках старой технологии, или «синдром утёнка», когда первая изученная технология кажется лучшей.

Пример

«Плохой» вариант: любая интеграция — через существующую шину, даже если она не умеет нужного:

заказ -> IBM MQ -> обработчик заказа
логи  -> IBM MQ -> агрегатор логов     # неподходящий инструмент

«Хороший» вариант: выбор инструмента под задачу:

заказ -> шина (Kafka, если нужны партиции и воспроизводимость)
логи  -> агрегатор напрямую

Как исправить

  • Составить карту задач и оценить применимость текущей технологии к каждой.
  • Сравнивать «переход» и «остаться» по метрикам: стоимость разработки, поддержка, ИБ, производительность.
  • Не путать обоснованное решение с «синдромом утёнка».