Легаси-проекты: не приговор, а актив
"Легаси" - слово, которое пугает бизнес. Звучит как приговор. "У нас легаси, мы ничего не можем сделать". Как будто врач сказал "рак", а не "грипп". Но на самом деле легаси - это просто код, который уже написан. И он работает. Как-то. Но работает.
Давайте разберёмся, что с ним делать.
Легаси - это система, которая уже работает (как-то), написана давно (3, 5, 10 лет назад), никто не знает, как она устроена, документации нет (или она устарела), её боятся трогать. Это как старый советский автомобиль - на ходу, но ремонтировать его может только дедушка, который умер десять лет назад.
Легаси - это актив, а не долг. Просто он требует правильного обращения.
Я не лезу в код. Сначала смотрю на систему сверху. Спрашиваю: что система делает сейчас? Что должна делать? Что работает, а что нет? Кто использует? Какие данные хранятся? Ответы дают 50% понимания.
Ищу разработчика, который знает систему. Если есть - это золото. Один разговор с человеком, знающим код, экономит недели анализа. Если есть документация - прошу её. Даже устаревшая даёт понимание замыслов.
Для работы нужен доступ к копии кода и структуре БД. Не к рабочему серверу - к копии. Понимаю, данные конфиденциальны. Поэтому даю инструкцию вашему разработчику: как организовать копию, как исключить доступ к реальным данным. Всё в NDA. Вы защищены. Я защищён. Это как дать врачу рентген, а не разрезать пациента живьём.
Худший сценарий - нет ни разработчика, ни документации. Система есть, работает, но никто не знает как. В этом случае переписывание становится вероятным. Особенно если система монолитная (а это встречается чаще, чем микросервисы, как бы модно это ни звучало). Я не говорю "сразу переписываем". Я говорю: "Будьте готовы, что это может быть единственным разумным вариантом".
После анализа принимаю одно из трёх решений.
Рефакторинг - если система в целом работает, но есть узкие места. Улучшаем отдельные части. Дёшево, быстро, безопасно. Как подтянуть болты, а не менять весь двигатель.
Частичная замена - если система устарела, но можно заменить по частям. Один модуль за этап. Средняя сложность и цена.
Полное переписывание - если система не подлежит рефакторингу. Но только если: нет поддержки, нет документации, нет тестов, требования изменились. Дорого, долго, рискованно. Рекомендую только в крайнем случае.
В процессе документирую. Не "100500 страниц текста", а карту системы: архитектуру, структуру БД, алгоритмы, интеграции. Пишу тесты для критических частей - защита от "сломал - не понял что". Синхронизируюсь с бизнесом каждые 2-3 дня.
Я не переписываю всё с нуля без причины. Не использую модные технологии, если не нужны. Не ломаю работающую систему.
У многих компаний легаси. Это нормально. Это значит, бизнес живёт давно. Не стыдно иметь легаси. Стыдно бояться его трогать.
Легаси - это актив, а не долг. Я не переписываю его "потому что так модно". Переписываю только когда экономически оправдано. Главное - начать разбираться. Остальное - дело техники.
Сайт: https://tzlab.pro
· 06.08
Легаси сам по себе не проблема - проблема, когда его считают «техническим долгом без P&L». Обычно он становится активом, если есть SLA, понятная зона ownership и план по выносу самых дорогих частей. У вас какой критерий для решения: переписать или стабилизировать?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 06.08
Согласен полностью с позицией!
Легаси становится активом только когда есть SLA, владелец и понимание "зачем нам это нужно вообще - для чего держать?".
Критерий простой:
Если первая превышает вторую хотя бы в 1.5 раза - рекомендация переписать. Если нет - стабилизация и точечный рефакторинг самых горячих (и горящих) точек, куда приходятся 80% правок.
Исключение - если технология умерла. Пример - старый Perl. И содержать затратно, и технология не поддерживаемая. Переписываем сразу, даже если экономика пока терпит. Потому что риск остаться без поддержки еще через год-два точно перекрывает любые цифры.
При этом всегда стабилизация идет параллельно. Не выключаем старую систему, пока новая не открутит месяц в теневом режиме и расхождение с продакшеном не упадет ниже приемлемой черты. Это стоит 15% бюджета, но страхует от потери клиентов в день перехода.
Ну и владелец со стороны бизнеса. Начинаем только с ним. Иначе рефакторинг превращается в "бесконечное улучшение ради улучшения", а это путь, простите, в никуда.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён