Кейс 4fresh: как мы строили проект задом наперед

Перезапустить интернет-магазин в сжатые сроки, имея на руках только 30% обновленного дизайна для страниц второстепенной важности — задача со звездочкой. Особенно, когда из-за огромной нагрузки перестает хватать рук. Я Антон Фокин, CEO QTIM, и сегодня расскажу о том, как нам удалось перераспределить и увеличить ресурсы команды, а также совершить практически невозможное — выкатить этот проект вовремя!

Кейс 4fresh: как мы строили проект задом наперед

Дизайн за две недели до релиза

4fresh — один из самых больших в России интернет-магазинов экотоваров. С 2020 года мы работали на техподдержке и развивали сервис: дорабатывали сайт на Битриксе и мобильное приложение на Flutter.

В 2022 году руководство компании решило изменить концепцию и стать не просто интернет-магазином, а нео-маркетом с упором на реализацию товаров собственного производства. Для этого необходимо было изменить сайт. Редизайн клиент проводил инхаус: обновления коснулись не только внешнего вида, но и функциональности. Например, новая система вишлистов подразумевала возможность добавлять товары в разные папки и шерить каждую отдельно. Также планировалось перевести на снипетную систему каталог магазина — это когда каждая страница собирается как конструктор, из отдельных модулей (описание, отзывы, рекомендательный блок из Mindbox). Кроме того, нужно было разработать блог со статьями, подборками от привлеченных бьюти-блогеров с возможностью отслеживания обновлений и стриминговой площадкой на платформе.

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

Тут появилась первая «звездочка». Изначально визуалы были готовы только на 30% и не включали в себя страницы первостепенной важности. Два месяца мы получали их порциями, поэтому работали по следующей схеме: общаемся с клиентом, утверждаем формат итогового варианта и берем задачи в разработку. Самые важные макеты интернет-магазина, — главная и страница заказа, — у нас появились за 2 недели до релиза.

Так выглядела главная страница интернет-магазина раньше
Так выглядела главная страница интернет-магазина раньше
А так выглядит «главная» сейчас
А так выглядит «главная» сейчас

Без ТЗ результат — окэй

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

До релиза оставалось всего 1,5 месяца, а общее количество работы увеличилось на 70%. В общем, писать код сели все: от CEO до сотрудников, которые собирались в отпуск. Без шуток, кто-то отправлял последние реквесты из самолета, чтобы мы всё успели.

У нас была методика, и мы ее придерживались

Мы адаптировали изначальный запрос клиента под новые вводные. Чтобы успеть всё в срок мы работали с разными стеками технологий. Уже на старте было понятно, что проект достаточно объемный, поэтому мы планировали использовать два стека: PHP и NodeJS. Кроме того, у клиента был запрос на микросервисность, поэтому такой симбиоз помог нам быстрее выкатывать релизы.

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

  1. Привлекали аутстаф-разработчиков. Мы провели 20-30 собеседований и на этом решили отказаться от этой задумки — нужных навыков и гибкости у разработчиков не было.
  2. Перестроили найм внутри команды. После неудачного опыта аутстафа, мы решили увеличить inhouse-команду разработчиков. В связи с этим усилили поток поиска кандидатов: рассматривали специалистов с разным опытом и искали резюме на площадках Хабр.Карьера, Linkedin, в телеграмм-каналах.
  3. Перераспределяли ресурсы и вели мельчайшую декомпозицию. Темп работы был крайне высокий, а ситуация менялась на ходу. Чтобы всё успеть мы использовали подход мельчайшей декомпозиции: постоянно вносились и отслеживались любые изменения, а под каждую задачу точечно назначались специалисты из других проектов. Те, кто разбирался в платежных системах, занимались только платежными системами, кто владел навыками интеграции с 1C — отвечали только за неё и тд. Так нам удалось сбалансировать нагрузку внутри команды и двигаться быстрее по намеченному плану.
  4. Мотивировали сотрудников. Полностью избавиться от сложностей не удалось, и тогда приходилось уделять проекту больше времени — иногда рабочий день затягивался до 12-14 часов в день. Особенно это ощущалось в последние дни перед запуском сайта. Поддерживать сотрудников мы решили через увеличение зарплаты, а вовлечь команду в общий процесс помогли регулярные встречи, созвоны и личное участие CEO в проекте. На последних этапах работы чувствовалось, что разработчики начинают выгорать — именно поэтому дополнительная финансовая и моральная поддержка были так необходимы.

В общей сложности для реализации всех задач было задействовано 35 человек: в начале команда состояла из 9 специалистов, но под конец постоянно работало 25. Если хотя бы один из них был бы не на своем месте, то выкатить проект вовремя у нас бы не получилось.

Что в итоге

Меньше чем за полгода мы с нуля переписали интернет-магазин с новым дизайном и новой концепцией.

Финальный функционал выглядел так:

Избранное. Товары не просто можно отмечать сердечком, но и добавлять их в разные папки или составлять публичные списки — вишлисты. Всего внедрили 40 разных макетов для избранного, которые могут использовать покупатели.

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

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

Вот так выглядел каталог в прошлой версии интернет-магазина
Вот так выглядел каталог в прошлой версии интернет-магазина
А так он выглядит сейчас
А так он выглядит сейчас

Комьюнити. Мы создали блог по типу Т—Ж, в котором есть потоки, стримы, комментарии и подборки с рекомендациями от блогеров. Пользователи могут подписываться друг на друга и выкладывать статьи. Пока наполнением занимаются администраторы, но в будущем планируется своя система оценок: за комментарии или статьи будут начисляться бонусные баллы для дальнейших покупок.

Кейс 4fresh: как мы строили проект задом наперед

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

1313
1 комментарий

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