Как мы автоматизировали работу 1000+ сотрудников соцслужбы в Нидерландах: разработка ERP-системы
Рассказываем, как мы в Secreate разработали ERP-систему, которая доставляет социальных работников до клиентов короткими маршрутами и планирует расписание. Чем меньше времени у соцработников уходит на операционку, тем дольше живут их клиенты, потому что вовремя получают качественный уход.
В марте 2020 к нам обратилась нидерландская социальная служба, которая оказывает уход лежачим, тяжелобольным и пожилым людям на дому и в стационаре клиник. Проект под NDA, поэтому название сказать не можем.
С чем пришёл заказчик
На момент обращения у клиента остро стояла задача автоматизировать работу сотрудников. Все данные хранились в Excel-таблицах, это порождало хаос и неразбериху. Поиск данных отнимал вечность у административного персонала. Надбавки к зарплате и прочие коэффициенты приходилось рассчитывать по формулам вручную. Календарём смен в Excel было неудобно пользоваться — постоянно возникали ошибки, чьи-то смены стирались, чьи-то дублировались. Любой человек с доступом к редактированию мог по невнимательности разрушить весь процесс.
Что сделали мы
Мы разработали ERP-систему с корпоративным доступом для разных ролей: администратора, сотрудников и менеджеров. ERP-система — это софт для оптимизации ресурсов компании, управления активами и финансового менеджмента.
В сумме наше решение экономит компании до 1500 человеко-часов в год.
Сайт позволяет планировать смены и компенсировать сотрудникам оплату на дорогу, распределять пациентов между персоналом. В зависимости от длины маршрута и времени дежурств, сервис автоматически рассчитывает коэффициенты на заработную плату для соцработников.
Для нашей команды это был не первый подобный проект. Мы уже разрабатывали ERP и CRM-системы, и у нас уже накопились лучшие практики в создании таких сервисов. Мы умеем работать со сложной архитектурой и множеством интеграций.
Начинка портала: какую функциональность мы разработали
Внутри сервиса мы реализовали:
- личный кабинет;
- календарь смен;
- интеграцию с базой данных клиентов;
- трекер времени;
- интеграцию с сервисом бухгалтерского учёта;
- инструмент для планирования отпусков;
- возможности для кастомизаций.
Продумали возможности для масштабирования в архитектуре проекта. Так клиент может подключить дополнительные интеграции.
Одним из главных запросов заказчика была реализация RBAC — управления доступом на основе разных ролей внутри сервиса. Контент ЛК должен был адаптироваться под того, кто авторизовался: сотрудника, менеджера или администратора. Мы продумали решение, которое позволяет админу самостоятельно настраивать доступы другим участникам.
Также мы сделали календарь смен, где синхронизируется расписание всех сотрудников. Добавили возможность оставлять комментарии и отвечать на них. Так менеджер может свободно бронировать время сотрудников и не переспрашивать несколько раз.
Внедрили список сотрудников и клиентов со всеми контактными данными. Всё можно быстро найти через поиск.
Есть отдельная функция для планирования отпусков и трекер времени.
Через приложение менеджеры и сотрудники планируют, кто, к кому и когда пойдёт. В зависимости от времени, потраченного на дорогу, сотрудникам автоматически рассчитывается бонус к зарплате. За то, в какие часы они дежурят, тоже добавляется коэффициент.
Как шёл проект
1. Проектирование, прототипирование и техзадание
Их подход к дизайну такой же, как и у нас — MDH не просто молча делают по готовому техзаданию, а анализируют запрос клиента и помогают добиваться поставленных бизнес-целей. Словом, мы могли им довериться.
Мы начали проектирование с формирования структуры и требований к сервису. Это помогает расставить приоритеты в работе, чтобы потом не приходилось вносить изменения в уже работающий продукт. Если правильно сформулировать все требования к будущему сервису на старте — сокращается время разработки и клиент не теряет деньги.
Первым делом сформировали User Stories — это краткая формулировка, которая описывает, что система должна делать для пользователя. «Я как такой-то пользователь в таком-то разделе могу сделать следующие действия». Описывая механики взаимодействия разных типов пользователей с сервисом, команда продумала пользовательский сценарий.
На этом же этапе зафиксировали функциональные требования и критерии приёмки, чтобы во время разработки все участники проекта понимали, как работают фичи. Так формируется единый документ и для разработчиков, и для тестировщиков.
User Stories группировали по сложности технической реализации и приоритетов бизнеса.
На основе этих данных спланировали дорожную карту проекта (roadmap) — последовательность действий с информацией, какая команда в каком спринте и какой объём работы будет делать. Карта также помогает держать заказчика в курсе что происходит с его продуктом — на какой он стадии разработки.
Далее команда отрисовала прототипы интерфейса — визуализацию пользовательских сценариев. Это помогает увидеть юзерфлоу наглядно, чтобы команде заказчика и самому клиенту не приходилось читать тонны документации.
Работали по методологии waterfall — это было требованием клиента на старте проекта. Не выделяли MVP, а последовательно отрисовывали и разрабатывали все макеты.
В прототипах нет дизайна, анимации и ярких картинок. Главная цель прототипа — визуализировать пользовательский путь, верхнеуровнево взглянуть на продукт, его структуру и идею, а также заложить основу для будущего дизайна.
Кликабельный прототип помогает команде заказчика самостоятельно пройти ключевые пользовательские сценарии и оценить юзабилити. С прототипом проще определить требования к продукту и убедиться, что они будут реализованы в полном объёме.
После согласования прототипов и всех сценариев уже составили техническое задание. Это описание каждого элемента прототипа — откуда он появляется и что происходит после его нажатия. Также в техзадании описали структуру проекта, интеграции, валидации и принцип работы с оптимизациями и так далее.
2. Разработка
Как правило, разработка ERP-систем связана со многими сложностями:
— необходимо интегрировать бухгалтерские программы, системы управления производством, системы управления закупками и продажи;
— настроить и адаптировать систему под специфику бизнес-процессов, продуктов и услуг, а также сделать так, чтобы она соответствовала законодательству;
— обеспечить безопасность данных, так как внутри ERP-систем тонна конфиденциальной информации.
На этом проекте мы по просьбе клиента сфокусировались именно на настройке и адаптации системы под бизнес-процессы.
Бэкенд мы разработали на Laravel, фронтенд — на Vue.js. Как протокол общения фронтенда с бэкендом использовали GraphQL. В качестве базы данных внедрили PostgreSQL. Сервис кэширования — Redis. Проект реализовали за один год.
Над сервисом работали: менеджер проектов, два дизайнера, два разработчика, тестировщик, аналитик.
Итоги
Сейчас мы завершили разработку всех фичей, необходимых клиенту, так что проект полностью завершён.
В итоге смогли:
— в два раза повысить скорость составления менеджерами соцслужбы расписания сотрудников;
— в два раза ускорить ведение бухгалтерии. Система автоматически рассчитывает коэффициенты, положенные для прибавки к зарплате. Также сотрудники в сервисе могут подать заявку на отпуск — администратор по отработанным часам проверит, положен ли отдых и одобрит его;
— полностью устранить ошибки в сменах и дубли в записях. Автоматизация процесса помогает отслеживать статусы смен сотрудников, а также позволяет узнать сколько часов они отработали, какую дистанцию прошли, сколько пациентов обслужили.
Наши сотрудники также поделились впечатлениями о реализованном решении.
Не забудьте поставить +1, если вам понравился наш проект.
А если вы ищете надёжного партнёра для разработки ERP-системы или любого другого веб-сервиса, пишите нам в Телеграм или на почту hello@secreate.io — расскажем больше о наших возможностях и преимуществах.
Жаль, что кейсы на вц читают плохо, если это не продвижение диванов на порнхабе.
Таких клиентов у нас ещё не было))) Но кейс с удовольствием почитал бы. Есть ссылка?
Пишите в комментариях, о каких ИТ-проектах ещё рассказать в следующих статьях)
У многих стоит выбор между тем чтобы настроить готовое решение и сделать свое. Этот кейс показывает что свое – это сложно, но можно и даже нужно)).
Да, своя система всегда более гибкая. Она даёт возможность адаптироваться под конкретные потребности бизнеса. С ней можно избежать ограничений, которые зачастую есть у готовых решений.
Интересный проект. Спасибо.