IT и покер. Часть 16: Кейс. Информационный вакуум.

Расскажу историю. Больно, но полезно.

Была у нас команда. Хорошая команда, сильные разработчики. И была задача: переписать монолит на микросервисы. Ну, знаете, классика: «монолит не масштабируется», «надо разбить», «давайте сделаем правильно».

Сели. Начали проектировать. Архитектурные сессии, диаграммы, споры до хрипоты. Три месяца. Три месяца чистой архитектуры, без единой строчки продакшн-кода. Мы рисовали, спорили, перерисовывали. Мы были гениальны. Мы были уверены.

А потом выкатили первую версию. И выяснилось, что пользователи работают совсем не так, как мы думали. Что самые нагруженные сервисы — не те, которые мы считали нагруженными. Что данные, которые мы «правильно» разделили, на деле нужны вместе. Что «независимые» сервисы на самом деле зависят друг от друга, как сиамские близнецы. Мы построили архитектуру для мира, которого не существовало. Потому что ни разу не поговорили с реальными пользователями. Ни разу не посмотрели на реальные логи. Ни разу не задали вопрос «а что если мы ошибаемся».

Итог... Переписали... Потом ещё раз переписали. Потеряли, наверное, полгода. И кучу нервов. Что надо было сделать? Да банально. Взять одного архитектора, посадить его смотреть на логи продакшена. Неделя... Всего неделя, максимум, и он бы увидел реальные паттерны. Затем поговорить с поддержкой. Они бы рассказали, что болит у пользователей. Сделать spike: вынести один сервис, посмотреть, что получится. Но нет. Мы же «знали». Мы же архитекторы. Мы же умные... Хотели как лучше, в получилось как всегда.