Всем привет! Меня зовут Вика Большова, я продакт-лид сборки в СберМаркете. Если вы пользуетесь нашим сервисом, то, возможно, заметили, что сейчас мы привозим заказы быстрее, чем в прошлом году. В этом материале я расскажу, как нам удалось увеличить скорость сборки на 20% и сделать условия сотрудничества для сборщиков более data-driven.

Как было раньше

Думаю, многие догадываются, что у e-com приложений есть и «обратная сторона» помимо витрины для клиентов. Я имею в виду админку и прочие сопутствующие сервисы, которые помогают учитывать, собирать и доставлять товары. Кроме покупателей у СберМаркета есть и другие группы пользователей: ретейлеры, бренды, курьеры и сборщики. 

Сегодня расскажу про Шоппер — приложение, которым пользуются наши сборщики. А именно о том, как мы оптимизировали его работу.

До мая 2022 года сборщик заходил в Шоппер, видел список всех заказов и сам выбирал, к какому из них приступить. Мы заметили, что некоторые заказы собирают быстро, а другие могут идти в работу не сразу, и стали копать, в чём тут дело.

Оказалось, что сборщики негласно маркировали заказы как «удобные» и «неудобные». Удобный заказ — самый выгодный с позиции вознаграждения на трудозатраты. Вот его характеристики:

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

  • Товары лёгкие и компактные. Собирать чипсы и шоколадки гораздо приятнее, чем тяжёлые бутылки.

  • Мало или совсем нет весовых товаров, охлаждёнки и заморозки. Собирать фрукты, овощи и молочку нужно более тщательно: проверять срок годности и качество упаковки, а также согласовывать с клиентом перевес или недовес.

Руководствуясь этой негласной системой, опытные сборщики могли бронировать «удобные» заказы. Это влекло за собой ряд незапланированных эффектов:

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

  • Заказы опаздывали. «Удобные» — потому что их откладывали и могли начать собирать не сразу, а «неудобные», потому что их собирали новички.

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

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

Диспетчеризация

Одна команда взяла на себя задачу улучшить флоу сборки, а вторая начала работать над диспатчем. 

Диспатч — это автоматическая система, которая назначает сборщика на основе параметров заказа. Диспатч работает на основе алгоритма first in, first out с поправкой на значительный ряд параметров: габариты, массу, сложность сборки, дедлайн, опыт сборщиков на смене и т. д.

Здесь рассказываю, как работает диспатч

Допустим, заказ должен быть доставлен клиенту в слот с 12:00 до 13:00. Назовём левую границу T1, а правую T2.

Для каждого слота имеется настройка «правило закрытия слота» (ПЗС). В нём учитывается среднее время на сборку и доставку — оно, в свою очередь, определяется для каждого конкретного магазина. Это наша подушка безопасности.

Допустим, в том магазине, откуда мы хотим заказать товары, закладывается 30 мин на сборку и 30 мин на доставку. Тогда ПСЗ равно 60 минут. В этом случае система рассчитывает в качестве рекомендованного дедлайна сборки 11:00. По формуле:

Дедлайн = T_1 - ПЗС

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

Старт =Дедлайн - Прогноз

По полученному времени Старта диспатч приоритезирует заказы в очереди на сборку по методу first in, first out. При этом алгоритм с меньшим приоритетом выдает новичкам сложные заказы — если будет свободен опытный сборщик, такой заказ упадет на него.

  • Вознаграждение сборщиков стало прозрачнее. На этапе оффера им показывают, сумму, которая будет начислена за сборку. 

  • Вознаграждение стало более справедливым, потому что заказы равномерно распределяются на сотрудников точки. Исчезли кейсы с бронированием «удобных» заказов и нежеланием собирать «неудобные». 

И главное — у нас наконец-то появилась аналитика, из которой выросла система мотивации.

На этом этапе несмотря на значительные изменения процесса увеличение OPH и снижение средней стоимости сборки было небольшим — на 5% и 3% соответственно. Сам по себе диспатч не ускорял сборщиков, но он был энейблером, то есть необходимым элементом, для будущих разработок.

Два главных нововведения

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

#1 Бонусы за скорость

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

Время = ax +b

х — кол-во позиций;

а — кол-во минут на сборку позиции;

b — время на упаковку и сборки.

A и b определялись по историческим данным для каждого отдельного магазина. Со временем мы заменили формулу на ML-модель, которая лучше учитывает специфику работы магазина от месяца к месяцу. Сейчас в ней учитывется сезонность, соотношение новичков и старичков в смене и изменения в расстановка внутри магазина

#2 Параллельная сборка

Исторически некоторые сборщики собирали по два заказа одновременно, чтобы упростить себе жизнь и больше заработать. Первый собирался через приложение Шоппер, а второй — просто по скриншотам. Удобства в этом было мало.

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

