Разработка EAM-системы для отслеживания состояния оборудования на заводах
Компания, занимающаяся поставками запчастей для промышленного оборудования, обратилась к нам с задачей: разработать программный комплекс для мониторинга надёжности запчастей на заводах.
Ценность создаваемого решения:
• для компании клиента — своевременно получать информацию об интенсивности эксплуатации оборудования его заказчиками, чтобы точнее планировать поставки;
• для заказчиков компании (заводов) — точно прогнозировать даты обслуживания оборудования, сокращать простои и избегать затоваривания складов.
Предстояла масштабная непрерывная работа. Помимо разработки веб- и мобильного приложения под ключ, мы обеспечили клиенту всестороннюю поддержку на каждом этапе: помогали с проработкой требований и техническими коммуникациями при внедрении ПО. Прорабатывали вопросы безопасности и оказывали консалтинговые услуги.
О том, с какими вызовами столкнулась наша команда и почему проект стал одним из самых увлекательных для нас, рассказываем в кейсе.
Клиент
Крупный производитель и поставщик запчастей для промышленного оборудования по всей России. Название компании под NDA.
Задачи
Разработать систему управления физическими активами (EAM, Enterprise Asset Management), которая позволит:
- Отслеживать состояние запчастей, анализировать их надёжность и точно измерять сроки службы.
- Прогнозировать объёмы и номенклатуру заказа запчастей.
- Предсказывать, какие запчасти потребуют замены в ближайшее время.
Разработать мобильное приложение, которое позволит заказчикам компании клиента:
- Сканировать штрихкоды и вести учет запчастей «в полях».
- Синхронизироваться с центральным сервером компании.
Обеспечить удобное взаимодействие пользователей как внутри компании, так и с её клиентами (заводами). Это достигается за счёт:
- Развёртывания серверов на каждом заводе для взаимодействия операторов завода (создание заявок на производство запчастей, списание и т. д.).
- Синхронизации серверов заводов с центральным сервером через Интернет или файлы.
Вызовы проекта
Требования к ПО менялись и дополнялись в ходе проведения работ
В планировании и выполнении работ требования дополнялись регулярно. С нашей стороны это требовало гибкого подхода к разработке: когда все поступающие задачи приоритезируем, реализуем и демонстрируем клиенту. Итеративно уточняем требования. Затем сразу получаем обратную связь и дорабатываем функционал ПО.
Забегая вперёд, именно этот подход помог нам с клиентом добиться впечатляющих результатов уже при завершении первого этапа проекта.
Мы применяем Agile в большинстве проектов по разработке программного обеспечения, и проект клиента — яркий пример, как это проявляется на практике: когда изначально требования к продукту фиксированы верхнеуровнево, а в ходе работы формируется более точное видение.
Доступ к оборудованию, в связке с которым должно работать новое ПО, получили не сразу
В проекте была заложена интеграция с различными лазерными маркираторами, однако некоторые из них находятся у конечных заказчиков нашего клиента. Доступ к этим маркираторам получить сложно.
ПО предполагает многоуровневый процесс тестирования
На первом же этапе проекта мы поняли, что тестирование связки мобильное приложение + десктопное ПО + оборудование, ещё и предполагающее несколько ролей пользователей, потребует внушительных ресурсов. Поэтому мы решили усилить команду тестирования. А часть тест-кейсов — автоматизировать для сокращения времени и трудёмкости регрессионного тестирования.
Наши решения
1. Разработали систему EAM: веб- и мобильное приложение
Мы создали с нуля систему, которая обеспечивает удобное взаимодействие пользователей как внутри компании, так и между компанией и её заказчиками (заводами). На каждом заводе развернут свой сервер, с которым взаимодействуют операторы.
Взаимодействие внутри системы выглядит так:
- Веб-приложение включает в себя функционал, позволяющий измерять сроки ходимости различных запчастей, прогнозировать объёмы и номенклатуру заказа запчастей, предсказывать, какие запчасти потребуют замены в ближайшее время.
- Мобильное приложение позволяет сканировать штрихкоды и вести учет запчастей «в полях». Синхронизируется с центральным сервером компании нашего клиента.
Продемонстрируем, как это работает для разных пользователей.
Приложение рассчитано на три роли:
- администратор со стороны компании клиента,
- оператор со стороны завода (заказчика компании клиента),
- механик.
Для каждой из ролей разработан свой функционал.
Администратор со стороны компании нашего клиента работает через веб-версию приложения. Он:
- создаёт и заполняет справочники оборудования,
- настраивает карту оборудования,
- заводит новых пользователей со стороны заказчиков компании,
- производит обмен штрих-кодов между изделиями (необходимо, если на стороне заказчика оператором была допущена ошибка при заполнении штрих-кода).
Так выглядит заполненная карта оборудования по конкретной запчасти:
Оператор со стороны заказчика компании нашего клиента работает и через веб-, и через мобильную версию приложения:
- получает заявки от механиков, когда им не хватает запчастей,
- создаёт заявки на производство запчастей,
- ведет учёт изделий.
Также в веб-версии можно просматривать отчётность, в которой предусмотрено множество параметров для отслеживания надёжности запчастей:
Механик использует мобильное приложение. Он устанавливает и изымает запчасти, создаёт заявки на их производство.
Для установки запчастей сканирует промаркированное изделие или вводит код вручную.
Далее открывается карточка изделия, и механик подтверждает установку.
Для снятия детали он сканирует установленное изделие или вводит код вручную:
Механик может создать заявку на оператора, чтобы получить от него новую запчасть:
Внутри заявки отображается список деталей: механик формирует его, а оператор — получает (тоже через мобильное приложение).
2. Провели комплексное тестирование
Чтобы убедиться в корректности работы системы, провели ряд ручных тестов, а также написали уникальные автотесты, проверив все возможные сценарии использования ПО.
На этапах создания и отладки решения самой непростой задачей стала синхронизация данных.
На входе — 20+ заводов, тысячи единиц техники, локальные и центральный сервера. Обмен данными между всем вышеперечисленным идёт постоянно, и ошибки в ходе процесса лишили бы продукт смысла. Кроме того, важна скорость обмена данными.
Мы спроектировали оптимальную для продукта архитектуру, провели сотни тестов, проиграли все возможные сценарии поведения пользователя и убедились в соответствии ПО требованиям: система работает бесперебойно.
3. Сформировали подход, позволяющий ускорить процесс работы с оборудованием на стороне заказчиков компании клиента
Мы выбрали стратегию, когда проект отлаживался на одном типе маркиратора, а адаптацию к другим типам выполняем на этапе пресейла у конкретного заказчика.
Состав работ
Основные услуги, которые мы предоставили клиенту:
- Проектирование архитектуры: разработали структуру системы, которая обеспечивает надёжную и эффективную работу.
- Разработка серверной и клиентской части (frontend и backend) программного обеспечения: создали решение, которое работает как на серверах, так и на устройствах заказчиков компании-клиента.
- Тестирование: в него вошли ручные и автотесты, написанные под клиента.
- Интеграция с 1С: обеспечили совместимость системы с существующими решениями клиента.
- Мобильная разработка: создали мобильное приложение для удобного использования в полевых условиях.
- UI/UX дизайн: разработали интуитивно понятный и удобный интерфейса для всей системы.
Результаты
На сегодня готова первая версия продукта, адаптированная под десктопные и мобильные устройства. Продукт проходит внедрение у заказчиков со стороны клиента, мы принимаем их обратную связь и формируем бэклог работ на новые версии.