Классические службы такси давно переживают непростые времена, ведь вынуждены конкурировать с новыми сервисами каршеринга и райдхеллинга типа Uber. У бизнеса, который хочет сохранить свое место на рынке, есть только один путь – самому превратиться в “Убер”. Современная служба такси не просто нуждается в удобном онлайн-сервисе: ей нужна глубокая автоматизация процессов и мощные возможности аналитики для конкуренции с сервисами нового поколения.
Создание комплексной системы приложений для такой службы – задача не из легких, но она сулит огромные преимущества как пассажирам, так и оператору перевозок. Мы знаем это из собственного опыта, поскольку реализовали платформу RideTaxi для одного из наших клиентов. В этом материале мы расскажем о функционале, преимуществах и тонкостях такой разработки. Наши выводы будут полезны для всех, кто интересуется развитием IT-индустрии, инновациями в транспорте и созданием приложений, меняющих нашу повседневную жизнь.
Проблема клиента
Начать стоит с того, что нейминг RideTaxi – вымышленный, ведь бренд нашего клиента защищен NDA. Но, по сути, к нам обратился крупный оператор перевозок такси, который столкнулся с острой конкуренцией, навязанной новейшими сервисами райдхеллинга: Uber и подобными. Это заставило компанию существенно пересмотреть и ускорить свои планы диджитализации.
На WEZOM возлагалась задача создать современную комплексную систему службы такси, которая сможет предоставить пассажирам и водителям достойный цифровой опыт перевозок, позволит автоматизировать ключевые операции и реализовать сквозную аналитику для оптимизации бизнеса на всех уровнях.
В целом клиент нуждался в диджитал-решении для решения ряда задач:
-
Автоматизация метчинга и роутинга заказов с помощью гибких алгоритмов;
-
Снижение нагрузки на диспетчерскую службу, сокращение расходов на колл-центр и телефонию;
-
Построение для пассажиров современного пользовательского опыта: с заказами индивидуальных и групповых поездок в мобильном приложении, безналичной оплатой, возможностью корректировать маршрут в дороге и т.п.;
-
Минимизация рисков человеческого фактора и конфликтов благодаря системе отзывов и рейтингов водителей/пассажиров;
-
Построение для водителей и менеджеров компании удобной онлайн-экосистемы для расчетов и коммуникации. В частности, чтобы водители всегда могли видеть свой текущий уровень заработка;
-
Оптимизация использования автопарка и рабочего времени водителей с помощью алгоритмов построения маршрутов и формирования цепочек заказов;
-
Эффективный сбор статистики каждого водителя и налаживание сквозной аналитики для мониторинга общей производительности компании и формирования данных для оптимизации процессов.
-
Контроль за базами данных сотрудников и клиентов, что позволяет улучшить общий уровень сервиса и внутренний менеджмент.
Построить такой комплексный продукт с нуля – это достаточно масштабная задача. Клиент выбрал в качестве исполнителя именно команду WEZOM, поскольку к тому моменту мы уже имели опыт успешного создания платформ для автоперевозок и кейсы разработки мобильных приложений под различные индустрии.
Задачи разработки
Проект предполагал построение системы с разветвленной архитектурой. Следовательно, перед командой стоял ряд ключевых задач:
-
Построение системы управления для службы такси;
-
Разработка мобильных приложений для пассажиров и водителей;
-
Реализация административной панели для администраторов системы;
-
Настройка интеграции в систему внешних продуктов и сервисов.
Для решения этих комплексных задач разработчики сформировали достаточно широкий стек технологий.
-
Основой для бэкенда выступили среда разработки Node.js и фреймворк Spring, который базируется на Java EE;
-
База данных в системе реализована с помощью PostgreSQL;
-
Для реализации админпанели на фронтенде были выбраны библиотеки ReactJS и Ant.Design;
-
Мобильные приложения команда решила писать нативно, на Kotlin (под Android), и на Swift (под iOS);
-
Базой для сетевой инфраструктуры системы стали облачные решения Amazon Web Services (AWS);
-
Система также получила несколько важных интеграций: Google Maps и OpenStreetMaps – для картографии, WayforPay – для онлайн-платежей и еще ряд сервисов.
Как мы построили разработку
Цикл создания системы для службы такси ничем не отличается от разработки любых других IT-решений. Когда речь идет о кастомной разработке системы с нуля, все так или иначе начинается с предварительных обсуждений и исследований, и в идеале завершается успешным релизом и последующей многолетней поддержкой системы. Разберем основные этапы разработки RideTaxi.
Предварительная аналитика и планирование
На старте проекта команда должна четко сформулировать концепцию продукта, то есть, понять, что и для кого она разрабатывает. В кейсе RideTaxi специалисты WEZOM подробно изучали не только запрос клиента, но и рыночную нишу, в которой он работает, разбирали решения конкурентов, целевую аудиторию и т.д. Это позволило определить для нового приложения эффективное предложение и позиционирование на рынке, сформировать дорожную карту проекта и перейти к следующим этапам.
Окончательное согласование состава решения продукта, с которым оно было запланировано до запуска, было обосновано перед заказчиком с использованием методологии RICE. Она учитывает охват пользователей, влияние на достижение целевых показателей и конверсий, обоснование необходимой реализации и необходимые для нее затраты. К примеру, функцию оплаты поездок криптовалютой команда разработки определила нецелесообразной для первого релиза. Эту идею отложили на будущее. В то же время, ночной режим экрана для водителя – наоборот, был внесен в приоритетный функционал. Методы RICE позволили составить для продукта перечень действительно востребованных функций, обеспечивших проекту понятный ROI.
Проектирование
Следующий шаг заключался в том, чтобы продумать технические и практические аспекты воплощения концепции в жизнь. Команда в интерактивном формате разработала интерфейсы управления для мобильных приложений и админпанели, чтобы обеспечить удобный и понятный функционал конечным пользователям – заказчикам такси. Главная цель создаваемых решений заключалась в том, чтобы пользователь мог заказать машину за три клика в смартфоне.
Продакт-менеджер и PM подготовили технические задания для команд дизайнеров и программистов. Технические специалисты определили верхнеуровневую архитектуру продукта, выбрали стек технологий и методы реализации, сформировали детальный скоуп работ, необходимых для разработки задуманного решения. На этом этапе уже можно более или менее точно говорить о сроках реализации и стоимости проекта.
Работа над алгоритмами
На этом этапе команда начала глубоко прорабатывать ключевой функционал продукта, такой как алгоритмы прибыльности. В качестве наиболее интересных можем отметить следующие:
-
Просчет в смене водителя доли времени, посвященного непосредственно перевозке пассажиров. Это так называемое время "чистого" заработка. Когда водитель ждет заказа, едет к клиенту или ожидает его, его рабочее время тратится неэффективно. Задача платформы заключалась в том, чтобы минимизировать простой;
-
Просчет показателя заработка водителя за час смены. Этот показатель важнее "среднего чека" перевозчика. Ведь в определенный момент система может предложить водителю дешевый заказ, но с его помощью он попадет в зону высокого спроса, где следующий заказ уже будет дорогим;
-
Формирование "цепочки заказов", которое не позволяет машинам простаивать. Платформа должна была искать для водителя следующий релевантный заказ уже в тот момент, когда он еще не завершил предыдущую поездку с пассажиром. При этом алгоритм метчинга должен учитывать не только линейное расстояние от места посадки до автомобиля, но и его доступность с точки зрения дорожного движения. Машина может находиться фактически в 100 метрах от нового пассажира, но быть отделенной от него физическими препятствиями, улицами с односторонним движением, плотным трафиком и т.д. В то же время машина, находящаяся в 500 метрах, но на той же улице, закроет заказ гораздо быстрее;
-
Близкой к этому пункту задачей стала также реализация в приложении водителя офлайн-таксометра. Этот функционал сделал возможным расчет стоимости поездки в зонах неустойчивого интернет-соединения;
-
Формирование алгоритмов динамического ценообразования тарифных зон требовало не только непосредственно аналитической работы, но и налаживания эффективного взаимодействия с онлайн-картами. Разработчики должны были сделать так, чтобы количество запросов к картографии не стало для оператора перевозок слишком затратным.
Дизайн
Параллельно с предварительным техническим проектированием команда дизайнеров работала над решениями UI. Специалисты призваны определить ключевые аспекты и визуальные решения для проекта. Эта работа должна соответствовать общим правилам и трендам дизайна. В частности, мобильные приложения должны отвечать требованиям Material Design (Google) и Human Interface Guidelines (Apple).
Более того, решения дизайна должны вписываться в общую концепцию продукта и работать в контексте бренда компании-клиента. Дизайн начинается с проработки архетипа бренда (можно выбрать за основу один из двенадцати "классических" архетипов) и его Tone of Voice. Следовательно, дизайнеры готовят несколько прототипов для продукта, тестируют его на фокус-группах и обсуждают со стороной Заказчика, пока не согласуют лучшие решения.
Технический этап разработки
Когда проект имеет четкие решения, документацию и согласованный дизайн, разработчики могут переходить непосредственно к написанию кода. В кейсе RideTaxi специалисты по бэкэнду писали серверную часть с нуля, фронтенд-разработчики занимались административной панелью, мобайл-разработчики - создавали приложения для пассажиров и водителей в двух нативных версиях: под Android и IOS.
Это не самый быстрый, и не самый простой способ реализации приложений, но он был выбран из-за требований Заказчика проекта к быстродействию и стабильности работы с нативными функциями GPS в смартфонах. Эта технология была также выбрана как решение на перспективу. Ведь в перечне планов развития продукта есть ряд фич, которые сейчас могут быть реализованы только с использованием нативных средств разработки.
Тестирование
Помимо unit-тестов, новое решение требовало еще и постоянных многочисленных автоматизированных тестов, мануального функционального тестирования на протяжении всего цикла разработки, нагрузочных тестов и интеграционного тестирования для проверки взаимодействия различных компонентов системы. После обнаружения и устранения ошибок дополнительно проводилось регрессионное тестирование, цикл проверки повторялся многократно.
Перед выходом в релиз продукт прошел альфа-тестирование, то есть начальную тестовую проверку продукта с небольшой группой реальных пользователей. Главные задачи данного этапа – проверка функциональности и получение обратной связи. Это позволило привести требования к продукту в соответствие с потребностями аудитории.
Релиз
Уже к концу этапа тестирования команда начала подготовку к полноценному развертыванию системы и размещению приложения RideTaxi в сторах Play Market и App Store. После успешного запуска и публикации начался этап поддержки, который продолжается и сейчас. Последние технические ошибки были исправлены во время двухмесячного гарантийного периода. В дальнейшем команда начала работу над новым функционалом и апдейтами системы.
В целом рабочий процесс в WEZOM строится на agile-методологии scrum, которая опирается на высокотемповую работу в небольших командах и выполнение задач в формате спринтов - это небольшие рабочие отрезки длительностью в 1-2 недели. В кейсе RideTaxi мы отчитывались перед клиентом по результатам каждого спринта и получали от него полезный фидбек. Это позволило выдать максимально качественный результат в относительно короткие сроки. На разработку всей системы ушло более 8 тысяч рабочих часов командной работы.
Что стало результатом
Результатом разработки стал современный онлайн-сервис такси высококонкурентного уровня, который предлагает комфорт для пассажиров, предоставляет удобные рабочие инструменты для водителей, снижает нагрузку на операторов и предоставляет администраторам системы мощные разветвленные средства аналитики. Давайте разберем компоненты системы в деталях.
Мобильное приложение для пассажиров
В мобильном приложении пассажир получает максимально бесшовный опыт - на уровне лучших решений для райдхелинга. Пользователь может заказать авто в три клика на интерактивной онлайн-карте; выбрать авто по ряду параметров (количество мест в салоне, багажник, корзина для животных и т.д.); отфильтровать водителей по рейтингу и отзывам; сохранить необходимые ему адреса для упрощения заказов, применить любой вариант оплаты, включая Google Pay / Apple Pay, рассчитаться бонусами или подарочными сертификатами. Доступны такие возможности как совместимые поездки с оптовой оплатой, поездки с несколькими плановыми остановками на маршруте и возможность менять маршрут уже во время движения.
Реализована опция регулярных поездок с определением тайм-слотов, а также формат бизнес-поездок. Более того, приложение предоставляет клиентам сервиса такие преимущества как индивидуальная бонусная программа и блок с историей поездок, с возможностью сделать из него повторный заказ. Предусмотрен отдельный функционал для работы с предприятиями, с возможностью безналичных расчетов.
Приложение для водителей
Водители получают в RideTaxi полноценную мобильную среду для работы. Приложение предлагает онлайн-картографию, которая позволяет наглядно ориентироваться на улицах и помогает с выбором заказов. Навигатор совмещен с системой коэффициентов, которые позволяют получать заказы с высокими ценами в час-пик. В приложении отображаются зоны с повышенным тарифом.
Водители получают оповещения о новых заказах в реальном времени, при этом подбор заказа можно индивидуально настроить через систему фильтров, ограничив их по радиусу подачи, пункту прибытия, цене за километр и т.д. Встроенный чат и телефония при необходимости упрощают коммуникацию с пассажирами и менеджерами. И как отмечалось выше, таксометр в приложении может работать даже в офлайн-режиме.
Одной из важнейших функций RideTaxi для таксистов является встроенная подробная отчетность по доходам. В приложении выводится вся индивидуальная статистика водителя: его рейтинг, финансы (состояние которых отображается динамично), бонусы и тому подобное.
Админпанель
Менее заметным, но не менее важным компонентом системы стала административная панель, реализованная в формате веб-приложения. С ее помощью менеджеры компании мониторят работу водителей, ведут базы данных персонала и клиентов, помогают пассажирам в сложных ситуациях и оценивают показатели бизнеса на всех уровнях.
Менеджер может наглядно видеть локацию водителей системы на интерактивной онлайн-карте. Ему доступны инструменты для модерации заказов, контроля работы водителей, допуска в систему нового персонала, обработки отзывов и жалоб клиентов и т.д. Более того, администраторы системы получают доступ к комплексной аналитике по финансам, качеству выполнения заказов, предпочтениям пассажиров и производительности водителей. Данные визуализируются в админпанели с помощью инфографик, что делает их удобным и наглядным рабочим инструментом. “Фишкой” проекта стал бот, который собирает информацию о выявленных проблемах и распределяет соответствующие “алармы” между ответственными лицами.
Система на всех уровнях интегрирована с необходимыми компании внешними цифровыми системами и сервисами, без которых вести бизнес невозможно: API картографических систем, CRM-система клиента, средства бухгалтерского учета, IP-телефония, платежные шлюзы, Google Analytics, дополнительные аналитические инструменты для маркетинга и т.д.
Результаты проекта
Разработка диджитал-экосистемы для сервиса такси была крайне интересной и амбициозной задачей. Проект в конце концов стоил всех усилий, затрат и рабочих часов: новая платформа трансформировала бизнес клиента и изменила его позиционирование на рынке. Ведь это позволило отойти от классической формулы такси и предложить пассажирам и водителям современную модель перевозок, аналогичную Uber.
Более того, масштабная автоматизация помогла ощутимо оптимизировать операционные расходы: нагрузка на колл-центр сократилась на 62%. В то же время темпы обработки заказов в диджитале выросли, поэтому автопарк компании может выполнять гораздо больше перевозок по сравнению с “аналоговым” менеджментом: прирост достиг 20%. Соответственно улучшились финансовые показатели.
На сегодня RideTaxi - одно из самых востребованных подобных решений на рынке Клиента. Но его потенциал еще не раскрыт до конца. Команда и Заказчик имеют амбициозные планы по развитию функционала и возможностей системы. В частности – по внедрению ИИ для пользовательской поддержки и применения компьютерного зрения: для идентификации водителя и автомобиля, определения состояния авто и т.д. Поэтому у специалистов WEZOM впереди еще много работы.