Время – деньги!

О задаче

Обычно мы рассказываем, как принесли пользу клиенту. Но сегодня у нас будет особый разговор, ведь заказчиком биллинговой системы для ИТ-компании была… ИНТЕРВОЛГА! 

Когда мы поняли, что клиенты готовы к Agile-методологии и подходу Time & Material (почасовая оплата), оказалось, что управление такими проектами усложнилось, а отчетность увеличилась.

Один из принципов нашей работы с заказчиком — Говорим правду! В случае с Time & Material это означает, что все должно быть прозрачно — и “Time”, и “Material”.

Среди всех систем управления проектами мы давно остановили свой выбор на JetBrains YouTrack, поэтому вопрос “сколько часов затрачено на задачу” у нас был решен давно. Проблемы были именно с “сколько это стоит”.

Казалось бы, решение очевидное:

ОБЩЕЕ ВРЕМЯ х СТАВКА ЧАСА = ОБЩАЯ СТОИМОСТЬ

Не тут-то было. В разных проектах и для разных отделов — разная ставка часа. Есть “бесплатные” задачи (мы всегда исправляем свои ошибки бесплатно) и есть задачи, требующие особой компетенции. Одним умножением тут точно не обойтись. Наши руководители проектов, как настоящие чернокнижники Excel, использовали ВПР’ы и сводные таблицы. Создание одного такого отчета занимало от 30 до 50 минут. А клиентов у руководителя проекта много.

Так родилась задача “построить процесс биллинга в компании”.

Поиск решения

Первое и самое очевидное решение — добавить ставки часа в YouTrack. Все остальные данные там уже были.

БД.png

Будь на его месте какая-то другая система, так бы мы и поступили. Но YouTrack закрытый, плагинами много не доработаешь. Отказываться от YouTrack мы не могли (он интегрирован с несколькими системами заказчиков), поэтому решили сделать отдельную систему, интегрированную с YouTrack. Благо REST API это позволяло.

Сегодня мы решали бы подобную задачу в 1С, но тогда такой компетенции у ИНТЕРВОЛГИ не было. Зато была компетенция по веб-разработке и мы решили сделать веб-приложение на хорошо зарекомендовавшем себя и популярном фреймворке Laravel.

Почему не «1С-Битрикс: Управление сайтом»? 

Во-первых, мы понимали, что количество данных в биллинговой системе будет огромным. И нагрузка, особенно в конце отчетного периода будет серьезной. Сейчас в компании 130 штатных сотрудников, и каждый день они “трекают” по 8 часов в YouTrack. И будет только больше. А это значит, что готовые компоненты и механизмы Битрикса все равно нужно будет рано или поздно переписать. Мы решили сразу сделать все свое.

Во-вторых, БУС не единственная наша платформа, мы работаем и с другими фреймворками (Laravel, OpenCart, Symfony и др.) и развиваем эти компетенции, в том числе, и такими “внутренними” проектами.

В-третьих, это была личная инициатива команды :)

Проектирование и разработка

Мы назвали нашу биллинговую систему “Проект 42”, как ответ на главный вопрос жизни, вселенной и всего такого. 

Нечасто главным бенефициаром проекта на все 100% становится его же руководитель. И казалось бы, руководителю “Проекта 42” не нужно выявлять требования и с кем-то общаться — чистое творчество, все потребности он и так знает, можно написать ТЗ сразу “из головы”.

Но у каждого проекта и менеджера в компании, все же были немного свои ожидания от отчетов, поэтому проводить интервью все же пришлось. 

Так, при проектировании мы поняли, что данных только из YouTrack нам недостаточно. Нужно было понимание внутренней структуры компании — кто чей руководитель, кто из разработчиков в какую команду входит. Даже не столько из соображений безопасности, сколько из необходимости сократить количество информации в системе. А ее там много.

Конечно, мы не стали дублировать структуру компании в биллинговой системе. Все данные уже были в нашем корпоративном Битрикс24, у которого тоже все хорошо с REST API. Так в связке Laravel+YouTrack появилось новое звено. Нужно было только сопоставить сотрудника из YouTrack c сотрудником из Битрикс24, но у обеих записей был одинаковый E-mail.

Часто слабой стороной Laravel называют отсутствие административного раздела. Во-первых, пусть и не из коробки, он все-таки есть. Во-вторых -- тут он и в самом деле был не нужен. У пользователя “Проекта 42” 2 основных сценария: задать ставку часа и получить отчет по проекту за период. А управление ставками мы органично встроили в “публичную” часть сайта.

