Как мы перевезли проект с ASP.NET на Falcon Space: экономия на доработках в 3 раза
У многих компаний есть «историческое» ПО: самописная CRM, внутренний портал, система учёта проектов. Когда-то она была современной, но сейчас каждый чих требует недели на доработку, баги множатся, а штат программистов раздут. И всё это на старом ASP.NET Web Forms или даже на PHP-фреймворке, который никто не поддерживает.
Мы столкнулись с такой ситуацией внутри своей компании. У нас была старая система учёта проектов, финансов, задач на ASP.NET MVC. Она работала, но развивать её было мучительно. Мы приняли решение перенести всё на Falcon Space. Расскажу, как это сделали и сколько сэкономили.
Старая система: боль и страдания
Исходная система (назовём её Legacy) была написана на классическом ASP.NET MVC с Entity Framework. База данных — MS SQL Server. Функционал:
- Учёт проектов (заказчики, этапы, задачи).
- Учёт рабочего времени сотрудников (timesheets).
- Финансы (счета, акты, платежи).
- Баг-трекер.
- Отчёты для руководства.
Проблемы, которые накопились за 5 лет:
- Любая доработка (даже добавить одно поле в форму) требовала изменения кода в нескольких слоях (модель, контроллер, представление, миграция БД), деплоя на сервер. Занимало от 4 часов до 2 дней.
- Сложность найма разработчиков — нужны были .NET-специалисты, а их зарплаты высоки, и найти хорошего в регионах сложно.
- Техдолг — код был написан в разное время разными людьми, без единого стиля.
- Несколько человек работали над проектом одновременно, постоянно возникали конфликты слияния в Git.
- Деплой — нужно было останавливать сайт, публиковать, перезапускать пул приложений. Клиенты видели ошибки.
Мы терпели до тех пор, пока количество запросов на доработки не превысило 5-6 в неделю. Стало понятно: надо менять платформу.
Почему выбрали Falcon Space
Мы решили мигрировать на собственную же платформу Falcon Space. Причины:
- Вся бизнес-логика — это SQL. Деплой не нужен, правки вступают в силу мгновенно.
- Можно обойтись SQL-специалистом, которых найти проще и дешевле.
- Интерфейс строится на Bootstrap — знаком многим.
- Мы сами знаем платформу досконально, можем быстро перенести.
Плюс была важная задача: сохранить существующую базу данных (MS SQL Server), не теряя данные, и постепенно перевозить функционал, чтобы система не простаивала.
Как проходила миграция: пошагово
Мы разбили процесс на этапы, чтобы не останавливать бизнес.
Этап 1. Подготовка и пилот (1 месяц)
Установили Falcon Space на новый поддомен. Создали базовые таблицы, скопировали справочники (проекты, клиенты, сотрудники) из старой БД через скрипты. Реализовали аутентификацию — пользователи могли заходить и в старую, и в новую систему с теми же логинами.
Затем перенесли модуль «Проекты» — самый важный. Написали SQL-процедуры для отображения списка проектов, карточки проекта, задач по проекту. В старой системе эти функции занимали около 1000 строк кода на C#. В новой — 5 хранимых процедур по 20-30 строк каждая.
Сотрудников попросили работать параллельно: основные операции в старой системе, но заходить в новую для тестирования. Через месяц мы перевели просмотр проектов полностью, старая система осталась только для редактирования сложных объектов.
Этап 2. Перенос оперативной логики (2 месяца)
Перенесли модуль задач и timesheets. Сотрудники стали отмечать время в новой системе. Для этого использовали стандартные компоненты Falcon Space: таблица с inline-редактированием, фильтры по датам, экспорт в Excel.
Параллельно перенесли финансовый блок: счета и платежи. Здесь было сложно — старая система имела сложную логику расчёта НДС и договоров. Но в SQL мы повторили её один в один, причём производительность выросла, потому что расчёты происходят прямо в БД без лишних слоёв.
На этом этапе сотрудники уже активно работали в новой системе, старая использовалась только для отчётов и баг-трекера.
Этап 3. Отчёты, баг-трекер и отключение Legacy (2 месяца)
Баг-трекер перенесли как набор таблиц (bugs, comments, statuses) и страницы со списком багов и карточкой. Функционал поиска, фильтрации, приоритетов — всё есть в платформе из коробки.
Отчёты для руководства (финансовые, по проектам, загрузке сотрудников) сделали в виде дашбордов с графиками (диаграммы Ганта, круговые диаграммы). Для этого использовали стандартные виджеты + немного JavaScript.
Когда функциональность новой системы покрыла 95% старой, мы переключили DNS на новый сервер. Старую систему отключили, но оставили доступной в архиве на случай, если понадобится восстановить какие-то данные.
Общее время миграции — 5 месяцев (с учётом параллельной работы).
Результаты и экономия
После миграции мы получили:
- Время на доработку сократилось с 2-3 дней до 2-3 часов. Потому что изменения в SQL-процедурах моментальны.
- Штат разработчиков сократился с 3 full-stack .NET до 1 SQL-специалиста. Зарплата последнего на 40% ниже.
- Ошибок стало меньше. В старой системе были баги, связанные с кешированием, сессиями, обновлением страниц. В новой их нет, потому что архитектура проще.
- Деплои теперь не нужны. Обновления происходят без остановки работы.
- Годовой бюджет на разработку и поддержку сократился в 3 раза. С 1,8 млн руб до 600 тыс. руб.
Мы также получили возможность быстро делать «горячие правки» прямо из кабинета разработчика, не отвлекая команду.
Из статьи, которую мы написали по этому поводу: «Самые лучшие решения принимаются, когда ты хорошо знаешь техническую часть и глубоко понимаешь бизнес-требования (т.к. ты их сам разработал из текущей реальной необходимости). У нас не было необходимости делать большое ТЗ на систему с дальнейшей приемкой результата. Система шлифуется практически еженедельно. Самые лучшие решения приходят постепенно, в процессе работы в рамках системы, а не на этапе начальной проработки». (История создания платформы).
Что делать, если у вас старая система
Если вы узнали свою ситуацию (медленные доработки, дорогие программисты, страх что-то менять), вот вам план:
- Проведите аудит. Выпишите ключевые сущности (клиенты, заказы, продукты, отчёты) и бизнес-логику.
- Оцените объём переноса. Сколько таблиц, сколько хранимых процедур нужно переписать? Обычно это 2-4 месяца работы для SQL-специалиста.
- Выберите пилотный модуль. Перенесите его на Falcon Space, запустите в параллельном режиме.
- Обучите сотрудников. Интерфейс на Bootstrap обычно не вызывает проблем.
- Постепенно отключайте старую систему.
Мы предлагаем услуги по миграции с любых платформ (PHP, Java, .NET, 1С) на Falcon Space. Стоимость зависит от объёма — ориентировочно 300 000 — 800 000 руб. Окупаемость за счёт снижения затрат на поддержку — 6-12 месяцев.
Напишите нам, мы проведём бесплатную предварительную оценку сложности переноса. Пришлите описание вашей текущей системы и требования — ответим сроками и бюджетом.
P.S. Если вы хотите не переносить, а создать новую систему с нуля на Falcon Space, у нас есть готовые решения и большой опыт. В любом случае — мы поможем вам выбраться из legacy-болота.
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта