Миграция на российское ПО для компании из медицинской сферы
В числе трендов, определяющих развитие IT-отрасли в этом году — активное импортозамещение, особенно в направлении искусственного интеллекта. Отсутствие техподдержки, недоступность обновлений, лицензионные ограничения и аннулирование лицензий — риски, с которым столкнулись предприятия из-за ухода зарубежных ИТ-компаний.
За решением одной из таких проблем — заменой иностранного софта на отечественный — в SimbirSoft обратился клиент из сферы обслуживания современных медицинских систем.
Клиент
Компания из сферы обслуживания современных медицинских систем.
Задача
Прежний поставщик ПО сократил объем технической поддержки и ограничил дальнейшее продление лицензий. Поэтому команда приняла решение создать аналог ПО, отвечающий тем же требованиям, а также расширить функционал по запросу заказчика.
Решение
Часто при запуске программных комплексов исполнитель замыкает на себе и разработку самого ПО, и сборку оборудования. В SimbirSoft заказчик может не заключать договор на весь комплекс услуг, а выбрать только часть: например, создание оборудования оставить за собой, а разработку ПО делегировать IT-компании.
Наталья, и.о. руководителя отдела QA в компании SimbirSoft: «Современные IT-компании постепенно отказываются от стратегии импортозамещения любой ценой и формируют новый тренд — осознанное импортозамещение. Благодаря широкой экспертизе и собственному штату специалистов компания SimbirSoft поддерживает такую стратегию и помогает клиентам выбрать либо полноценную комплексную разработку ПО, либо взять на себя определенную, часть работ, например, аудит процессов, или выделить команды с определённым стеком технологий под проект».
«Дорожная» карта проекта
Собрали команду профильных специалистов, обсудили этапы и дедлайны каждого трека. Команда отталкивалась от технического задания компании-заказчика, каждый из этапов проходил в тесном взаимодействии с ним: обсуждали функциональность, проводили тестирование и формировали документацию пользователя.
Перед стартом согласовали удобный WorkFlow. Подобрали стратегию ветвления в git для минимизации конфликтов и быстрой поставки релизов. Изучили зарубежный аналог: клиент предоставил тестовые данные и свои рекомендации по работе с программой.
Требования по операционной системе — ОС Windows, тип — настольное приложение. На старте поняли, что необходимо смоделировать гибкую архитектуру ПО с независимой бизнес-логикой, инфраструктурным слоем и слоем доступа к данным.
Такой подход позволит:
а) тестировать отдельные слои независимо друг от друга;
б) в случае необходимости легко перевести архитектуру с одного типа приложения на другой.
Интеграция ПО с оборудованием — новый вызов. Мы исследовали протокол и провели тестовую эксплуатацию системы: удаленно подключились к стендам заказчика, чтобы «обкатать» элементарные сценарии взаимодействия ПО со всеми устройствами.
Детали проекта
Тестирование в реальных условиях выявило ряд ошибок, багов в ПО на раннем этапе. Это позволило быстро и безболезненно исправить недочеты. К тому же у заказчика уже был реальный опыт работы с продуктом, на который опиралась команда при улучшении юзабилити и интерфейса. Опции докрутили с учетом всех требований по UI/UX, также добавили новые фичи для удобства работы с ПО.
Обязательная часть коммерческой разработки — контроль совместимости лицензий: в проекте проведена проверка совместимости лицензий всех программных библиотек с другими компонентами приложения. Предусмотрели систему импорта и экспорта на разных этапах основных сценариев и ввели дополнительную опцию. При использовании приложения система сохраняла все произведенные шаги для каждого нового запуска.
Результат
Разработка нового отечественного ПО закрыла вопрос в части продления зарубежной лицензии, обновления, доработки, развития и поддержки продукта. Заказчик избежал больших финансовых вложений, а заодно избежал технических проблем. Команда разработки смогла на порядок улучшить точность измерений, провела валидацию и верификацию ПО.
Трудности
Одна из самых больших проблем, с которой столкнулась команда — разработка математического ядра всей системы. Нужны были точные расчеты и формулы: мы исследовали численные схемы, экспериментировали с параметрами моделей и реализовывали соответствующие алгоритмы. Метод Бортфилда был ключевым для аналитического описания кривых Брэгга.
Дополнительные опции:
-
для быстрого ранжирования и развертывания системы дописали требования к установщику программы на машины клиента;
-
с помощью генерации ключей помогли обеспечить безопасность при установке систем.
Важно, что и установщик и генератор ключей являются отдельными программами. Поэтому команда фактически разработала три продукта вместо одного.

Можно сказать, что команда получила хороший опыт обратного инжиниринга: провела ряд улучшений системы и предложила заказчику достойный аналог ПО. Идей по доработке у разработчиков было много: расширять функционал и улучшать продукт можно бесконечно. Но у каждого проекта есть свои рамки по срокам. Поэтому после положительной обратной связи мы перешли на финальную стадию.
Решили сдавать проект по приемочному тестированию. Проектом управляли по методологии Scrum: постоянно проводили обзор спринта, получали обратную связь по продукту и передавали заказчику новый инкремент для тестирования на реальном оборудовании. Готовое ПО заказчик одобрил и мы успешно закрыли разработку.
Технологии
- WPF
- C#
- EF Core
- SQLite
- CSV
- TCP/IP
- Git
- Serilog
- OxyPlot
- Jira
- AIO Tests