Критически важные для бизнеса системы со временем превращаются в техническую проблему. Они написаны на устаревших языках, их код не поддерживается, а каждый сбой грозит остановкой операционных процессов. Обслуживать такие решения становится все сложнее и дороже, но полностью отказаться от них нельзя — на них завязана работа компании. Но и терпеть растущие риски больше невозможно.
Возникает дилемма: вложить ресурсы в модернизацию существующей системы или решиться на её полное переписывание с нуля. Оба пути требуют серьезных инвестиций и времени. В этой статьей партнер и генеральный директор Notamedia.Integrator Сергей Ковтун разбирает, какие критерии нужно учесть для того, чтобы принять взвешенное решение.
Почему legacy-системы — это проблема для компаний
Legacy-система — это не просто старая программа. Это программный код, архитектура и технологии, которые морально устарели, но продолжают эксплуатироваться. По данным исследований, в производственном секторе около 71% компаний зависят от таких решений. В секторе профессиональных услуг этот показатель такой же, при этом 61% компаний сталкиваются с нехваткой данных об эффективности бизнеса именно из-за ограничений устаревшего ПО.
Основные проблемы, которые создают устаревшие программные системы:
Модернизация vs переписывание: в чём разница
Чтобы решить проблему, нужно выбрать стратегию. Два основных пути — модернизация существующей системы или её полная замена. Важно понимать разницу между ними.
Модернизация (рефакторинг, постепенная миграция)
Что это. Улучшение текущей кодовой базы системы без остановки её работы. Код перерабатывается, устаревшие модули постепенно заменяются новыми, а данные переносятся поэтапно.
Как происходит: модернизация legacy-системы начинается с аудита, где специалисты изучают архитектуру, выявляют самые проблемные участки и точки интеграции. Затем выбирается один из паттернов модернизации, а новый функционал создается в виде отдельных сервисов. Они постепенно заменяют собой старую систему, часть за частью, пока та полностью не будет выведена из эксплуатации. Бизнес-процессы при этом не прерываются.
Когда имеет смысл:
Плюсы рефакторинга:
Минусы:
Переписывание ПО с нуля
Что это. Полный отказ от старого кода и создание нового продукта, который заменит legacy-систему.
Как происходит: в компании формируется команда разработки, которая пишет новое приложение с нуля, но с использованием современных технологий. При этом старая система продолжает работать параллельно с новой. На финальном этапе выполняется миграция данных из старой системы в новую, после чего происходит отключение устаревшего ПО.
Когда имеет смысл:
Плюсы переписывания ПО с нуля:
Минусы:
Критерии выбора: чек-лист для принятия решения
Выбор пути зависит от конкретной ситуации, но эти пять ключевых критериев помогут вам лучше определить направление развития софта.
Состояние кода и архитектуры
Если кодовая база не поддерживается, документация отсутствует, а понять логику работы может только один единственный программист в компании — это аргумент в пользу переписывания. Если код в относительном порядке и поддается рефакторингу, стоит выбрать модернизацию.
Стоимость владения (TCO)
Посчитайте, сколько компания тратит на поддержку старой системы ежегодно и сравните эти цифры со сметой на замену устаревшего ПО. Если через 2-3 года затраты на поддержку превысят стоимость новой разработки – нужно переписывать. Если затраты терпимы, пока можно модернизировать.
Бизнес-критичность и допустимое время простоя
Для систем, остановка которых недопустима ни на минуту (например, процессинг в банке), предпочтительна модернизация с постепенным подхватом функционала. Если систему можно остановить на выходные для миграции, то стоит рассмотреть вариант переписывания, но иметь в виду риск блокировки критичных операций и откат на стабильную версию.
Необходимость в новых функциях
Если бизнесу нужно быстро выводить на рынок новые продукты и сервисы, а старая система этого не позволяет, модернизация может не дать нужной скорости. В этом случае побеждает переписывание. Если же функционал текущей системы в целом устраивает, лучше её модернизировать.
Доступность кадров
Если найти разработчиков для поддержки текущего стека технологий невозможно или они непозволительно дороги, у вас нет выбора — нужна замена. Если команда есть и готова работать, можно планировать модернизацию.
Риски для бизнеса и как их минимизировать
Любой проект по работе с legacy-системами сопряжен с рисками. Но ими можно управлять.
Потеря данных при миграции
Как избежать. Провести тщательный аудит данных на старте, создать резервные копии и проводить многократное тестирование миграции на копиях данных до перехода в продуктивную среду.
Простой бизнес-процессов
Как избежать. Использовать стратегии, не требующие остановки (Strangler Pattern), планировать переключения на периоды наименьшей нагрузки и иметь четкий план отката (на полностью рабочую версию).
Непринятие системы пользователями
Как избежать. Вовлекать ключевых пользователей в процесс на этапе тестирования, проводить обучение и собирать обратную связь, чтобы интерфейс и логика были понятны каждому.
Разрастание бюджета и сроков
Как избежать: Начинать с пилотного проекта и разбивать работу на короткие итерации, на каждой из которых получать измеримый результат. Это позволит контролировать расходы и вовремя корректировать курс.
Частые вопросы по теме
-
1Что такое legacy-система простыми словами?Это программное обеспечение, которое давно работает в компании, но морально устарело. Оно написано на старых языках, использует неподдерживаемые библиотеки, а документация на него или потеряна, или никогда не существовала. При этом система вполне может полностью выполнять свои функции, но каждое изменение в ней требует больших усилий и несёт риски поломок.
-
2Сколько стоит переписать legacy-систему с нуля?По опыту — суммы начинаются от нескольких миллионов рублей и могут достигать сотен миллионов — всё зависит от масштаба и сложности. На цену влияет объём функционала, необходимость миграции данных, совместимость с другим ПО и требования к безопасности. Точную цифру даст только аудит.
-
3Как понять, что пора что-то делать со старой системой?Сигналов несколько: затраты на поддержку растут быстрее выручки, найти специалистов под ваш стек невозможно, система падает при высокой нагрузке, а новый бизнес-функционал внедряется месяцами. Если добавить сюда проблемы с безопасностью и невозможность интеграции с современными сервисами — кодовую базу пора обновлять.
-
4Можно ли модернизировать систему без остановки бизнеса?Да, это главное преимущество постепенной модернизации. Для этого используются специальные техники, например, старую систему оборачивают новыми сервисами, постепенно отключая её модули. Бизнес-процессы продолжают идти, а пользователи переезжают на новые интерфейсы без простоев и потери данных.
-
5Сколько времени занимает модернизация или переписывание?
Сроки сильно зависят от объёма и сложности. Модернизация может растянуться на 2-3 года, а полное переписывание обычно укладывается в 1-2 года, если речь не о масштабе проекта федерального масштаба.
-
6Что делать если документации на систему нет?Начинать с аудита и реверс-инжиниринга. Команда погружается в код, восстанавливает логику, картографирует бизнес-процессы, зашитые в систему. Это трудоёмко, но необходимо, иначе любое изменение или перенос данных будут происходить вслепую с катастрофическими рисками.
-
7Получится ли у новой системы работать со старыми данными?Да, но миграция данных требует тщательной подготовки. Старые базы часто содержат дубликаты, ошибки и информацию в устаревших форматах, поэтому перед переносом данные нужно очистить, преобразовать и проверить. Если подойти к этому формально то, в новую систему переедут все старые проблемы.
Заключение
Нельзя закрывать глаза на проблемы старых систем. Подход «работает — не трогай» в этой ситуации неизбежно ведет к кризису. Современные технологии и подходы к разработке позволяют провести обновление корпоративных систем с минимальными рисками для бизнеса.
Notamedia.Integrator занимается модернизированием и разработкой ИТ-систем компаний разного уровня — от частного бизнеса до высоконагруженных проектов государственного уровня со строгими требованиями к защите информации (включая работу с гостайной), устойчивости и надежности таких систем. Свяжитесь с нами, чтобы получить план работ по обновлению старого ПО для вашей компании.