Запускаем новые продуктовые вертикали за 2 недели вместо 6 месяцев: возможности и ограничения конструктора витрин

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

Давайте вместо того, чтобы решать каждую продуктовую задачу по отдельности, сделаем инструмент, который поможет системно решать целый класс задач. Унифицируем, шаблониризуем и автоматизируем работу с похожими продуктами – и за счёт этого сможем запускать новые продукты за 2 недели вместо 6 месяцев. Но будем помнить, что всякая унификация имеет пределы – не только помогает, но и ограничивает.

Меня зовут Юра, я Delivery Manager в Сравни. Сегодня расскажу вам, как мы делали конструктор для запуска и управления тематическими разделами на нашем маркетплейсе.

В Сравни мы помогаем людям получить финансовые, страховые и образовательные  услуги – так, чтобы было быстро, просто и честно. Пользователи могут сравнивать предложения от разных компаний по выбранной тематике: займы, кредитные карты, ОСАГО и другие продукты. Раздел маркетплейса, посвященный одной теме, мы называем витриной. Если посмотреть на Сравни как на супермаркет финансовых и страховых услуг, то витрина – это тематический прилавок.

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

Каждую правку нужно было вносить в отдельном репозитории. Например, если нужно было что-то изменить сразу для всех витрин (добавить что-то в дизайне, внедрить что-то по аналитике, изменить логику), нужно было ставить отдельную задачу разработчику и проделывать это для каждой витрины. 

Добавление новых фичей или правки могли занимать до 2-3 месяцев (и вряд ли меньше недели). На запуск новой витрины могло уходить до полугода.

Ещё из минусов:

  • архитектура: код витрин наследовал архитектуры нескольких эпох – с вытекающими отсюда “внезапными” багами;

  • зависимости: для каждой витрины использовался уникальный набор пакетов – сложнее обновлять.

Мы решили это изменить. 

Новый подход к витринам: конструктор 

Задачу мы сформулировали так:

  • ускорить разработку: переиспользуем готовые решения между витринами;

  • унифицировать дизайн: делаем единый UX на всех витринах с помощью дизайн-системы;

  • добавить масштабируемости: упрощаем создание новых витрин.

Ключевая идея изменений была в том, чтобы сделать единый сервис, в котором витрины собирались и редактировались бы не разработчиками, а бизнес-аналитиками. Срок на разработку – 1,5 месяца, так договорились с бизнесом. Мы взялись за констуктор витрин.

В первой версии новые витрины были устроены довольно просто: админки пока что не было, база данных была в Google Sheets. Минимально необходимый набор фичей: фильтры (чтобы посетители могли сравнивать офферы по финансовым и страховым услугам), SEO (нас должно быть легко найти), интеграция с рекламной админкой (контроль над промо нужен с самого начала) и системой аналитики (измеряем всё – идеологическая штука).

Создание первой версии заняло у нас месяц: запустили на проде четыре новые витрины.

Во второй версии мы первым делом переехали с Google Sheets на нормальную базу данных. Расширили функциональность, добавили ещё витрины.

Первый и второй подход к новым витринам
Первый и второй подход к новым витринам 

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

Что под капотом у конструктора: JSON для всего 

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

Пример файла JSON-конфигурации
Пример файла JSON-конфигурации

Внешние сервисы – SEO, реклама, аналитика, UI – снова через JSON.

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

Отсюда вытекает важное требование для коммуникаций в команде: когда Product Owner какой-то витрины придумывает новую фичу, важно как можно раньше рассказать о ней всем, кто отвечает за другие витрины – чтобы они с минимальными правками могли переиспользовать её у себя.

Кто все эти люди: команда 

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

В команду входят:

  • 4 инженера

  • 3 бизнес-аналитика

  • 1 дизайнер

  • 2 продуктовых аналитика

  • 1 продакт-оунер

Зачем столько бизнес-аналитиков? Тут важная идеологическая штука про конструктор: тотальный JSON для всего задумывался, чтобы большинство задач аналитики могли решать без участия разработчиков, путем редактирования конфигов. Сейчас доля таких задач – примерно 90%. Те доработки, которые до конструктора занимали два месяца, теперь требуют двух дней (а иной раз 20 минут).

Это накладывает дополнительные требованиям к навыкам аналитиков: они должны уметь решать технические вопросы самостоятельно. 

В зону ответственности бизнес-аналитиков входят:

  • логика работы витрины; 

  • инициирование доработок, взаимодействие с дизайнерами, разработчиками, продактами;

  • JSON-конфигурация (технические скиллы нужны аналитику в этой части).

Первым бизнес-аналитиком в команде стал наш коллега из команды SEO, затем мы взяли двух выпускников Бауманки. “Технические навыки бизнес-аналитика” – может прозвучать страшно, но на деле вполне реально.

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

Границы применимости конструктора: что может пойти не так 

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

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

Можно обобщить: когда для витрины растут потребности в кастомности, это может перестать бесшовно вписываться в соседние витрины по другим тематикам. 

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

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

Унификация, но с оговорками: чему нас научил опыт с конструктором витрин

Результаты, которые принёс нам конструктор, можно сформулировать так:

  • кардинально сократили время на создание новых витрин: вместо 4-8 недель целой команды – в среднем 2 дня одного аналитика;

  • в уже запущенные витрины можно вносить изменения без разработчиков;

  • сделали общий дизайн, за которым довольно просто присматривать;

  • используем единую кодовую базу (одни и те же бандлы для всех витрин); имеем довольно быстрое и простое обновление пакетов;

  • одна фича – одна задача; за счёт этого больше прогнозируемости по доставке на прод.

Важное: удачные идеи из одних бизнес-вертикалей быстрее переиспользуются в других – помогает быстрее расти в выручке.

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

На новых витринах мы наблюдаем прирост трафика:

Но вместе с профитом идут и ограничения. За счёт конструктора витрины наследуют не только фичи, но и надстройки, не все из которых необходимы для каждой отдельно взятой витрины: бывает “балласт”. Все тематики разные, везде свои особенности – ряд продуктов перестают укладываться в шаблон.

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

Так что мы на этом не останавливаемся: делать новые витрины ещё быстрее – точно можно. Продолжаем экспериментировать.  

Источник: https://habr.com/ru/companies/sravni/articles/735822/


Интересные статьи

Интересные статьи

История о том, как мы хотели сделать технический проект за пару месяцев, но закончили через восемь. По пути прошли демотивацию всей команды, выгорание и желание делать что угодно, кроме этого проекта....
Искусственный интеллект (ИИ) и машинное обучение (МО) становятся очень популярными. Технология ИИ уже во всю используется в самых разных сферах - от беспилотных автомобилей до здравоохранения, финансо...
iOS 16 и watchOS 9 вышли для всех – что внутри новинок, прошла презентация Apple, стало известно больше подробностей о новинках поступающих в продажу, что мы потеряли после мероприятия из продуктов ко...
Мы продолжаем цикл статей о нашей новой линейке систем хранения данных PowerStore. Этот материал посвящен уникальному функционалу, позволяющему запускать на борту системы пользовательские...
Вояджер-2 сделал эту фотографию Нептуна в 1989 году. Используя данные исследования темной энергии (DES), ученые обнаружили более 300 транс-нептуновых объектов (TНO) — малых планет, располо...