Золотой молоток
Эту практику я вижу практически постоянно. Когда у вас есть молоток, всё вокруг становится похожим на гвозди.
Когда у вас есть работающий код или технология, обвязанная большим количеством кода, кажется, что ими можно решить любую проблему.
Я встретился с золотым молотком в момент, когда Кафка стала хорошо протестированной шиной. А у нас в проекте везде применялась интеграция через IBM MQ. Пришлось потратить много времени на защиту нового решения интеграции и убедить коллег в её преимуществах для нашей очередной интеграционной задачи.
Симптомы
- Одна технология (фреймворк, БД, шина) используется для всех задач без исключения.
- Новые решения отвергаются «потому что мы так не работаем».
- Обсуждение технологии сводится к «у нас уже есть X, давайте через X».
Почему возникает
Смысл в том, что золотой молоток позволяет решать задачу без когнитивной нагрузки. Просто взяли и забили известной технологией. Новая же технология требует изучения, поиска подводных камней, потом непонятно сколько кода переписать, непонятно, что там с ИБ, непонятно, как поддерживать. Но всё это можно оценить. И если преимущества перехода выше, чем все эти затраты, то переходить имеет смысл.
Важно понимать: это обоснованное желание остаться в рамках старой технологии, или «синдром утёнка», когда первая изученная технология кажется лучшей.
Пример
«Плохой» вариант: любая интеграция — через существующую шину, даже если она не умеет нужного:
заказ -> IBM MQ -> обработчик заказа
логи -> IBM MQ -> агрегатор логов # неподходящий инструмент
«Хороший» вариант: выбор инструмента под задачу:
заказ -> шина (Kafka, если нужны партиции и воспроизводимость)
логи -> агрегатор напрямую
Как исправить
- Составить карту задач и оценить применимость текущей технологии к каждой.
- Сравнивать «переход» и «остаться» по метрикам: стоимость разработки, поддержка, ИБ, производительность.
- Не путать обоснованное решение с «синдромом утёнка».