Brainfab
← К заметкам

Найдите скрытую сложность до выбора пути модернизации

Решения о модернизации становятся лучше, когда команда видит работу между экранами, сервисами, данными и ежедневными операционными привычками.

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

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

Опишите продукт как набор зависимостей

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

Это не инвентаризация ради инвентаризации. Упражнение отвечает на практический вопрос: если эта часть изменится, что еще может затронуть? Ответ нередко показывает работу, которой нет ни в дизайн-макете, ни в исходном коде.

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

Ищите исключения и повторяющиеся действия

Исключения показывают конкретное намерение продукта. Они говорят, какие правила были настолько важны, что кто-то обошел поведение по умолчанию. Повторяющаяся ручная работа не менее показательна: она может означать недостающую возможность, сознательный контроль или еще не смоделированный риск.

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

Отличайте неопределенность от объема работ

Большая неизвестность не становится автоматически большой задачей реализации. Это задача исследования. Названная неопределенность не дает ей незаметно превратиться в обещание, которое невозможно проверить.

Команда может ранжировать неопределенности по влиянию и обратимости. Решение по макету обычно недорого пересмотреть. Миграция данных, договорная интеграция или решение по контролю доступа — возможно, нет. Такая сортировка помогает понять, что проверять первым, а что может подождать.

Выбирайте путь после появления карты

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

Ценность раннего картирования не в устранении риска. Оно делает риск достаточно явным для обсуждения. Путь модернизации убедительнее, когда в нем сказано, что известно, что еще нужно проверить и какие предположения изменят следующее решение.