На рубеже 30 человек в бизнес-процессах компании было задействовано несколько не интегрированных между собой учетных систем. Исходя из данных этих систем, многие расчеты (например, зарплат, показателей компании) делались вручную, что часто приводило к ошибкам, к тому же было трудозатратным и долгим из-за большого количества данных в учетных системах. Это становилась проблемой, т. к. принимать управленческие решения приходилось уже на основе не самых актуальных данных.
ЗАДАЧА
Разработать сервис, который интегрирует между собой все учетные системы компании, предоставить интерфейс для сотрудников и помочь автоматизировать рутинные бизнес-процессы.
Основные требования, которые были сформулированы на старте разработки:
ТЕХНОЛОГИИ
Архитектурное решение
В процессе разработки и добавления в продукт новых интеграций архитектура неоднократно пересматривалась. Текущее архитектурное решение — Single Page Application, где бэкенд представляет собой несколько микросервисов и реализует всю бизнес-логику и интеграции со сторонними системами.
Фронтенд
Для его реализации использовали фреймворк Svelte, одно из ключевых преимуществ которого — маленький размер бандла и высокая отзывчивость интерфейса. Так как на момент реализации фреймворк еще не успел обрасти экосистемой, при работе над многими задачами мы были первопроходцами и не могли использовать готовые решения для ряда типовых задач (как это было бы в случае, например, с React). Например, собственная реализация была написана для канбан-доски.
Бэкенд
Реализован на PHP-фреймворке Laravel 7 (актуальная версия на момент старта разработки). В качестве административной панели используется пакет Backpack, который позволил существенно увеличить скорость разработки в силу того, что имеет в себе большое количество готового функционала (например, ролевую модель).
В качестве брокера очередей используется PostgreSQL, где обрабатывается 4 независимые очереди под разные задачи. В качестве базы данных используется PostgreSQL.
Весь важный для бизнеса функционал покрыт автотестами на PHPUnit.
Дизайн
Для быстрой реализации интерфейсов используется готовый Material Design UI-кит для фреймворка Svelte. Все собранные на основе UI-кита прототипы передаются на разработку, что позволяет сосредоточиться на технической составляющей проекта, минимизируя затраты ресурсов на дизайн.
ФУНКЦИОНАЛ
Метрики производства
Специально написанные алгоритмы позволяют рассчитывать себестоимость часа разработки и позволяют детально видеть, сколько часов было отгружено в разрезе дня, недели и месяца.
В системе можно оперативно считать и визуализировать в виде графиков и таблиц основные метрики производства:
Utilization Rate — отношение отработанных часов к доступным за определенную отметку времени;
Realization Rate — отношение коммерческих часов к запланированным на определенный промежуток;
Данные можно получить в рамках текущего месяца, года или произвольного периода. Также можно видеть детальную информацию в разрезе определенного проекта или этапа.
Проекты
Каждый проект разбивается на этапы, где есть данные о его статусе, формате, бюджетах, сроках, сделанных и планируемых отгрузках часов разработки. Отчетность можно формировать как по каждому отдельному этапу, так и в целом по проекту.
В разрезе каждого проекта и этапа осуществляется детальный расчет рентабельности: исходя из выручки, стоимости производства, постоянных издержек компании.
Бухгалтерия и финансы
Сервис YO! интегрирован с системой управленческого учета ПланФакт в части взаиморасчетов с клиентами и сотрудниками. С ПланФактом синхронизируется информация о текущих проектах, выставленных счетах, проведенных реализациях, суммах поступления и сроках оплаты. Благодаря этому корректно строятся P&L по кассовому методу и методу начислений.
Система автоматизирует работу с первичными документами: все счета и акты привязаны к конкретным проектам, этапам и клиентам, что позволяет отслеживать их статусы и синхронизировать между учетными системами все их обновления.
При изменении статусов первичных документов ответственному за соответствующий проект приходит уведомление.
HR-портал
Сервис позволяет структурировать информацию по сотрудникам: должность, даты приема и увольнения, данные о зарплате и ее изменениях.
Сервис позволяет фиксировать отсутствия сотрудников (больничные/отпуска) и не забывать о запланированных отпусках. Данные об отсутствиях учитываются при расчете показателей эффективности производства.
Полностью автоматизировано согласование зарплатных реестров. При формировании нового реестра сотрудник получает уведомление и может видеть детали расчета, переписываться с бухгалтерией и подтверждать реестры в интерфейсе платформы.
Реализована работа с внутренней системой лояльности. В рамках компании существует внутренняя валюта — «коины» — и платформа автоматизирует работу с ней со стороны отдела HR и со стороны сотрудников: текущий баланс, история начислений, каталог и заявки на расходование.
Личный кабинет сотрудника
Доступ к различным разделам сервиса предоставляется исходя из роли пользователя, при этом ряд разделов доступен всем пользователям. Каждому сотруднику доступна информация об отсутствиях, доступном балансе внутренней валюты, своих зарплатных реестрах и данные о рабочем времени.
В специальном разделе есть информация о товарах, которые можно получить за корпоративную валюту.
Интеграции
Сервис интегрирован со следующими системами:
РЕЗУЛЬТАТЫ
Итоги внедрения YO!
Теперь в компании есть единый инструмент, который предоставляет всегда актуальные данные от деятельности компании: как о финансах, так и об показателях производства.
Интеграция систем между собой помогла оперативно видеть отчеты с текущими показателями, а увеличение количества сотрудников и объема данных не приводит к увеличению затрат на администрирование работы с этими отчетами. Скорость сбора данных и построения отчетов позволяет принимать управленческие решения, основанные на актуальных данных.
Срок составления и согласования с сотрудниками зарплатных реестров сократился до одного рабочего дня, а также снизилось количество ошибок в расчетах.
Благодаря детальной аналитике рентабельности по проектам своевременно выявляются убыточные проекты.
Мнение сотрудников
Легко сформировать первичные документы по клиентам компании, а также оперативно получить информацию о текущих проектах и выставленных счетах, суммах поступления и сроках оплаты.Можно сразу загрузить печатные формы документов на фирменном бланке организации с логотипом компании. Удобно формировать отчеты по рабочему времени, отсутствиям и выплатам. Также плюс в том, что все суммы можно отредактировать в системе, если, например, предполагаются отпуска, больничные и т. д.
Елена, Главный бухгалтер Spectr
Функционал позволяет мне видеть всегда актуальные данные о показателях Realization Rate и Utilization Rate в системе, и в случае обнаружения проблем локализовывать их до конкретного проекта или человека. Также очень удобно рассчитывать премии для функциональных руководителей, основанные на объемах отгрузок.
Олег Казаков, технический директор Spectr