Reporter — корпоративный сервис, который позволяет в несколько кликов отследить эффективность исполнителей на проектах и сверить план/факт по выработке
С начала основания студии и до 2022 года мы работали в Trello. Этот таск-менеджер нравился тем, что он простой и удобный, а единственным его минусом для нас являлось отсутствие тайм-трекинга.
Так как мы занимаемся проектной разработкой, нам важно отслеживать показатели в часах, потому что клиент оплачивает фактическое время. Поэтому после того, как Trello стал недоступен в России, мы перешли в Kaiten, в котором есть встроенный учет времени.
Менеджеры создают задачи, а исполнители запускают таймер и фиксируют в комментариях, что они сделали. Так формируется отчет о фактически затраченном времени.
Но нам не хватало визуализации. Приходилось выгружать отчеты в Excel и вручную обрабатывать данные. Поэтому решили создать собственную систему учета, которая бы решила эти проблемы.
Доработать модуль учета времени, создав плагин на открытом API Kaiten для визуализации и централизованного хранения отчетов.
Создали собственную систему учета, повысив тем самым эффективность команды на 30% за счет прозрачности в работе и более четкой постановки задач.
Вот что умеет Reporter:
Поскольку проект был предназначен для внутреннего пользования, мы не составляли видение, не анализировали конкурентов и не прорабатывали структуру, как делаем на клиентских проектах. Вместо этого сосредоточились на проблемах, с которыми сталкивается руководство и описали то, как система должна их решать.
Разработка велась итеративно, функционал разрабатывался по мере необходимости.
В первую версию системы вошли:
Генератор отчетов
Учет времени
Статистика сотрудников
Статистика проектов
Дизайн первых версий Reporter был суровым «программистским». Позже мы подключили на проект дизайнера, чтобы создать интуитивно понятный интерфейс, который бы не отвлекал от работы с данными.
Так выглядит меню
Боковой сайдбар с иконками, темная тема, акцентные желтые кнопки — все эти элементы мы добавили, чтобы пользователи могли легко считывать информацию и анализировать данные.
Продумали компоненты
Шрифт выбрали читабельный, но в то же время компактный.
За основу брали прототип, который отрисовали еще до дизайна. Он помог визуально оценить структуру и удобство интерфейса. В итоге дизайн получился таким, каким мы и его задумывали — минималистичным и комфортным для взаимодействия с отчетами, таблицами и статистикой.
Отрисовали ошибку 404
Reporter построен на мощном фундаменте Laravel + React. Функционал хоть и кажется на первый взгляд простым, на деле он содержит большой объем данных, сложные формулы и математические расчеты.
Так как наша система учета интегрирована с Kaiten, это наложило определенные сложности.
В API Kaiten нельзя получить карточки по определенному пространству вместе с логами. Приходилось выполнять запрос на получение логов за нужный нам период, а уже потом выполнять запрос на получение карточек за тот же период.
То есть на одно пространство выполнялось 2 запроса. Из-за этого обновление данных даже за 3 месяца по всем проектам занимало по 15-30 минут. Чтобы решить проблему, мы создали дополнительный функционал — историю запросов.
Так выглядит страница
После этого у нас появилась возможность формировать другие отчеты, пока подгружаются первые. А через 15-30 минут мы можем перейти в историю запросов и увидеть нужные нам отчеты.
Иногда при выполнении запроса Kaiten попросту отмирал и Reporter не мог получить нужные данные. Эту проблему мы решили с помощью оптимизации, выгрузив данные в собственную базу.
Если менеджер формирует отчет, который не входит в загруженный диапазон, то Reporter автоматически поставит задачу на обновление, подгрузит данные и затем их сохранит. После этого менеджер сможет посмотреть отчет.
Авторизуется пользователь через почту. По ней мы определяем, с какой ролью зашел сотрудник, у каждого разные права доступа.
В новой версии у нас появился дополнительный функционал:
Оценка рентабельности проектов
Оценка маржинальности проектов
Эти показатели особенно важны для нас, как для веб-студии, поскольку позволяют оценить эффективность и прибыльность проектов. Для их подсчета мы реализовали логику дополнительных страниц:
Историю оплат по проекту
Расходную часть (стоимость часа работы каждого сотрудника)
Также важно было отследить, насколько эффективен сотрудник в целом, а не только по проекту. Сделать прозрачным факт переработок и не допустить невыработку. Поэтому мы разработали еще одну страницу:
Эффективность сотрудников в разрезе любого периода
Нужно понимать, что делается это не ради тотального контроля. Мы работаем по Time&Material. По этой модели оплаты клиент платит за часы, которые были затрачены на разработку, а потому для нас и для него важна прозрачность всех процессов.
Еще у нас есть мобильное приложение, которое мы разработали с помощью модулей. Ими мы ускорили разработку за счет выведения определенных кусков кода в отдельную независимую библиотеку, которую встроили в приложение с минимальной конфигурацией и кастомизацией.
Что такое модульное приложение? Это подход, который позволяет не тратить время на разработку того, что повторяется из приложения в приложение: регистрацию, авторизацию, чаты, профиль, контакты и другой функционал.
Модульная разработка сокращает время и бюджет на разработку в 2 раза, а за счет чего это происходит, вы можете узнать здесь.
Спустя год после разработки эффективность команд по проектам выросла на 30% за счет того, что постановка и контроль задач стала четче. Теперь мы знаем, сколько ресурсов уходит на каждую задачу и ставим реалистичные сроки для новых проектов, не боясь провалов.
В планах сделать из Reporter полноценный корпоративный портал, чтобы объединить данные о сотрудниках в одной системе.
Если хотите так же, напишите нам и мы посчитаем, сколько будет стоить автоматизировать процессы в вашей компании.
Катя К. — аналитика
Костя С. — backend
Даша Т. — frontend
Евгений А. — дизайн
Костя С. — тестирование