Проблемные проекты · 10 минут

Переписывать проект или сначала стабилизировать

Как решить, переписывать web-проект с нуля, стабилизировать текущую систему или сначала провести аудит причин, рисков и технического долга.

Проверить проект Короткий ответ
Стратегия Переписывать проект или стабилизировать

Сначала отделяем рабочие части от критичных рисков

Короткий ответ

Решение “переписать проект с нуля” нельзя принимать только из усталости от старой системы. Иногда переписывание действительно нужно, но часто сначала выгоднее стабилизировать критичные сценарии, восстановить документацию, разобрать технический долг и локально переработать самые рискованные зоны.

Правильный вопрос не “старый проект плохой или хороший”. Правильный вопрос: что в нём ещё работает, что мешает развитию, какие риски нельзя оставить и какой путь даст бизнесу управляемый результат быстрее и безопаснее.

Если проект уже похож на технический тупик, решение о переписывании нужно принимать после диагностики причин, а не по эмоциям команды или подрядчика.

Почему идея переписать всё выглядит привлекательной

Когда проект долго развивается без порядка, переписывание кажется чистым выходом. Можно убрать старый код, выбрать современный стек, заново описать архитектуру и больше не поддерживать накопленные компромиссы.

Но для бизнеса переписывание с нуля означает не только новый код. Это повторное прохождение всех решений, которые уже накопились в старой системе:

  • роли пользователей;
  • статусы и исключения;
  • интеграции с CRM, 1C, складами, платежами или внутренними сервисами;
  • ручные операции сотрудников;
  • права доступа;
  • отчёты;
  • импорт и экспорт данных;
  • неочевидные бизнес-правила;
  • сценарии, о которых помнят только отдельные люди.

Если всё это не зафиксировать, новая система может получиться технологически свежее, но управленчески такой же проблемной.

Риски переписывания без диагностики

Главный риск - переписать не проблему, а интерфейс проблемы. Команда сделает новую версию, но унаследует старые неописанные процессы, данные и зависимости.

Чаще всего появляются такие риски:

  • старая система продолжает жить, потому что новая не закрыла все сценарии;
  • сроки переписывания растут из-за скрытой бизнес-логики;
  • пользователи не могут перейти на новую версию без ручных обходов;
  • интеграции приходится восстанавливать по факту, а не по документации;
  • бизнес месяцами платит за две системы: старую поддержку и новую разработку;
  • новая команда повторяет архитектурные ошибки, потому что не поняла причины старых.

Поэтому перед переписыванием нужен не спор о вкусе кода, а карта фактов: что сломано, что работает, что можно сохранить, что опасно трогать и где требуется новое проектирование.

Когда достаточно стабилизации

Стабилизация подходит, если проект ещё выполняет критичные функции и его можно вернуть в управляемое состояние без полной замены.

Обычно это разумный первый шаг, если:

  • основные бизнес-сценарии работают, но релизы стали рискованными;
  • часть модулей стабильна, а проблемы сосредоточены в нескольких зонах;
  • интеграции важны, но их можно описать и защитить;
  • команда понимает часть системы, но не видит общей картины;
  • документация неполная, но её можно восстановить;
  • пользователи зависят от текущей системы каждый день;
  • бизнесу важнее снизить риск ближайших релизов, чем строить новую платформу несколько месяцев.

Стабилизация не означает “оставить всё как есть”. Это управляемый этап: защитить критичные сценарии, описать зависимости, убрать самые дорогие ограничения и вернуть предсказуемость.

Когда переписывание может быть оправдано

Переписывание имеет смысл, когда текущая система не просто неудобна, а объективно не поддерживает дальнейшую бизнес-логику.

Признаки:

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

Даже в этом случае переписывание должно начинаться не с разработки, а с проектирования границ: что переносим, что закрываем, что временно поддерживаем, какие данные мигрируем и как не остановить текущую работу.

