Оптимизация WMS для 12STOREEZ
12STOREEZ — российский бренд одежды, основанный в Екатеринбурге девять лет назад. В 2020 году марка вышла на глобальный рынок. Сегодня бренд насчитывает более 45 магазинов в России и за ее пределами, российский и международный сайты, и свои приложения для iOS и Android.
Главное о кейсе
- Определились с составом и вывели команду за две недели
- Специалисты работали на протяжении пяти месяцев до закрытия обозначенного бэклога
- Вместе с инхаус-командой провели рефакторинг самописнойWMS-системы и обновили стэк: с Python и VueJS перешли на Angular + NestJS
Задача
Развитие бизнеса в 2020 году привело к появлению самописной WMS-системы на Python. Параллельно команда искала коробочное решение для управления складом. Но готовые продукты не отвечали высоким требованиям бренда. Так возникла потребность разработать своё решение, которое учитывало бы потребности клиентов и бизнеса.
На тот момент IT-отдел 12STOREEZ состоял всего из 12 человек, которые поддерживали и развивали две версии сайта, внутренние сервисы, интеграции со сторонними приложениями. Добавление к этому разработки сложной WMS-системы повлияло бы на критические процессы.
К нам, в Holyweb, команда 12STOREEZ обратилась в 2021 году после тщательного рассмотрения альтернатив: найм в штат, аутсорс, и аутстафф-специалисты, остановившись на последнем.
«Для штата у нас не было понимания, что делать с командой после завершения работы над WMS. Аутсорс не устроил тем, что там не всегда хватает погружения в бизнес-процессы компании, а в нашем случае они требовали тщательной проработки.
Поэтому мы стали рассматривать сотрудничество с аутстафф-специалистами — по сути, это аренда эксперта на нужное время под проект.
При выборе подрядчиков мы обращали внимание не только на репутацию, но и на другие важные критерии: скорость закрытия нужных нам вакансий, квалификацию предлагаемых специалистов, качество коммуникации на этапе переговоров. Так мы и встретились с Holyweb» — Руслан Жубанищев, TeamLead 12STOREEZ
Важные критерии: скорость закрытия вакансий, квалификация специалистов, коммуникация в переговорах. Holyweb оправдали ожидания
Процесс
Система управления складом – WMS – должна поддерживать несколько основных процессов:
- приемка товара,
- хранение,
- перемещение товара внутри склада,
- сборка и упаковка заказов,
- отгрузка товара
- Периодическая инвентаризация.
Естественно, система должна не только решать бизнес-задачи, но помогать людям, максимально облегчая их труд – например, напоминать о незакрытых задачах на день, о специфике хранения тех или иных вещей.
Сотрудник, который работает на определенной роли, должен взаимодействовать только с теми блоками, которые нужны ему в рамках выполнения задач. Для этого в системе должны быть настроены политики доступа и отдельные интерфейсы рабочих мест для каждой роли.
Руководителям направлений, смен, начальникам складов и менеджерскому составу в целом нужна статистика и инструменты, которые помогают оптимизировать слабые места в работе.
Изначально команда планировала переписать существующее решение с улучшениями в логике и процессах на новую технологическую базу: заменить Python и VueJS на связку Angular + NestJS. Это решение позволило бы вести разработку в едином репозитории, упростить обмен между фронтом и бэком благодаря единому способу описания типов данных с помощью TypeScript.
В реальности действующие процессы постоянно меняются — и поэтому продукт создавали полностью заново, опираясь на наработки начальной версии.
Чтобы структурировать работу и вносить изменения постепенно, мы использовали технологию Module Federation, которая позволила разбить всю клиентскую часть на микро-фронтенды, которые можно активировать и отключать по необходимости. Команда писала фронтенд на Angular и по частям внедряли в кодовую базу на Vue. Бесшовный переход удался с помощью Ngrx внутри микро-фронтендов – библиотеки для работы с состоянием приложения.
Это также позволило реализовать принцип отказоустойчивости: если упадет сервер с Angular, то по умолчанию включится весь старый функционал. Для этого разработали feature-toggle для выборочного подключения отдельных модулей.
Бонус — можно внедрить новый функционал на Angular, но скрыть его до лучших времен.
Проект 12STOREEZ – новый, модный, что отразилось и на технологическом стеке. Сервисы развернуты на мощностях облачного провайдера, упакованы в оркестрируемые Kubernetes Docker-контейнеры, CI/CD на базе Gitlab CI.
В результате имеем высокую доступность сервисов, легкое горизонтальное масштабирование при увеличении нагрузки — и используем столько ресурсов, сколько нужно в настоящий момент.
И приятное дополнение: благодаря усилиям 12STOREEZ и Holyweb, WMS-система получилась user friendly, повторяя дизайн и концепцию оригинального сайта.
Результат
Вместе с Holyweb, команда 12STOREEZ получила современный IT-продукт, решающий потребности бизнеса.
WMS-система помогает эффективнее принимать и учитывать товар, подбирать упаковку в зависимости от категории.
Чтобы было особенно ценно при работе — это связь с ребятами на проекте, которая никогда не ограничивалась формальными 8 часами в день: они всегда были на связи и по-настоящему вовлекались в процесс
— Руслан Жубанищев, TeamLead 12STOREEZ
Команда Holyweb помогла с экспертизой в Python и VueJS при проектировании архитектуры, багфиксе, рефакторинге и разработке новых фичей в системе управления складом. Итоговый продукт вобрал в себя многолетнюю экспертизу бренда в фешн-ритейле и отразил ценности компании.
«От нас требовалось подключить разработчиков с опытом работы в условиях сжатых сроков и с верхнеуровневым описанием задач. Тех, кто может быстро адаптироваться и показать результат.
За две недели мы определились с составом команды, согласовали документы и приступили к работе. Все специалисты участвовали в проекте на протяжении пяти месяцев, пока не был закрыт обозначенный бэклог» — Глеб Корсунов, директор по развитию Holyweb