Привет, Хабр! Меня зовут Артём Селихов, я менеджер по продукту в команде СберМаркет и отвечаю за управление программными продуктами для операционных процессов, которые мы разрабатываем для наших партнёров — курьеров и специалистов по закупкам.
В первый пост Мы уже рассказывали о том, как за последние месяцы СберМаркет вырос в несколько раз, а доставка продуктов стала услугой для жителей всей страны.
Сегодня я хочу поговорить о том, что у нас «под капотом», какие подходы мы используем для оперативного обнаружения проблем и балансировки процессов.
Этот пост будет полезен тем, кто разрабатывает системы взаимодействия с партнерами, а также интересуется сложными задачами в области эффективности Маркетплейса.
Желающим прочитать о наших многочисленных задачах в области Data Science приглашаем под кат.
СберМаркет начал работу как стартап в сфере eGrocery под названием Instamart. Мы изначально взяли за образец операционную модель североамериканской компании Instacart и создали собственное видение службы доставки.
И СберМаркет, и Инстакарт покупают для вас продукты с полок выбранного магазина, а затем доставляют их вам домой.
При этом Instacart успешно конкурирует с Amazon, Wallmart и Target в США.
И СберМаркет, соответственно, с Утконосом, Перекрестком и другими российскими интернет-ритейлерами, предоставляющими услуги доставки.
Однако самое интересное с точки зрения разработчика то, что доставка с полки магазина — это не только доставка.
Такой бизнес был бы невозможен без активного участия специалистов по закупкам, которые ежедневно тщательно собирают десятки тысяч заказов из розничных магазинов более чем в 100 городах России.
В то же время нам предстоит взять на себя роль рынка, решая проблемы выравнивания спроса и предложения.
Мы разработали собственные методы, которые позволяют достичь баланса между количеством поступающих заказов от клиентов и наличием исполнителей, обеспечивая непрерывность работы.
При этом мы стремимся гарантировать максимальное удобство для клиента при оптимизации затрат. В этом посте я хотел бы рассказать о наших проектах, которые помогают создавать качественный сервис для клиентов, сохраняя при этом эффективность бизнеса.
Некоторые из них уже реализованы, а другие находятся в стадии разработки и ждут своих героев, которые помогут воплотить перспективные концепции в код.
СберМаркет - механизм работы с заказами
Когда клиент СберМаркета оформляет заказ на сайте или в приложении, он видит временные интервалы, в которые он может получить свой заказ.
Некоторые интервалы могут быть недоступны для выбора.
Это связано с тем, что в настоящее время нет доступных ресурсов для сборки и доставки.
Это серьезное ограничение для клиента, ведь если не будет удобного времени доставки, он может вообще отказаться от заказа, чего нам, естественно, не хочется.
Чтобы решить эту проблему, мы решили построить полноценную систему эффективности Маркетплейса.
Вопрос баланса спроса и услуг необходимо решать на трех разных уровнях:
- Прогнозирование рынка – долгосрочное планирование (месяц и более);
- Планирование поставок – краткосрочное планирование (на следующую неделю);
- Реальная емкость – оперативное планирование в течение дня.
Общая схема эффективности Маркетплейса Для оценки ситуации мы используем следующие метрики:
- Доступность − количество часов до следующего доступного временного интервала
- Использование временных интервалов − заполненность выделенной мощности на временные интервалы
- Потерянные поставки ) − % брошенных корзин из-за отсутствия слотов
Чтобы понять всю систему, вам необходимо точно понимать, как работает каждый ее сегмент. Для этого мы сначала рассмотрим прогнозирование на рынке.
Прогнозирование рынка
Долгосрочное планирование является важнейшей задачей.
Чтобы клиент мог сделать заказ в любое время, нам необходимо спрогнозировать наш спрос на ближайшие пару месяцев и привлечь достаточное количество партнеров для обработки заказов.
Этот сегмент включает в себя несколько модулей: Прогнозы спроса t отвечает за прогнозирование спроса.
Система учитывает % доступности мест для заказа в конкретном магазине и прогнозирует, каким был бы спрос, если бы доступность была выше.
То есть модуль определяет, какой процент временных интервалов был доступен клиенту из всех возможных.
Вот как мы получаем метрику Идеальный уровень спроса — это восстановленный спрос с учетом клиентов, которые не нашли удобное время доставки и бросили корзину.
найм ОПС говорит нам, сколько FTE (штатных сотрудников) нам нужно в каждой точке для нашего идеального спроса.
Эта система также помогает определить, какой специалист нам нужен: курьер, специалист по закупкам, кладовщик в зоне самовывоза, упаковщик.
Прием специалистов происходит на контрактной основе как самозанятые.
Таким образом, для организации работы сервиса мы выбрали что-то между почасовой схемой подбора как в Instacart/Delivery Club и полным наймом.
При этом мы работаем с партнерами как на долгосрочной основе, так и под выполнение конкретных заказов.
Например, в некоторых случаях «Ситимобил» может доставить любой заказ вместо курьера-партнера, помогая нам покрывать пики спроса.
Дистанционное обучение помогает нам решить стратегическую задачу по расширению партнерской сети.
Ведь в конечном итоге мы стремимся к тому, чтобы человек мог начать с нами работать как можно быстрее.
В идеале мы хотим, чтобы обучение проходило прямо внутри нашего мобильного приложения для партнеров (так называемое Shopper App).
Сейчас эта система находится в стадии разработки, но ее задачи уже ясны.
Мы хотим провести небольшой тест, чтобы показать, готов ли партнер собирать или доставлять заказы клиентам.
Идея состоит в том, чтобы обеспечить непрерывное обучение наших партнеров для улучшения качества их работы.
И если мы понимаем, что партнер не смог сразу вникнуть во все тонкости выбора, например, авокадо, система должна предложить ему пройти этот курс еще раз.
Краткосрочное планирование (Планирование поставок)
Основная задача сегмента «Планирование поставок» — запланировать привлечение такого количества партнеров на каждый день недели, чтобы полностью покрыть ожидаемый спрос.
На этом горизонте система прогнозирования спроса уже планирует не по дням, но и по часам суток, так что привлечение нужного количества партнеров дает возможность компенсировать ежедневные колебания спроса.
Как правило, необходимо учитывать утренние и вечерние пики.
Система управления персоналом (WMS) рассказывает нам, сколько партнеров и в каких ролях должно выйти и начать работу над заказами в каждый конкретный день недели.
Ключевой метрикой для этого сегмента является Загрузка персонала (соотношение доступных нам партнеров по доставке и сборке к необходимому уровню).
Если показатель ниже 100%, то мы сталкиваемся с ситуацией неукомплектованности кадрами.
Если он больше 100%, то мы выводим людей с резервом (переукомплектованными).
И то, и другое вредно для бизнеса, поэтому WMS должна постоянно стремиться приблизиться к идеальному уровню рабочей нагрузки команды.
Для решения этой проблемы можно использовать системы известных производителей.
Прямо сейчас мы взвешиваем все «за» и «против», чтобы сделать выбор между адаптацией готового решения и его разработкой самостоятельно.
Система планирования мощностей Выполняет математические расчеты для управления доступностью.
Чтобы упростить их, мы используем понятие Timeslot limit (максимально возможное количество «средних» заказов, которые мы можем взять на себя за заданный интервал времени, чтобы не нарушать свои обязательства перед клиентом).
Данный показатель определяется исходя из количества партнеров, которых нам удалось запланировать и привлечь благодаря работе системы управления персоналом, и их средней производительности.
Сейчас система планирования мощностей находится в состоянии модели (sql-based model), и мы как раз ищем талантливого разработчика, который смог бы «отлить» ее в код.
Реальная емкость
Каждый день в работе службы доставки возникают дополнительные переменные, и это требует особой гибкости от нашей команды, ведь планы приходится менять в режиме реального времени.
Например, часто бывает так:
- Клиент хочет разместить заказ на следующий час.
В этом случае нам нужно дать ему возможность заказать, если у нас есть ресурсы для его выполнения.
- Перенос заказа – тоже типичное событие, и в этом случае нужно запланировать разборку и сборку заказа в другое время, а значит найти для этого необходимые ресурсы.
- Всегда существует вероятность того, что один или несколько партнеров не придут на работу в назначенное время.
Надо составить план действий и на этот случай :)
- А иногда партнер физически не может доставить именно такой заказ (из-за габаритов, веса, расстояния и т.д.), и такие ситуации необходимо решать как можно быстрее.
Партнеры могут выйти на работу раньше или позже назначенного времени, а могут и не выйти на работу вообще.
Они могут сообщить об этом или оказаться «вне зоны действия сети».
Мы рассматриваем все варианты, и фактическое наличие людей всегда отличается от запланированного.
Он начинается и заканчивается регистрацией входа в смену и окончания смены.
Отправка заказов в режиме реального времени - это самое сердце нашего сервиса.
Система состоит из двух взаимосвязанных модулей, каждый из которых решает свою задачу, чтобы в совокупности обеспечить максимальную автоматизацию бизнес-процессов: Планирование маршрута автомобиля обеспечивает маршрутизацию заказов.
Как правило, наш курьер доставляет 1-2 заказа на легковом транспорте (велосипед, скутер), до 7 заказов на легковом автомобиле и до 20 на грузовом.
При планировании на первый план выходят логистическая эффективность полета и минимизация задержек.
Для этого система может учитывать множество факторов реальной логистики, и вот лишь основные из них:
- выбранное окно доставки заказа;
- приоритет заказа (выделение заявок, на которые мы точно не хотим опоздать);
- в какое время будет собран заказ (с учетом того, опаздывает или опережает сборка);
- каким видом транспорта лучше всего доставить заказ (легкий, обычный и тяжеловесный заказы);
- каков объем и вес каждого заказа, какой автомобиль в него входит;
- где находится водитель, когда заканчивается забронированное время аренды автомобиля.
Пример маршрутного листа с точками на картах Яндекса Отправка сборки в режиме реального времени (диспетчеризация сборки заказов) выполняет задачи, полностью аналогичные маршрутизации заказов, только с точки зрения их сборки и упаковки.
На основе информации о запланированных рейсах система предлагает оптимальную последовательность сборки заказа с учетом опыта каждого конкретного партнера.
И сейчас мы работаем над развитием этой системы.
Маршруты полетов и последовательность сборки пересчитываются несколько раз в час, чтобы своевременно учесть все изменения, произошедшие в системе, и информацию из внешнего мира.
При этом фиксируются ближайшие погрузочные рейсы для обеспечения своевременной сборки и отгрузки.
Будущие маршруты доставки постоянно оптимизируются, и основной задачей системы диспетчеризации сборки (как зависимой системы) остается обеспечение максимально эффективной и своевременной сборки заказов к моменту вылета рейсов.
Магазин МЕТРО рейсы Ижевск.
Часы работы = (Доступная мощность – время обработки заказа > 0? true: false)
Единая система
Концепция эффективности Marketplace объединяет три компонента, которые помогают нам прогнозировать спрос, планировать привлечение партнеров и реагировать на ситуацию в режиме реального времени.С ростом потока заказов задачи, решаемые в рамках разработки этих систем, становятся все более сложными и нетривиальными.
При, казалось бы, очевидной задаче доставки с полок магазинов, построении по-настоящему оптимальных бизнес-процессов с более чем 20 тысячами приложений в день, от разработчиков также требуются навыки в области AI и ML. Именно поэтому мы продолжаем нанимать разработчиков, способных решать сложные задачи, связанные с планированием, прогнозированием и обработкой больших данных в оперативной сфере.
Конечно, можно рассказать обо всех модулях Marketplace Efficiency более подробно, а также о подводных камнях, возникающих на разных этапах разработки системы и ее интеграции с другими ИС в СберМаркете.
Поэтому буду рад, если вы поделитесь своими вопросами и мнением в комментариях.
Теги: #Управление проектами #Управление электронной коммерцией #Большие данные #Управление продуктами #электронная коммерция #Разработка для электронной коммерции #сбермаркет #сбермаркет #сбермаркет #доставка #eGrocery
-
Palantir: Как Обнаружить Ботнет
19 Oct, 24 -
Что Было Бы Правильным Сделать В 2008 Году?
19 Oct, 24