• /
  • /

Аутстаф для ИТ-команды крупного игрока на рынке лотерейных билетов в России: кейс разработки на Java

Наш бэкенд-разработчик Дмитрий М. работал над несколькими проектами в составе инхаус-команды федерального продавца лотерейных билетов. В процессе разработки специалисты использовали сравнительно редкий формат XML и технологию Spring StateMachine. Делимся кейсом интеграции и разработки на Java.
  • Заказчик
    российская группа ИТ-компаний для федерального продавца лотерейных билетов
    Модель сотрудничества:
    • субподряд
    Стек разработки:
    • Java17, Spring boot, Spring Сloud, Spring Kafka, Spring StateMachine
    Проект:
    • несколько проектов

О заказчике

К нам обратились представители крупной российской ИТ-компании, которым требовался разработчик на проект. Конечный заказчик — известный игрок на рынке лотерейных билетов. Компания использует современные технологии, чтобы упростить участие в лотерее и сделать розыгрыши более прозрачными.

Старт проекта

Проект: технические решения для продажи и оплаты лотерейных билетов в городах России. У клиента было несколько масштабных задач.

Задача №1
Первая большая задача — интеграция с платежным шлюзом, которая позволит покупателям лотерейных билетов оплачивать их со своего баланса на счету мобильного оператора. У заказчика уже был готовый платежный шлюз X-Plat. Наш разработчик выполнил интеграцию этого шлюза с сервисом по продаже лотерейных билетов.

Задача №2
Также у заказчика было отдельная команда, которая занималась разработкой лотерейных платежных терминалов. Это специальный терминал, который используют продавцы в киосках при продаже лотерейных билетов. Особенность устройства в том, что через него покупатель может не только оплатить, но и выбрать лотерейный билет нужного типа, задать количество, указать номера. Наш разработчик вместе с командой реализовывал дополнительные типы лотерей, которые добавляли в платежный терминал.

Задача №3
Еще один проект, в котором участвовал наш специалист — разработка статусной модели лотерейного билета. У билета может быть много статусов: «куплен», «оплачен», «оплачен за рубли», «оплачен за бонусы», «обналичен» (выигрышный). Важно грамотно настроить переходы между статусами и ничего не упустить. В противном случае могут возникнуть ситуации, когда выигрыш получит обладатель невыигрышного билета.

Длительность участия: середина августа — ноябрь 2024 года

Стек бэкенд: команда разработки использовала технологию Dash service для интеграции с готовым платежным шлюзом.

Стек на всех задачах был примерно одинаковым: Java17, Spring boot, Spring Cloud, Spring kafka, Spring StateMachine. Специалисты работали с Docker, Postgres и Redis для управления базами данных, а также с форматами для хранения и передачи данных JSON и XML.

Команда и организация процессов

Команда: наш разработчик работал в двух командах.

Первая — команда по работе с выплатами на баланс мобильного оператора — включала одного тимлида, двух сеньоров и двух мидлов.

Вторая команда — более многофункциональная — состояла из девопса, проджект-менеджера, четырех бэкендеров, двух фронтендеров и двух тестировщиков.

80% каждой команды составляли сотрудники заказчика, остальная часть — специалисты из компаний-подрядчиков, которые должны были временно усилить команду.

Как приходили задачи: у команды было большое техзадание с описанием целей и процесса. Задачи с техническими требованиями для бэкендеров ставил проджект-менеджер, на вопросы отвечал тимлид.

Методология: задачи командам ставили в Jira, работа выстраивалась в виде спринтов, в планировании которых участвовали лиды и руководители. Наш специалист работал с непрерывным потоком задач.

На проекте используются сравнительно редкие формат XML и технология Spring StateMachine, что позволило получить дополнительный опыт работы с ними.

Дмитрий М., разработчик:

«Мы работали с огромным приложением с монолитной архитектурой, в котором много взаимосвязей, а в коде есть строки с 2017 года. Знакомство со вторым проектом начал с боевой задачи, в результате нашел ошибку не только в бэкенде, но и на фронтенде».
Результаты и эффективность

Участие нашего разработчика в команде конечного заказчика помогло усилить команду и ускорить процессы. После окончания работы мы получили позитивную обратную связь, заказчику понравилось работать с нашим специалистом.

МОЖЕМ ПОМОЧЬ

Если у вас есть проекты на Java — свяжитесь с нами и мы поможем подобрать временных специалистов для разработки.