Эти две функции уже привели к значительному приросту в метриках: OPH увеличилось на 30%, а скорость сборки на 21%.

Lessons learned

Хочу поделиться несколькими уроками, которые мы с командой усвоили в процессе работы над проектом:

  1. Большие автоматизации, которые напрямую меняют важный бизнес-процесс (и в которые инвестированы много сил и ресурсов) не всегда сами по себе дают какой-то значимый эффект в метриках. И это нормально :) Гораздо важнее, что они могут открыть дорогу к новым инструментам и решениям, которые смогут показать значимый результат. Важно не бояться в них идти и аргументировать необходимость таких изменений долгосрочными эффектами.

  1. Не всегда изменение в качестве услуги видно на качественных метриках (например, на оценке клиента). Зато оно может повлечь за собой увеличение или сокращение объема в операционных процессах, которые приводят к изменению затрат на заказ. Например, у нас сократилось количество довозов, когда за сложные заказы стали браться более опытные сборщики.

  2. И самый противоречивый совет (зато от самого сердечка) — иногда не нужно сиюминутно прислушиваться к вашему клиенту. Он может сначала не воспринять улучшения, но вот потом ка-а-ак распробовать.

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

Надеюсь, эта история вдохновит вас на крупную автоматизацию в своей компании или поможет критически посмотреть на некоторые процессы. Если у вас остались вопросы о том, как мы реализовали эту автоматизацию, задавайте вопросы в комментариях. Буду рада ответить!

Product&data команда СберМаркета ведет соцсети с новостями и анонсами. Если хочешь узнать, что под капотом высоконагруженного e-commerce, следи за нами в Telegram и на  YouTube. А также слушай подкаст «Для tech и этих» от наших it-менеджеров.

Комментарии (11)


  1. kasiopei
    30.08.2023 13:40
    +2

    Ну не создавайте суржик


    1. vika_bolshova Автор
      30.08.2023 13:40
      +1

      Привет! Суржик у нас тоже есть, но диспатч – это другое)


      1. spiritus_sancti
        30.08.2023 13:40
        +2

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

        флоу = поток заказов

        e-com = электронной торговле

        Кейс = пример

        продакт-лид = руководитель направления

        ретейлеры = перепродавцы

        бренды = торговые марки

        Супервайзер = надсмотрщик, контроллер, инспектор

        Диспатч = система распределения заказов

        слот = период

        оффер = предложение

        энейблером = вы и сами написали - необходимым компонентом.

        фичей = возможностей, функций

        После прочтения поста у меня возникли следующие вопросы:

        1. Как ваша система учитывает режим труда и отдыха и количество задач на одного сборщика? Надеюсь вы не обманываете государство на налоги подменяя трудовые отношение договорами ГПХ эксплуатируя сборщиками самозанятых?

        2. Как ваша система учитывает охрану труда, дабы не выродиться в потогонную систему, как в амазоне, где сборщики заказов на складе вынужденны принимать обезболивающее чтобы хоть как то существовать? Как вы контролируете, что параметры бонуса за скорость выходят за пределы, когда их можно выполнять без опасности для здоровья?

        3. Каким образом вы гарантируете своим сотрудникам, что ML модель не подкручивается вручную ради оптимизации выплат?


        1. vika_bolshova Автор
          30.08.2023 13:40
          +2

          Язык в пределах профессионального сленга)

          Помимо элементарно человеческого отношения к нашим сборщикам нам даже с точки зрения бизнеса выгоднее удерживать людей, чем нанимать новых. Поэтому для любой активности есть всегда контр-метрика — churn rate или отток. По нему мы понимаем, негативно или позитивно влияем на их опыт и принимаем решения, если видим негативный тренд.


          1. spiritus_sancti
            30.08.2023 13:40

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

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


  1. zubrbonasus
    30.08.2023 13:40

    Интересно там у вас, в СберМегамаркет! )))


    1. Sbermarket
      30.08.2023 13:40
      +2

      Интересно! Но мы СберМаркет :)


      1. zubrbonasus
        30.08.2023 13:40

        Простите. Ребрендинг в рекламе не был озвучен, поэтому помню вас как мега-маркет


        1. Sbermarket
          30.08.2023 13:40
          +1

          Это не ребрендинг, мы два разных сервиса. МегаМаркет — это интернет-магазин широкого профиля, а к нам стучитесь, если захотит езаказать продукты из магазинов или еду ресторанов :)


          1. zubrbonasus
            30.08.2023 13:40
            +1

            Понял, спасибо!


  1. sneg2015
    30.08.2023 13:40

    Было бы здорово, если снимите блок по ip. Кажется единственный ecom кто так делает.