Аудит унаследованного кода и оценка технического долга

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

Коротко о задаче

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

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

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

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

Мы заглядываем и считаем.

Что входит в услугу

  • Инвентаризация

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

  • Разбор архитектуры

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

  • Оценка состояния кода

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

  • Оценка данных

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

  • Карта рисков

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

  • Сценарии и оценка

Готовим варианты: минимальная стабилизация, поэтапное обновление, частичное переписывание, полная замена. По каждому — объём работ, сроки, бюджет и что получит бизнес. Решение остаётся за вами.


Что это даёт заказчику

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


Как мы работаем

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

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

Дальше в зависимости от вердикта: {{ссылка: Обновление платформы и миграция версий}}, {{ссылка: Приём проекта после предыдущего подрядчика}}, {{ссылка: Восстановление технической документации}} либо {{ссылка: Разработка веб-сервисов и платформ}}, если решено делать заново.


Наш опыт

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

Аналогичный разбор мы выполняли для мобильного приложения на прекращённом фреймворке. {{ссылка: Обновление платформы и миграция версий}}

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

Расскажите, что за система и что с ней не так. Начнём с аудита, а решение о дальнейшем примете вы.

Давайте создавать вместе!

Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке

Контакты

Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78