Сбермаркет

Усиливаем inhouse-команду foodtech-гиганта

Сбермаркет доставляет на дом продукты и бытовые товары из гипермаркетов и супермаркетов, таких как METRO, Ашан или Вкусвилл. Люди собирают корзину нужных товаров на сайте или в мобильном приложении, а дальше работают партнёры СберМаркета: сборщики ходят по магазину со списком и выбирают только самые свежие продукты, а курьеры доставляют готовый заказ на дом.

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

Задача — быстро включиться в работу продукта enterprise уровня

Из-за пандемии коронавируса в 2020-го году многие люди были вынуждены работать из дома или просто оказались в изоляции. Сбермаркет при этом получил возможность облегчить жизнь своим клиентам и кратно вырасти на рынке eGrocery за счёт притока новых пользователей.

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

Также предстояло выделить части проекта в отдельные сервисы, а значит и поработать над инфраструктурой — каждый отдельный микросервис должен быть обвязан кодом, должно быть настроено сетевое взаимодействие с другими частями.

У команды Evrone уже был опыт разработки масштабного foodtech продукта, ориентированного на доставку на дом, мы подходили по технологическому стеку. Наши специалисты успешно прошли серьёзные собеседования, и мы стали частью команды Сбермаркет.

Решение — универсальные senior-разработчики и тестировщики под любые задачи

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

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

Ручное тестирование и менеджмент знаний

Сбермаркет задал нам высокое требование к уровню специалистов. Это связано с тем, что на проекте много срочной работы и вовлечься в неё быстро может только senior-специалист — у middle для этого не будет нужного опыта. Кроме этого, у senior-QA в багаже много приёмов и хаков, тестовых карточек и сценариев, подходов к оптимизации задачи и знаний, какие кейсы необходимо обсудить с командой до начала разработки.

В лице наших QA-инженеров Сбермаркет получил как раз таких многопрофильных senior-специалистов. Они могут переходить из команды в команду, закрывать срочно возникающие потребности без потери времени.

Кроме непосредственно тестирования, мы помогали с задачами шаринга знаний. Поскольку вся компания динамично растет, то найм происходит быстро, и новых сотрудников нужно быстро подготовить к работе. Одна из наших QA-специалистов начала выполнять функции knowledge-менеджера.

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

Шаринг информации помогает сотрудникам прямо на старте: начиная с онбординга: когда в команде появляется новый специалист, он знает, где взять всё нужное для старта — состав своей команды, ее цели, OKR, список используемых на проекте инструментов, информацию о технологическом стеке, архитектуру, особенности деплоя, расписание созвонов и митингов. Также была отстроена система онбординга среди команд, и общая база знаний по QA, чтобы было удобно шарить знания с другими коллегами.

Данная система управления знаниями построена на базе Confluence.

Рутинные задачи на фронтенде

Специалисты Evrone начали работу над фронтендом с небольших рутинных задач — изменить текст, заменить картинки и анимации. Эта работа помогла познакомиться с кодовой базой, что пригодилось в задачах по рефакторингу.

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

Смена протокола аутентификации

Использовать номер телефона для входа в приложение безопаснее, чем пару «e-mail+пароль». Злоумышленники могут, например, получить доступ к вашему ящику через утечки других сервисов. Сейчас это невозможно, потому что для входа надо буквально держать телефон, на который приходит смс, в руке.

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

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

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

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

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

Создание подсистемы для AB-тестирования

Другая задача-вызов — создание подсистемы для AB-тестирования (которая, кстати, использовалась для тестирования аутентификации по коду из смс). Мы поучаствовали в создании её первой версии, буквально MVP, соответствущего требованиям продуктовых аналитиков. Конечно, существуют открытые решения, но их функциональности не хватало, поэтому руководство решило, что создание собственного имеет смысл.

Эту подсистему отладили на АА-тестах (проверка на правильность распределения пользователей) и запустили, она работает до сих пор и помогает аналитикам собирать данные.

Backend

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

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

Несмотря на то, что обе эти задачи решались «под капотом», они напрямую связаны с бизнес-результатами. Например, автоматизация логистики и доставки улучшит пользовательский опыт.

Кроме этого, наши специалисты помогают с разными API и переводом фронтенда админпанели в отдельное приложение.

Перевод админпанели с rails-шаблонов на react-приложение

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

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

Развиваем универсальный API для партнёров-ритейлеров

Ещё на бэкенде мы работаем над новым API для интеграции внешних партнёров, учитывая их потребности. Основные эндпоинты этого API связаны с процессингом заказа — создание, оценка, состояние, обмен информацией об оплате.

Кроме этого иногда мы помогаем решать проблемы наследования, так как ранние подходы могут просто не работать в новых условиях. За счёт такого рефакторинга мы получаем прирост в производительности.

Результат

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

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

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

Такой «рост» наших специалистов и прохождение достаточно серьёзных собеседований со стороны клиента говорит о том, что Сбермаркет получил в лице команды Evrone специалистов очень высокого уровня, у которых есть нужный опыт и насмотренность, чтобы видеть возможные ошибки в проектировании и создании сервиса. Мы никогда не стесняемся говорить о них, так как считаем, что вовлечение в задачи и продукт — часть нашей работы.

В планах — расширение команды с нашей стороны и участие в разработке микросервисов на Go, так как в нашем портфолио есть опыт применения этой технологии, например, в foodtech и fintech проектах.

Если вы ищете надёжных специалистов с опытом в E-grocery, который быстро войдут в рабочий процесс и усилят вашу собственную команду разработки — заполните форму внизу, и мы свяжемся, чтобы обсудить ваш проект.

Сбермаркет — сложный и большой проект, поэтому мы ждали от специалистов не только сильных технических навыков, но и желание погружаться в продукт, разбираться в нём с интересом. С этой точки зрения команда Evrone — отличный партнёр. Они не только выполняют поставленные задачи и помогают запускать новые функции, но и делятся глубокой экспертизой в разных направлениях: разработка, QA, knowledge management
Дмитрий Чудинов
Head of Frontend Сбермаркет
Связаться с нами
Нужна команда?
Давайте обсудим ваш проект
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.