Evrone 23 мая 2023

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

Рассказываем о нашем сотрудничестве со СберМаркетом

Задача и причина

Задача:

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

Причина:

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

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

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

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

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

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

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

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

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

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

СберМаркет задал нам высокое требование к уровню специалистов. Это связано с тем, что на проекте много сложных технических задач, и вовлечься в них быстро может только senior-специалист — у middle для этого не будет нужного опыта. Кроме этого, у senior-QA в багаже много приемов и навыков, например: понимание логики работы, узких мест и особенностей работы различного функционала. Evrone предоставил СберМаркету как раз таких многопрофильных senior-специалистов. Однако, даже senior QA-инженерам нужно учиться и расширять свои области знаний. И мы помогаем им в этом. Так, для одного из наших специалистов мы оплатили курс по работе с Kibana. Это панель визуализации данных Elasticsearch, которая помогает отслеживать потоки внутри системы в виде диаграмм. 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Backend

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

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

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

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

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

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

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

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

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

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

Результат

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

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

Результат

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