Найти в Дзене
iFellow

Почему старые системы нельзя просто “переписать с нуля”

В каждой ИТ-команде рано или поздно созревает святая мысль: «Давайте перепишем эту древнюю систему с нуля. Ну сколько можно тащить этот легаси?». Обычно эту идею вносят молодые разработчики, которые горят энтузиазмом и не помнят, сколько багов было вылечено кровью. Более опытные коллеги при этих словах бледнеют и начинают нервно крутить пальцем у виска. И у них есть веские причины. Невидимая сложность Старая система, какой бы кривой она ни казалась, работает. Она учитывает тысячи краевых случаев, которые никто не помнит, но которые обязательно всплывут в первый же месяц после запуска «чистого» решения. Эти сценарии годами встраивались в бизнес-процессы, обрастали правками и компромиссами. В коде их не видно, но без них бизнес встанет. Потерянное знание Авторы не раз наблюдали, как уходили ключевые разработчики, а вместе с ними, понимание того, почему определённые решения приняты именно так. Документация, если она вообще есть, давно устарела. Переписывать систему — значит заново изучить

В каждой ИТ-команде рано или поздно созревает святая мысль: «Давайте перепишем эту древнюю систему с нуля. Ну сколько можно тащить этот легаси?». Обычно эту идею вносят молодые разработчики, которые горят энтузиазмом и не помнят, сколько багов было вылечено кровью. Более опытные коллеги при этих словах бледнеют и начинают нервно крутить пальцем у виска. И у них есть веские причины.

Невидимая сложность

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

Потерянное знание

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

Бесконечная гонка

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

Что делать вместо этого?

Опытные архитекторы предлагают другой путь: постепенная эволюция. Выделяются автономные сервисы, старый монолит режется на модули, критически важные куски переписываются по одному с сохранением обратной совместимости. Это дольше и скучнее, чем «взорвать и построить заново», но именно такой подход позволяет не потерять деньги, клиентов и рассудок команды.

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