Матеріал виготовлено за підтримки рекламодавця
Застосунок Rocket створюють понад 100 технічних спеціалістів
Загуглити ресторан у вашому районі, подзвонити, продиктувати страви та адресу, чекати кур’єра з готівкою: так ще буквально 5 років тому виглядала доставка їжі в Україні.

Глобальна цифровізація, а потім ще й пандемія стимулювали потужний розвиток галузі foodtech. В результаті служби доставки перетворилися на IT-компанії. Тепер страви можна замовити в два кліки, оплатити миттєво та безконтактно, а система сама знайде найближчого кур’єра, направить його у ресторан, прорахує оптимальний маршрут та час доставки, та ще й спрогнозує, які страви прийдуться найбільше до смаку конкретному клієнту.

У технічній команді Rocket вже понад 100 спеціалістів, а замовити страви через застосунок компанії можна вже у шести країнах та більш ніж 30 містах. У спецпроєкті AIN.UA дізнався, як влаштоване IT-серце Rocket зсередини.
Як це виглядає зсередини
Хто і як створює Rocket
Людина, що замовляє доставку їжі через Rocket, бачить один застосунок — клієнтський. А насправді їх три: для користувачів, для кур’єрів та для ресторанів. Відповідно й розробка всередині Rocket поділена на три домени.

У кожного з цих доменів є Lead Product Owner (LPO) — людина, що відповідає за продуктові метрики. Наприклад, у клієнтському домені це retention (скільки людей повертаються у застосунок знову), конверсія тощо.

Product Owner разом з командою визначає, як досягати цілей, що відповідають глобальній стратегії. Гіпотези та варіанти рішень формують разом, а далі за втілення задачі береться команда розробки. Вона поділена на кросфункціональні команди по 5-7 інженерів усіх напрямків: QA, iOS-розробник, Android-розробник, backend-спеціаліст та frontend-спеціаліст.

Таких команд у кожному домені 7-8, вони можуть розподілятися в залежності від поточного фокусу. Також в Rocket є команди R&D, автоматизації та DevOps.
«Маленькі команди дозволяють зберігати дух стартапу, незалежно від того, наскільки росте компанія. У таких командах легка комунікація і швидко приймаються рішення. Зберігається можливість почути кожну людину і отримати фідбек. А якщо потрібно вирішити більш складну задачу, кілька команд можуть об’єднатися і працювати разом.

Ми прагнемо будувати процеси, які розкривають потенціал кожного члена команди. Не має жодного сенсу наймати крутих і талановитих спеців та говорити, як їм реалізовувати задачі. Вони зроблять мінімум так як і ти, а інколи навіть краще».
Дмитро Москаленко, Chief Technology Officer
А якщо щось піде не так?

Це питання до реліз-координатора. Він слідкує за тим, які оновлення випускає команда, моніторить ситуацію та оперативно реагує на конфлікти та помилки.

«Кожну фічу ми запускаємо поступово — спочатку на 10% користувачів, потім 20%, 50%, і так далі. Якщо бачимо непередбачені помилки, зупиняємо процес та запускаємо hotfix. Я, як реліз-менеджер, можу зібрати команду для швидкого виправлення помилок і тестування нової версії.

