Крупная компанияИспользуется обновлённая версия

Подготовил старую CRM к сопровождению и развитию без переписывания с нуля

Самописная CRM крупной компании поддерживала ключевые финансовые процессы и отчётность. Документации не было, порядок восстановления оставался неизвестным, а серьёзный сбой мог остановить часть бизнеса. Компания не хотела значительно вкладываться в замену CRM. Я самостоятельно разобрал систему на локальном стенде, контейнеризировал её, подготовил документацию и инструкции на случай сбоев. Затем вместе с DevOps компании мягко заменил рабочую версию.

Моя роль
Самостоятельно изучил и контейнеризировал CRM, подготовил документацию и инструкции по восстановлению. Вместе с DevOps заменил рабочую версию.
Система
Самописная CRM для ключевых финансовых процессов и отчётности компании
Статус
Компания использует обновлённую CRM
Задача

Недокументированная CRM обеспечивала финансовые процессы и отчётность. При серьёзном сбое часть бизнеса могла остановиться, пока IT-команда разбиралась бы в незнакомой системе. Значительные вложения в её замену компания не рассматривала.

Моя работа над проектом

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

Результат

Компания сохранила CRM и перешла на обновлённую версию. У IT-команды появились описание системы, порядок действий при сбоях и подготовленная основа для доработок.

Финансовые процессы на недокументированной CRM

В крупной компании самописная CRM обеспечивала ключевые финансовые процессы и отчётность. Её разработали более пяти лет назад, а найти первоначального разработчика не удалось. Система работала без контейнеров, имела множество зависимостей и не была задокументирована. Как восстановить её после серьёзного сбоя, IT-команда не знала.

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

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

Исследование на копии и переход на обновлённую версию

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

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

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

Отдельным ответственным этапом было переключение рабочей версии: от доступности CRM зависели повседневные процессы компании. Этот этап я выполнил совместно с DevOps компании, отвечавшими за инфраструктуру. Мы мягко заменили рабочую версию, и компания перешла на обновлённую CRM.

Основа для сопровождения и дальнейших изменений

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

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

Перенос менеджера доменов с Java на Python

В другом проекте я переписал внутренний инструмент рекламного агентства, управляющего сотнями доменов: перенёс программу управления доменами с Java на Python. Здесь требовалось именно переписывание, а основным источником требований служила прежняя программа. Новая версия должна была сохранить функции, на которые рассчитывали её пользователи.

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

Когда стоит заняться существующей системой

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

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

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

Для каких задач полезен этот опыт
  • Самописная CRM или учётная система нужна для повседневной работы, но её устройство и порядок сопровождения недостаточно понятны IT-команде.
  • Развитие системы откладывают из-за риска нарушить процессы, которыми ежедневно пользуются сотрудники.
  • Приложение, созданное сотрудником с помощью нейросети, нужно подготовить к использованию во всей компании и дальнейшей поддержке.
  • Внутренний инструмент требуется перенести на современный стек, сохранив необходимые сотрудникам функции.

Нужно решить похожую задачу?

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

Обсудить вашу задачу

Что вы хотите решить?

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

  • Вы общаетесь напрямую со мной, а не с менеджером по продажам.
  • Первый созвон поможет понять, могу ли я решить вашу задачу и каким будет первый шаг.
  • Если задача не подходит моему профилю, прямо об этом скажу.
Александр Чадаев

Александр Чадаев

Указать сроки и приложить материалы

Приложите ТЗ, скриншоты, примеры документов или другие материалы. Не более 10 файлов общим объёмом до 20 МБ.

Обсудить вашу задачу Telegram