Класичні служби таксі давно переживають непрості часи, адже змушені конкурувати з новими сервісами каршерингу та райдхелінгу на кшталт 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 попереду ще багато роботи.