Но и эта интеграция оказалась не последней. Убирая все лишние ручные действия, мы решили, что отчет должен не просто строиться в “Проекте 42” и выгружаться в Excel-файл, но и выгружаться в Google-Таблицы, так как именно там большинство наших клиентов их и смотрит.

Итоговая схема выглядит так:

Схема.png

Структура сайта:

  • Главная страница (/)

    • Авторизация через YouTrack (/auth/login)

    • Сводный отчет по проектам (/projects)

      • Сводный отчет по задачам (/projects/issues/{Проект})

      • Настройки ставок (/projects/{Проект}/bet/setting)

Мы реализовали 3 нетиповых обмена:

  1. Laravel и YouTrack

    1. YouTrack используется как сервер авторизации. Регистрировать новых пользователей или удалять старых отдельно для “Проекта 42” не нужно.

    2. Laravel по расписанию через REST API из YouTrack забирает список проектов, по каждому проекту — список задач.

    3. Laravel по расписанию через XML-API из YouTrack забирает временные затраты для каждой задачи каждого проекта.

    4. Спустя несколько месяцев активного использования системы руководители проектов попросили добавить возможность точечной актуализации данных и мы добавили возможность ручного запуска обмена по каждому проекту отдельно.

  2. Laravel и Битрикс24

    1. Laravel по расписанию через REST API Битрикс24 забирает данные о структуре компании, определяя области видимости отчетов.

  3. Laravel и Google Таблицы

    1. Laravel вручную по запросу пользователя подключается к указанной Google-таблице и заполняет лист данными отчета. К этому файлу заранее может быть выдан доступ заказчику.

Как это выглядит

Главное требование к дизайну было: информативность и функциональность. Поэтому в качестве каркаса для сайта взяли обычный bootstrap.

Так выглядит Сводный отчет по проектам. Он дает руководителю проектов обзор всех его активных клиентов с главными показателями: выработка, доля платной работы, ставка часа и текущий баланс. Отсюда быстро можно перейти к детализации или сразу скачать отчет.

Главная.png

Это детализация работ по одному проекту за период. Руководитель проекта видит список задач, статус, оценку и фактические трудозатраты.

Сводный отчет по задачам.png

Отчет для отправки клиенту можно скачать в CSV-файле или выгрузить в Google-Таблицу, и выглядит он так:

Отчет.png

Если нужно скорректировать ставку часа, это можно сделать и точечно, и массово. Laravel хранит всю историю ставок, чтобы была возможность пересчитать баланс проекта за все его время.

Настройки ставок.png

Что в итоге

За несколько месяцев мы получили MVP, которым продолжаем пользоваться и сегодня. По самым скромным прикидкам, только за прошлый год мы сэкономили больше 300 часов руководителей проектов на составлении отчетов. А ведь есть еще взаиморасчеты между отделами, отчеты по эффективности команд, ежемесячные отчеты по отделам, круговые диаграммы занятости и другие отчеты, добавленные в последующие годы.

В этом проекте Laravel показал себя с лучшей стороны. Он позволил сосредоточиться на низкоуровневой работе: собственный механизм кеширования, своя сложная структура данных (больше 50 таблиц), highload и выделение нескольких частей биллинга в микросервисы. Это хороший выбор, когда не нужны готовые решения и из-за требований производительности все нужно делать с нуля.

Хотите заказать разработку или поддержку проекта на Laravel? Заполните форму ниже.

Оцените статью
19.04.2024
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Почему мы рекомендуем начинать с внедрения базовой версии b2b-платформыК нам в компанию ИНТЕРВОЛГА часто обращаются клиенты с заявками на внедрение личного кабинета дилера с длинным списком желаемых функций. Однако мы рекомендуем н...
Функция b2b-платформы — отправка рекламаций в CRMОптовые покупатели — ключевой сегмент экономики торгово-производственного предприятия, и их удовлетворённость напрямую влияет на успех бизнеса. Новый функционал...
Как b2b-платформа передает в 1С данные по новым контрагентам В этой статье мы расскажем, что происходит после того, как клиент зарегистрировал в б2б-кабинете новое юридическое лицо и сделал заказ, а также покажем, как...
Автоматизация и оптимизация бизнес-процессов — лонгрид, чтобы не запутаться Статья будет полезна всем, кто хочет улучшить эффективность своего бизнеса или узнать больше о возможностях автоматизации бизнес-процессов для повышения ко...
10 обязательных задач поддержки сайта на БитриксСтатья посвящена организации поддержки сайтов на Битрикс. Здесь не только про решение технических проблем и устранение багов. Здесь про развитие живых проектов...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем