О заказчике
Заказчиком проекта выступил крупный международный производитель табачной продукции с локализованным в России производством.
Об исполнителе
ICL Services – продуктово-сервисная компания, работающая на российском и международном рынках с 2006 года, состоит в реестре аккредитованных ИТ-компаний Минцифры России. Компания предлагает широкий спектр продуктов и услуг: от аудита, бизнес-консалтинга и проектирования до полной интеграции с информационными системами заказчиков, поставки оборудования, выполнения проектов внедрения и дальнейшего сопровождения в режиме 24/7.
Предпосылки проекта
Геополитические изменения поставили заказчика перед фактом: иностранный вендор прекратил обслуживание критичной системы управления производством. Компания одномоментно лишилась не только обновлений, но и физической возможности заменить выходящие из строя аппаратные модули.
Проблема носила экзистенциальный для непрерывного цикла характер. Система плотно завязана на конвейерную логистику — любой сбой в программном обеспечении или отказ «железа» грозил параличом конвейера и прямыми многомиллионными убытками. Для предотвращения производственного коллапса заказчик оперативно привлек команду ICL Services.
Задачи проекта
Перед командой стояла цель не просто «починить», а восстановить полный контроль над производственным софтом. Задачи были поставлены следующие:
- Обследовать производственную систему в её текущем состоянии;
- Восстановить и детально описать архитектуру;
- Получить исходный код, а для модулей, где он утрачен, — восстановить его из существующих сборок;
- Настроить стабильную сборку и развёртывание системы в тестовом контуре;
- Отладить бесшовное обновление системы в продуктовой среде;
- Подготовить команду поддержки для дальнейшего исправления ошибок и реализации улучшений.
Ход проекта: пошаговое восстановление технологического суверенитета
Проект реализовали в четыре этапа, двигаясь от полной «чёрной коробки» к полностью управляемой и поддерживаемой системе.
Этап 1. Реверс-инжиниринг и восстановление структуры. В работу включились два опытных разработчика и проектный менеджер. Задачи разделили по компонентам системы: один специалист погружался в базу данных, второй — в само приложение и логику обмена данными. Инженеры провели реверс-анализ развёрнутых компонентов и восстановили:
- модульную структуру решения;
- связи внутри клиент-серверной архитектуры;
- конфигурацию обмена данными и точек интеграции.
На выходе заказчик получил полную архитектурную схему, реестр модулей и зависимостей, а главное — перечень конкретных мест для будущих исправлений.
Этап 2. Получение кода и пересборка проекта. Специалисты восстановили сборку и все зависимости — библиотеки, конфигурации, версии, — чтобы проект собирался стабильно и предсказуемо. Подготовили основу для дальнейшего развития: структуру репозитория, правила сборки и инструкции.
Сложностью стало проприетарное зарубежное ПО, которое использовалось для части интерфейсов. На первом шаге команда отключила эти элементы, настроив сборку таким образом, чтобы система компилировалась и работала даже при их наличии в кодовой базе интерфейса.
Этап 3. Стабилизация: исправление ошибок и управляемые релизы. Как только появилась пересобираемая версия системы, команда перешла к самой ценной для бизнеса фазе — возможности вносить изменения в исходный код и развёртывать новые версии на продуктивной среде. Для проверки подхода взяли в работу доработку по одному из приложений: изменение успешно разработали и внедрили в промышленную версию системы.
Этап 4. Передача в поддержку и первый год эксплуатации. На финальном этапе сформировали схему обращений, подготовили инструкции и перешли к непосредственной поддержке приложения. За первый год команда не только закрывала инциденты, но и исправляла многолетние дефекты, портившие пользовательский опыт. К примеру, в одном из окон была обнаружена и устранена реверсивная логика работы чек-боксов, годами усложнявшая работу операторов. Параллельно по запросам заказчика вносились улучшения, повышающие качество решения.
Технологический стек
- Платформа: .NET 4
- Пользовательский интерфейс: Windows Forms, Syncfusion UI Component Suite
- Серверная инфраструктура: Windows OS, Microsoft SQL Server
Итоги проекта: ноль зависимости и снижение рисков простоя
Проект позволил перевести критичную производственную систему из режима «чёрного ящика» в полностью управляемое состояние со следующими бизнес-эффектами:
- Исходный код и структура проекта восстановлены в документированном, сопровождаемом виде.
- Восстановлена возможность сборки с изменениями в коде и подготовки релизов без участия вендора.
- Подготовлена документация по архитектуре, модулям и зависимостям.
- Зависимость от иностранного вендора в вопросах текущей эксплуатации и модернизации снижена до 0 %.
- Сняты все барьеры для исправления ошибок и развития системы.
- Риски простоев производства, связанные с ПО, сведены к минимуму.