Instamart
2219

Не просто интернет-магазин: как сервис доставки продуктов стал прибыльным за счет уникальных технологий

Иллюстрация предоставлена пресс-службой Instamart
В закладки

CTO Instamart Дмитрий Бобылёв рассказал о том, как создавалась уникальная ИТ-платформа сервиса по доставке продуктов, какие технологии помогли превратить интернет-магазин в гибкий и сложный сервис, сократить издержки и достичь прибыльности. Вот несколько рекомендаций стартапам, которые Instamart смог вынести из своего опыта.

1. Инвестируйте в in-house разработку

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

Поняв это, основатели Instamart приняли решение сменить партнера и нашли подрядчика, компетенции которого отвечали запросам растущего бизнеса компании. Затем, получив в 2016 году достаточный объем финансирования, уговорили часть внешней команды присоединиться к Instamart: так в компании появилось четверо штатных разработчиков.

Уже через год силами собственной команды компании удалось создать технологическую платформу, которая объединила сайт, мобильное приложение (через него поступает более половины заказов), приложение для сборки и комплектации заказа, а также приложение для маршрутизации водителей. Общая стоимость платформы превышает 1 млн долларов. И такие инвестиции в технологии окупились. Уже в начале 2019 года крупнейшая сеть мелкооптовой торговли METRO Cash and Carry перевела свои онлайн продажи на платформу Instamart. Другие ритейлеры также не скрывают свой интерес к возможной интеграции.

Иллюстрация предоставлена пресс-службой Instamart

Сегодня отдел разработки Instamart это команда из 29 сотрудников с высокой инженерной культурой, подробнее о которой можно почитать тут https://instamart.tech

2. Масштабировать технологии вместе с ростом бизнеса

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

Тогдашняя технологическая платформа работала как простой интернет-магазин. Цены обновлялись нерегулярно, отсутствовал back-end для сборщиков заказа. Изначально он и не требовался — в компании был один сборщик. Ему поступали «наборки» из продуктов с распечатанным на бумаге списком и изображением товаров. Он собирал несколько заказов в магазине и самостоятельно развозил их по всему городу. Тогда мы еще не научились работать с зонами доставки. Когда пришло время масштабировать сервис, платформу полностью перестроили.

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

Иллюстрация предоставлена пресс-службой Instamart

Это приложение и по сей день является частью нашей технологической платформы.

3. Выбирая технологии ориентируйтесь на задачи бизнеса

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

Дмитрий Бобылёв
CTO Instamart

С ростом бизнеса на первый план выходят другие факторы – масштабирование команды. Вам будет тяжело решать задачи, если с технологией, на которой разработан ваш продукт, умеет работать всего пара десятков человек в России. Следите за рынком труда и не бойтесь адаптировать свой технологический стек под него.

Иллюстрация предоставлена пресс-службой Instamart

4. Быть готовым пересмотреть принципы работы

Для поддержания стабильного развития компании необходимо искать различные пути решения одной задачи. Например, в какой-то момент целью Instamart было доставлять продукты за один час. В компании создавалась сложная система для прокладывания оптимальных маршрутов от одного магазина к нескольким клиентам. Но достичь цели помог полный отказ от нее.

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

Иллюстрация предоставлена пресс-службой Instamart

5. Внедрять BI-систему с первого дня

Принимать решения нужно всегда на основе конкретных цифр и знаний. Поэтому важно фиксировать каждый этап работы и анализировать полученные данные. Это позволяет выявлять ошибки еще на раннем этапе внедрения.

Так, после заметного роста опозданий по доставке заказов мы решили посмотреть, по каким адресам курьеры чаще всего допускают опоздания. Для этого мы построили heatmap (тепловую карту опозданий) и заметили, что не все зоны доставки построены корректно. После их изменения, доля опозданий снизилась на 7%.

Но на этом Instamart не остановился, а построил карту изохрон (линий равных затрат времени на преодоление пространства относительно заданных точек) вокруг магазинов, из которых мы доставляем продукты. В результате мы обнаружили, что различными препятствиями вроде ЖД-переездов и шоссе зоны делятся на подзоны, перемещение между которыми затруднительно. Снова изменили границы зон, и в итоге опоздания сократились до 6-7%.

Другой пример. Для того, чтобы ускорить работу аналитиков с данными, мы настроили на сервере JupyterHub - хаб для взаимодействия нескольких пользователей с веб-оболочкой Jupyter Notebook, позволяющей, в том числе, создавать наглядные аналитические отчеты. Таким образом Instamart в первую очередь хотел снизить количество отмен или замен в заказах, происходящих из-за отсутствия нужного товара в магазине или его ненадлежащего качества. Мы настроили выдачу искомых продуктов в поиске таким образом, чтобы повысить вероятность заказа тех продуктов, которых больше в наличии. Это помогло снизить процент отмен или замен товаров в 2 раза.

В дальнейшем отдел разработки Instamart совместно с отделом качества и операций стали анализировать каждый этап сборки заказа. Удалось выяснить, что мешает собирать заказ, почему возникают задержки, какие бывают ошибки, из-за чего происходят отмены заказа. На основе выявленных данных мы ликвидировали многие операционные издержки, снизили количество опозданий. И это только начало. Оперируя полученными данными, мы можем выдвигать идеи и гипотезы, как доработать бизнес.

Наблюдайте за цифрами, измеряйте ключевые показатели и делитесь ими с другими членами команды. Это можно делать не только с помощью дорогих систем, но и используя бесплатные сервисы. Например, мы применяем https://metabase.com. Мы ввели автоматический подсчет стоимости доставки с учетом характеристик заказа. Теперь стоимость растет, если заказ много весит. Именно анализ данных помогает выявлять и решать такие проблемы.

6. Ценить QA-инженеров

Руководители компаний часто недооценивают важность контроля качества. Зачем, казалось бы, нанимать в отдел разработки не программистов? Однако надежная команда QA-инженеров - важная составляющая успеха. Хорошее тестирование высвобождает ресурсы разработчиков и способствует повышению качества продукта.

До появления у нас в команде QA-инженеров разработчики тратили до 60% своего времени на исправление ошибок в коде. Теперь же каждый специалист может сосредоточиться на своей задаче, а значит выполнять ее эффективнее и быстрее.

7. Посвящать ИТ-специалистов во все стороны бизнеса

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

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

{ "author_name": "Instamart", "author_type": "editor", "tags": [], "comments": 5, "likes": 9, "favorites": 13, "is_advertisement": false, "subsite_label": "instamart", "id": 74437, "is_wide": false, "is_ugc": false, "date": "Mon, 08 Jul 2019 14:46:03 +0300", "is_special": false }
0
{ "id": 74437, "author_id": 261568, "diff_limit": 1000, "urls": {"diff":"\/comments\/74437\/get","add":"\/comments\/74437\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/74437"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 261568, "last_count_and_date": null }
5 комментариев
Популярные
По порядку
4

Ну и где цифры, показывающие на сколько возросла прибыль? В статье ничего не написано.
Специально поискал в интернете - оказывается контора генерирует одни убытки, живет только за счет инвест-раундов.

Ответить
0

Иван, цифры мы давали в другой колонке https://vc.ru/instamart/65252-fire-customers-kak-popast-v-chislo-pribylnyh-startapov
Компания пока вышла на операционную прибыльность, что большая редкость для данного сегмента в принципе. Пока это не удавалось даже Утконос, который на рынке доставки продуктов уже более 18 лет. В 2020 году мы планируем окупать все затраты, включая затраты на маркетинг. А в 2021 планируем выйти на EBITDA positive. Поэтому Ваше утверждение про убытки сильно ошибочно. Поищите в Интернете еще раз:)

Ответить
1

"Компания пока вышла на операционную прибыльность".

Отрицательная прибыль не равна наличию убытка?

Ответить
0

Как выйти на операционную прибыль? Да, очень просто. Ни фига не инвестировать в разработку и не расширять продуктовую команду. Есть одно НО. Прибыль - явление временное , особенно в условиях гиперконкуренции. А вот, чтобы расти и занять лидерство в цифровой экономике, нужно 1) нанять цифвровых людей 2) инвестировать в развитие.

Ответить
1

1) нанять цифвровых людей
2) инвестировать в развитие.
3) ...
4) Profit!

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ] { "page_type": "default" }