Когда сначала нужен аудит

Аудит нужен, если команда или подрядчик не могут доказать, почему выбранный сценарий правильный.

Например:

  • подрядчик говорит “нужно переписать”, но не показывает карту причин;
  • внутренняя команда просит время на рефакторинг, но не связывает его с бизнес-рисками;
  • новая команда предлагает начать заново, не разобрав старые интеграции;
  • собственник не понимает, что из текущей системы ещё имеет ценность;
  • оценки стабилизации и переписывания сильно расходятся;
  • документации нет, а проект нужно развивать или передавать.

В такой ситуации полезнее начать с аудита проблемного проекта или аудита web-проекта, а не выбирать между двумя дорогими гипотезами.

Симптом -> решение

СимптомЧто это может означатьРазумный следующий шаг
Простые доработки стали дорогимиСкрытые зависимости, технический долг, неописанная логикаСначала оценить долг и карту зависимостей
После релизов ломаются старые функцииНет регрессионных проверок, слабый релизный процесс, связность модулейСтабилизировать критичные сценарии и релизы
Команда боится менять системуНет документации, тестов, владельцев знаний или понятной архитектурыВосстановить карту проекта и зоны риска
Интеграции работают нестабильноНе описаны обмены, источники данных и точки ошибокСоставить карту интеграций и данных
Подрядчик предлагает переписать всёВозможно, причина реальная, но не доказана фактамиПровести независимую диагностику до бюджета
Пользователи ежедневно работают в старой системеНельзя остановить проект на время новой разработкиСначала стабилизация, затем параллельный roadmap
Бизнес-модель измениласьСтарая архитектура может не подходить новому процессуПроектировать целевой контур и план миграции

Как сравнить три сценария

Перед решением удобно сравнивать не “старое против нового”, а три сценария.

1. Стабилизировать текущий проект

Подходит, если проект ещё можно поддерживать, а главная проблема - хаос, долг, слабые релизы, неполная документация или плохая прозрачность.

Результат: меньше аварий, понятнее оценки, безопаснее ближайшие доработки.

2. Локально переработать проблемные зоны

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

Результат: точечная архитектурная переработка без остановки всего проекта.

3. Проектировать новую систему

Подходит, если текущая архитектура не поддерживает бизнес-процесс, а стабилизация только отсрочит проблему.

Результат: новая архитектура, но с планом миграции, сохранения данных, поддержки старой системы и постепенного перехода.

Что запросить у команды до решения

Перед тем как согласовать переписывание или большой рефакторинг, запросите у подрядчика или внутренней команды конкретные материалы:

  • карту модулей и зависимостей;
  • список критичных бизнес-сценариев;
  • список интеграций и источников данных;
  • оценку технического долга по критичности;
  • список зон, которые нельзя менять без риска;
  • историю релизов и повторяющихся дефектов;
  • перечень документации, которой не хватает;
  • сравнение сценариев: стабилизация, локальная переработка, переписывание;
  • критерии, по которым станет понятно, что выбранный путь успешен.

Если этих материалов нет, сначала стоит восстановить минимальную техническую документацию web-проекта и собрать roadmap восстановления.

Практичный порядок действий

  1. Зафиксировать текущее состояние: что работает, что ломается, что нельзя останавливать.
  2. Собрать карту модулей, данных, интеграций, ролей и релизов.
  3. Отделить симптомы от причин: сроки, регрессии, долг, документация, подрядчик, архитектура.
  4. Разделить проект на части: сохраняем, стабилизируем, локально перерабатываем, проектируем заново.
  5. Оценить стоимость и риск каждого сценария.
  6. Сформировать roadmap: ближайшие стабилизирующие шаги, среднесрочные решения и критерии перехода к новой архитектуре.
  7. Только после этого принимать решение о переписывании.

Такой подход помогает не застрять между двумя крайностями: “терпеть старую систему” и “срочно переписать всё”.