А ще я відслідковую проблеми, які виникають в ході роботи застосунку — наприклад, якщо у кур’єра на екрані з’являється pop-up, який неможливо закрити, або якщо користувачам не вдається сплатити за замовлення».
Олександр Лезвінський, Head of Development
Команда, що займається дослідницькою роботою. Наразі основна задача — заглибитися у Machine Learning та зрозуміти, як найновіші рішення у цій сфері можуть стати в нагоді у галузі foodtech. Також у цій команді безперервно шукають алгоритми для покращення логістики Rocket.
Automation
DevOps
R&D
Команда, що налагоджує систему автотестів під продукт компанії, зменшує обсяг ручної роботи тестувальників та сприяє стабілізації код бази проекту в цілому. У Rocket вірять, що QA — це не просто люди, які мають натискати кнопки. Вони, як частина команди, відповідають за якість кожної нової функції та працюють над реліз-стратегією. Тому в компанії спрямовують багато зусиль на скорочення рутинної роботи, щоб використовувати інтелектуальний потенціал QA.
Команда, що розвиває інфраструктуру проекту, працює над підвищенням стабільності системи та вводить нові практики, адже забезпечувати роботу 100+ інженерів — непроста задача.
Хочеш створювати крутий продукт?
Які задачі вирішує технічна команда Rocket
Кейс 2
Rocket виходить на різні країни по всьому світу. Для роботи застосунків потрібна карта та сервіс для створення оптимальних маршрутів. Але користуватися Google API доволі дорого: Google просить 27 копійок за прорахунок кожного маршруту. До того ж, не в усіх містах світу карти мають якісне покриття.
Ви замовляєте доставку їжі. Система повідомляє: «кур’єр буде за годину». «Окей, піду в душ», — вирішуєте ви. Через 40 хвилин крізь звуки води чуєте дзвінок в двері. Таких ситуацій бути не повинно, вирішили в Rocket. Якщо кур’єр приїде раніше, клієнт може бути не готовий його зустріти. Якщо затримається — людина нервуватиме, бо голодна. Найкраща доставка приїжджає рівно у той час, коли обіцяла, переконані у компанії.

Якнайкраще спрогнозувати час — один з важливих челенджів технічної команди. Це залежить від багатьох факторів: завантаженості ресторану, місцезнаходження кур’єра, складності страви, відстані до клієнта та заторів на дорогах.
Кейс 1
РІШЕННЯ
РІШЕННЯ
РІШЕННЯ
Кейс 3
Кур’єр отримав замовлення, доїжджає до ресторану за п’ять хвилин і чекає ще пів години, поки страву приготують. Це не вигідно ані самому кур’єру, ані компанії: робочий час має використовуватися ефективно. Тому скільки часу кур’єр перебуває в русі — одна з важливих метрик в Rocket.
Клієнт замовив грибну піцу у ресторані. Повідомлення про це прийшло на планшет закладу, звуковий сигнал прозвучав, але на кухні був галас та гуділи витяжки, і кухар його не почув. Через певний час служба підтримки Rocket бачить, що ресторан не підтвердив замовлення і оператори дзвонять в ресторан. Там виявляється — гриби закінчилися, і замовлення прийняти неможливо.

Клієнт, який був переконаний, що його піцу вже давно готують, бачить скасування через пів години після замовлення, нервує і дзвонить скаржитися у службу підтримки.
Кейс 4
РІШЕННЯ
РІШЕННЯ
Кейс 5
Клієнт зробив замовлення і ресторан вже приготував страву. А кур’єр, який начебто мав бути поруч із рестораном, ніяк не доїде. Річ у тому, що деякі кур’єри намагаються обманути систему — ставлять фейкові координати GPS та «телепортують» себе до ресторану, хоча насправді знаходяться не там. Врешті страва стає холодною, а клієнти довго чекають на своє замовлення. Для Rocket це також критично, адже такi кур'єри сильно просаджують один з ключових показникiв — click-to-eat.
Рішення
У Rocket для якнайточнішого розрахунку часу доставки використовують штучний інтелект. На основі історичних даних про попередні замовлення, система розраховує час приготування страви, враховуючи час доби, день тижня та інші фактори. Це сумується з середнім часом доставки. Виходить надзвичайно складна формула, яку в технічній команді постійно вдосконалюють, аби система використовувала ще більше даних та ставала ще розумнішою.
Рішення
Цією задачею перейнялася одна з команд. Врешті знайшли альтернативні рішення та написали софт, який дозволив використовувати не тільки Google, а й альтернативні джерела карт — дешевші і взагалі безкоштовні. Більш того — цей софт дозволяє команді Rocket редагувати адреси та додавати нові точки — у разі, якщо сервіси відображають їх некоректно.

