Легаси — это система, которая:
Легаси — это актив, а не долг. Просто он требует правильного обращения.
Я не лезу в код. Сначала я смотрю на систему сверху.
Ответы дают 50% понимания.
Если есть разработчик, который работал с этой системой — это золото. Я прошу контакт и связываюсь с ним. Один разговор с человеком, который знает код, экономит недели анализа.
Если есть документация — я прошу её. Даже если она устарела, она даёт понимание того, как система задумывалась.
Для работы с легаси-проектом мне нужен доступ к копии кода и структуре базы данных. Я не прошу доступ к рабочему серверу. Я прошу копию.
Я прекрасно понимаю, что данные конфиденциальны. Поэтому я сразу снимаю это опасение:
Мне нужен доступ не к рабочему коду, а к его копии.
При необходимости я выдаю инструкцию вашему разработчику:
Всё это детально отражается в NDA-разделе договора. Вы защищены. Я защищён.
Это худший, но самый частый сценарий.
Система есть. Она работает. Но никто не знает, как она работает. Нет документации. Нет разработчика, который бы помнил, что там написано.
В этом случае переписывание становится очень вероятным сценарием. Особенно если система написана в монолитном стиле, который встречается гораздо чаще, чем микросервисы.
Я не говорю «сразу переписываем». Но я говорю: «Будьте готовы к тому, что это может быть единственным разумным вариантом».
После анализа я принимаю одно из трёх решений:
Если система в целом работает, но есть узкие места — я предлагаю рефакторинг. Мы не переписываем всё, мы улучшаем отдельные части.
Это дёшево, быстро и безопасно.
Если система сильно устарела, но её можно заменить по частям — я предлагаю частичную замену. Мы заменяем один модуль за другим. Каждый модуль — отдельный этап.
Это средняя сложность и средняя цена.
Если система не подлежит рефакторингу — я предлагаю полное переписывание. Но только если:
Это дорого, долго и рискованно. Я рекомендую этот вариант только в крайних случаях.
Параллельно с работой я создаю документацию. Не «100500 страниц текста», а карту системы:
Когда я закончу, у вас будет документация, которую можно передать любому разработчику.
Если в системе нет тестов — я пишу их. Хотя бы для критических частей. Это защита от «сломал — не понял что».
Каждые 2–3 дня я показываю промежуточные результаты. Вы видите, что я делаю, и можете вовремя скорректировать направление.
У многих компаний легаси. Это нормально. Это значит, что бизнес живёт давно. Легаси — это часть истории компании.
Не стыдно иметь легаси. Стыдно бояться его трогать.
Я работаю с легаси как с активом. Я не переписываю его «потому что так модно». Я переписываю его только когда это экономически оправдано.
Напишите. Я помогу разобраться.