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