Что я уже делаю «не так» и почему

DataEngineeringВсе истории Shopp
Автор: 16.12.2018 No Comments

Если вкратце — я неправильно оцениваю время прототипирования и разработки минимально рабочего продукта (MVP). Когда я работал в Adidas Group над сайтами adidas.com и reebok.com, мои коллеги, очень сильные разработчики и продукт-спецы, научили меня очень многим вещам. Вот, например, что они говорили мне: «Планировать первый прототип или MVP — не значит, что продукт должен быть абсолютно сырым». Да, добрая часть функционала должна отойти на второй план, но первым делом необходимо позаботиться об архитектуре сервиса/приложения. Если я сделаю архитектуру для MVP слишком примитивной, я рискую полностью переписывать ее в случае масштабирования. Если я сделаю архитектуру слишком комплексной и сложной, я рискую потратить много сил и времени впустую (если MVP не зайдет).

Архитектура — принцип взаимодействия всех основных элементов сервиса/приложения. База данных, ячейки, API, структура, связь, микросервисы 😯

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

via GIPHY

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

  • 🕵🏻‍♀️ Поиск объявлений по ключевым словам
  • 📍 Сортировка объявлений по близости и релевантности к пользователю
  • 📦 4 ключевые операции с любым объявлением: «Спросить», «Предложить», «Купить» и «Оценить»
  • 💫 Максимально упрощенное создание объявления для любого пользователя: Заполнил поля, прикрепил фото и все! Объявление в базе. Дальше происходит магия на нашей стороне, о которой никто никогда не узнает 🤫:
    1. Изображения оптимизируются на сервере
    2. Текст + Название объявления проходят через систему машинного обучения на основе нейронных сетей (привет, neural recommender)
    3. Цена так же проходит через аналитические микросервисы, чтобы выявить «тренды» и «среднюю цену» на похожие продукты
    4. Кэширование
    5. 🎩 …
    6. PROFIT

Изначально этот список был то очень длинным, то очень примитивным, но у меня получилось сузить его до 4 основных для пользователя пунктов. Будем работать основываясь на этой золотой четверке. Спасибо, что дочитали. Подписывайтесь на рассылку, чтобы всегда быть в курсе 👇🏻