Тепер застосунок самостійно прокладає маршрути, і компанія може обирати, якими сервісами та картами користуватися на різних локаціях, обираючи серед них оптимальні рішення. Фактично, Rocket може ефективно та дешево прокладати маршрути навіть там, де це не робить Google.
Рішення
У ранніх версіях застосунку кур’єри отримували сповіщення в момент замовлення, і відразу ж їхали в ресторан. У технічному відділі придумали, як скоротити час очікування: система сама прораховує, коли варто викликати кур’єра. Тепер він приїжджає у заклад, коли страви вже завершують готувати. Цю систему постійно оптимізовують, в результаті за рік час простоїв кур’єрів знизився на 40%.
Рішення
У Rocket уважно слідкують за показником click-to-eat: скільки часу пройшло між моментом замовлення та отриманням готової їжі клієнтом. Тому компанії важливо, щоб ресторани швидко помічали замовлення. Технічна команда створила алгоритм, який дає ресторану певний час на реакцію. Якщо заклад не приймає замовлення — воно автоматично скасовується. 

Так ресторани навчилися бути уважнішими до замовлень. А якщо вони пропускають повідомлення кілька разів, заклад ставлять на холд і з’ясовують, в чому проблема.
Рішення
Розробники Rocket об’єднали свої знання з математики, логіки та програмування і створили алгоритм, як визначити достовірність GPS-координатів кур’єра. На основі того, на якому транспорті він рухається, де знаходився раніше та яка ситуація на дорогах, система визначає вірогідність його перебування у вказаному місці. Якщо алгоритм маякує про підозрілу локацію, служба підтримки телефонує кур’єру та з’ясовує ситуацію.
Шукаєш компанію, де зможеш зробити більше?
Які виклики чекають на команду Rocket
Навчитися вгадувати смаки користувачів
Обрати, що хочеш поїсти — подекуди непроста задача, особливо якщо перед тобою вибір з десятків закладів. Наразі в Rocket хочуть зробити свій застосунок ще розумнішим — він аналізуватиме, що користувач замовляв раніше і пропонуватиме релевантні страви під час наступних замовлень. Це задача на перетині машинного навчання та бекенд-розробки.

Завдання з зірочкою: запропонувати схожу страву, якщо потрібної немає в наявності. Наприклад, клієнт шукає хінкалі, але в його зоні доставки таких страв немає. Система знайде такі страви, які можуть сподобатися замість хінкалі, та запропонує замовити їх.
Розширити географію
Флагманська задача команди Rocket наразі — доставляти їжу у десяти країнах Європи. Застосунок вже працює у шести країнах та понад 30 містах світу, але кількість постійно збільшується. Нові території — це нові виклики, особливості карт та маршрутів, а також менталітет користувачів.
Максимально автоматизувати тестування та пришвидшити розробку