Связанные материалы

МатериалКогда полезен
Проект в техническом тупикеЕсли доработки стали дорогими, сроки плывут, команда боится изменений
Roadmap восстановления проблемного проектаЕсли нужно разложить восстановление на этапы
Как оценить технический долг web-порталаЕсли нужно понять, какой долг критичен, а какой можно держать под контролем
Восстановление web/AI-проектаЕсли нужно перейти от диагностики к стабилизации и плану восстановления
Чек-лист проблемного web-проектаЕсли нужно собрать первые признаки и подготовить разговор с командой

Практический вывод

Переписывание проекта - это не техническая кнопка “начать заново”, а управленческое решение с риском для бюджета, сроков, пользователей и данных.

Если проект ещё можно стабилизировать, лучше сначала вернуть управляемость. Если система действительно не поддерживает бизнес, переписывание должно идти по roadmap: с картой причин, миграцией данных, сохранением критичных сценариев и понятными критериями успеха.

Разобрать, что делать с проектом

Карта причин

Из чего складывается технический тупик

Тупик редко появляется из-за одной ошибки. Обычно это сочетание неописанной бизнес-логики, технического долга и потери контроля над релизами.

Логика

Неописанные сценарии

Роли, статусы, исключения и ручные процессы живут в голове команды.

  • нет карты ролей
  • правила менялись устно
  • исключения не зафиксированы
Код

Технический долг

Быстрые решения стали постоянными и начали ограничивать развитие.

  • правки затрагивают соседние модули
  • новые баги после релизов
  • сложные оценки
Данные

Разные источники истины

CRM, 1C, портал и таблицы дают разные ответы на один вопрос.

  • дубли
  • ручные сверки
  • неясные владельцы данных
Команда

Нет технической картины

Подрядчик занят задачами, но бизнес не видит причин задержек и рисков.

  • общие ответы
  • нет схемы архитектуры
  • документация устарела
Итог Результат диагностики: отделить симптомы от причин и понять, где проект можно стабилизировать без переписывания всего сразу.

Чек-лист

Материал по теме статьи

FAQ

Частые вопросы

Когда нужно переписывать проект с нуля?

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

Когда достаточно стабилизировать текущий проект?

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

Почему нельзя сразу нанять команду на переписывание?

Без диагностики новая команда может перенести старые ошибки в новую систему: неучтённые бизнес-правила, скрытые интеграции, ручные процессы, права доступа и данные.

Что проверить перед решением?

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

Что даёт аудит перед переписыванием?

Аудит показывает, что можно сохранить, что нужно стабилизировать, что перепроектировать, какие риски критичны и какой roadmap безопаснее для бизнеса.

Следующий шаг

Перейти от статьи к действию

Если материал похож на вашу ситуацию, следующий шаг лучше выбирать по проблеме: диагностика, контроль подрядчика, AI-ready проверка или проектирование.

Проект застрял

Начать с диагностики проблемного проекта

Если сроки, бюджет или стабильность перестали быть предсказуемыми, сначала нужно собрать факты и карту рисков.

  • технический тупик
  • срывы сроков
  • нестабильные релизы

Подрядчик

Проверить подрядчика без конфликта

Если ответы по срокам, рискам и релизам стали размытыми, нужен контроль по артефактам, а не микроменеджмент.

  • статус и блокеры
  • архитектура и релизы
  • документация и передача

AI-ready

Понять, готов ли проект к AI

Если хочется AI-ассистента, RAG или автоматизацию, сначала стоит проверить данные, роли, документы и критерии качества.

  • источники данных
  • права доступа
  • метрики качества

Заявка

Обсудить проект по материалу

Опишите ситуацию в проекте. Дмитрий сможет ответить, какие признаки требуют быстрой диагностики.

Дмитрий Зугаев
Дмитрий Зугаев web/AI-архитектор, CTO
Заявка уйдёт на email Дмитрия.