Легаси-проекты: не приговор, а актив

"Легаси" - слово, которое пугает бизнес. Звучит как приговор. "У нас легаси, мы ничего не можем сделать". Как будто врач сказал "рак", а не "грипп". Но на самом деле легаси - это просто код, который уже написан. И он работает. Как-то. Но работает.

Давайте разберёмся, что с ним делать.

Легаси - это система, которая уже работает (как-то), написана давно (3, 5, 10 лет назад), никто не знает, как она устроена, документации нет (или она устарела), её боятся трогать. Это как старый советский автомобиль - на ходу, но ремонтировать его может только дедушка, который умер десять лет назад.

Легаси - это актив, а не долг. Просто он требует правильного обращения.

Я не лезу в код. Сначала смотрю на систему сверху. Спрашиваю: что система делает сейчас? Что должна делать? Что работает, а что нет? Кто использует? Какие данные хранятся? Ответы дают 50% понимания.

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

Для работы нужен доступ к копии кода и структуре БД. Не к рабочему серверу - к копии. Понимаю, данные конфиденциальны. Поэтому даю инструкцию вашему разработчику: как организовать копию, как исключить доступ к реальным данным. Всё в NDA. Вы защищены. Я защищён. Это как дать врачу рентген, а не разрезать пациента живьём.

Худший сценарий - нет ни разработчика, ни документации. Система есть, работает, но никто не знает как. В этом случае переписывание становится вероятным. Особенно если система монолитная (а это встречается чаще, чем микросервисы, как бы модно это ни звучало). Я не говорю "сразу переписываем". Я говорю: "Будьте готовы, что это может быть единственным разумным вариантом".

После анализа принимаю одно из трёх решений.

Рефакторинг - если система в целом работает, но есть узкие места. Улучшаем отдельные части. Дёшево, быстро, безопасно. Как подтянуть болты, а не менять весь двигатель.

Частичная замена - если система устарела, но можно заменить по частям. Один модуль за этап. Средняя сложность и цена.

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

В процессе документирую. Не "100500 страниц текста", а карту системы: архитектуру, структуру БД, алгоритмы, интеграции. Пишу тесты для критических частей - защита от "сломал - не понял что". Синхронизируюсь с бизнесом каждые 2-3 дня.

Я не переписываю всё с нуля без причины. Не использую модные технологии, если не нужны. Не ломаю работающую систему.

У многих компаний легаси. Это нормально. Это значит, бизнес живёт давно. Не стыдно иметь легаси. Стыдно бояться его трогать.

Легаси - это актив, а не долг. Я не переписываю его "потому что так модно". Переписываю только когда экономически оправдано. Главное - начать разбираться. Остальное - дело техники.

Сайт: https://tzlab.pro