«Автотестування полегшує роботу всієї команди. Одна з глобальних задач, що стоїть перед Rocket — автоматизувати на 100% релiзи та всю рутинну роботу команди. Iнженери повинi вирiшувати iнженернi задачi, а не саппортити релiзи.»
Наталія Касперович, Head of Quality
Хочеш бути одним з Rocket People?
5 причин, чому добре працювати в Rocket:
Причина 1
Розробка продукту, яким користуються сотні тисяч людей
Роман Ковтуненко, Head of Engineering
«Успіх бізнес-моделі Rocket залежить від того, наскільки ефективно ми впораємося з логістикою — тобто налагодимо взаємодію між клієнтом, кур’єром та рестораном. Способів це зробити дуже багато — задіюємо логіку, математику, машинне навчання та штучний інтелект. Враховуючи об’єми замовлень та кількість клієнтів, навіть кожна мінізміна може в підсумку принести великі результати. Для розробника це привід собою пишатися: запропонував рішення, а потім дивишся звіт і розумієш, що зекономив кур’єрам багато годин часу».
Причина 2
Можливість реалізовувати свої ідеї
«У Rocket ідею, як покращити сервіс, може запропонувати та реалізувати кожен член команди. Ось свіжий кейс. Під час поганої погоди вкрай важливо формувати правильні очікування у клієнтів. Один з наших розробників запропонував створити попередження через pop-up, якщо біля користувача йде дощ, або сніг. Таким чином клієнти будуть усвідомлювати, що через погану погоду можливі затримки. Ми це реалізували, і це добре відобразилося на метриках».
Роман Ковтуненко, Head of Engineering
Причина 3
Свобода у організації роботи команд
«Я, як СТО, не можу вказувати продакт-менеджеру, або інженеру, як йому робити свою роботу. У нас є спільна мета, яку ми вибрали разом, і домовилися, як її досягати. А що робить кожна людина у своїй зоні відповідальності — це виключно її справа».
Дмитро Москаленко, Chief Technology Officer
«У Rocket ніхто не диктує зверху, як потрібно працювати, головне — результат. Тож кожна команда може домовитися про свої процеси всередині. Ось приклад. Зазвичай наші команди зідзвонюються, щоб обговорити поточні задачі. Це може зайняти кілька годин. Один з розробників якось запропонував своїй команді створити гугл-документ з переліком усіх задач, зідзвонитися на 5 хвилин щоб їх озвучити, а потім у коментарях обговорити вирішення. І лише якщо в чомусь не вдасться дійти згоди письмово — проговорити це голосом. Врешті все вирішили буквально за годину».
Роман Ковтуненко, Head of Engineering
Причина 4
Відкритість та горизонтальна структура
Причина 5
Найновіші технології
«В Rocket навіть коли заходиш на кухню, чуєш, як люди обговорюють різні ідеї та реалізації. Кілька разів був свідком, як під час обіду iOS-інженер «продавав» анімацію фаундерам, щоб покращити інтерфейс».
Дмитро Москаленко, Chief Technology Officer
«Демократичність та відкритість — головна фішка технічної команди Rocket. Наприклад я, як голова департаменту розробки, керую не людьми, а процесами».
Олександр Лезвінський, Head of Development:
«Ми постійно апдейтимо технології, з якими працюємо. Наприклад, в напрямі iOS ми переходимо на Combine framework. Це одна з найновіших технологій від Apple, для використання якої має бути iOS не раніше тринадцятої версії. Наразі ми готуємось до цього переходу, і це дуже надихає команду. А коли у тебе натхненна команда інженерів — це прекрасно.

А ще у нас нульовий техборг та немає legacy code. Ми постійно працюємо над тим, щоб у системі не було проблем, помилок та застарілих частин коду та приділяємо цьому стільки ж уваги, скільки й розробці нових фіч».
Дмитро Москаленко, Chief Technology Officer
У команді Rocket вже більше 500 спеціалістів. З них більше сотні — це технічна команда, наш мозковий центр, який перетворює просто «food» на власне «foodtech».

Хочеш приєднатися до команди Rocket? Глянь на відкриті вакансії.
Олексій Юхимчук та Станіслав Дмитрик, Co-founders
ТЕКСТ
Тетяна Гонченко
ПАРТНЕР
Матеріал підготовлено за підтримки Rocket
Що це означає?
ДИЗАЙН
Дарія Корнєєва
МЕНЕДЖЕР
Яна Проценко
ПРОДЮСЕР
Анастасія Михалюк
ФОТО
Rocket
Ольга Клименко
ПРЕДСТАВНИК ROCKET
Матеріал виготовлено за підтримки рекламодавця
Під час використання матеріалів сайту обов'язковим є наявність гіперпосилання в межах першого абзацу на сторінку розташування вихідної статті із зазначенням бренду видання AIN.UA. Матеріали з позначками «Новини компаній», PR, «Спецпроект», «Промо» і «Блоги» публікуються на правах реклами.
© 1999-2021 AIN.UA