Привет, Хабр! Меня зовут Виктор Кононенко, я технический директор Food.ru (Х5 Медиа).
Мы в X5 Group запустили новый ресурс, посвященный еде и кулинарии.
Расскажу о команде, стеке технологий и наших рабочих процессах.
Идея
Когда люди говорят с вами о корпоративных СМИ, о чем вы думаете? Правильно, скучная ветка о ваших достижениях и прорывах.Настоящие СМИ, даже созданные компанией, должны приносить пользу читателям.
Поэтому на Еда.
ру рассказываем о здоровом питании, пищевых привычках и делимся рецептами.
Затрагиваем и смежные темы – например, обсуждаем бытовую технику для приготовления пищи.
Еще до реализации проекта мы детально изучили рынок.
В российском сегменте есть несколько подобных ресурсов, большинство из них работают уже более десяти лет. Срок немаленький, поэтому до сих пор работают на устаревших технологиях, а качество размещаемого визуального контента иногда оставляет желать лучшего [камеры с тех пор прошли долгий путь].
Мы также задавались вопросом, стоит ли нам, крупному ритейлеру, говорить о таких простых вещах, как рецепты.
Международный опыт показывает, что да, оно того стоит. Например, одна розничная сеть в Германии позволяет своим клиентам формировать корзину продуктов по рецепту и заказывать доставку на дом.
С самого начала мы поняли, что хорошее медиа – это не только качественный контент, но и передовые технологии «под капотом».
Технологии
По сути, Food.ru — стартап внутри X5 Group. Мы видим в этом плюсы.У «большого брата» есть множество цифровых решений, из которых мы, как кубики, собрали основу собственной инфраструктуры — использовали облако, настроили CI/CD, интегрированный мониторинг, систему централизованного логирования и множество других централизованных платформ.
После того, как фундамент был заложен, мы перешли к выбору архитектурных решений непосредственно на уровне разрабатываемого программного обеспечения.
В случае с мобильными платформами мы пошли по пути нативной разработки, чтобы обеспечить дополнительную стабильность и производительность приложений, упростить последующее добавление новых функций, а также поиск сотрудников.
Сложнее оказалось выбрать архитектуру для веб-версии Food.ru. Мы хотели использовать модель СПА .
Он позволяет нам реализовать максимально дружелюбный пользовательский интерфейс и быструю работу витрины даже на низкой скорости соединения, но нас остановили потенциальные проблемы с SEO-оптимизацией.
В результате плюсы перевесили минусы — SPA решили построить на React, используя Next.Js для серверного рендеринга.
В остальном мы постарались взять максимально стандартный набор.
Такие как PostgreSQL в качестве основной СУБД и Python (для бэкенда).
Спойлер, за год работы мы столкнулись с несколькими неприятными моментами от Next.js. В какой-то момент даже начали обсуждать альтернативы.
Но в итоге мы продолжаем с ним работать.
В процессе разработки мы столкнулись с рядом трудностей.
Интеграция с инфраструктурой X5 Group упростила старт, но на расстоянии нам всё равно пришлось бороться с бюрократическими процессами.
Согласование отдельных вопросов со службой безопасности и отделом закупок могло затянуться на месяцы.
Это нормально для корпорации с огромными ресурсами, но неприемлемо для стартапа.
Проблема решилась благодаря поддержке коллег.
Они быстро помогли разработать, согласовать и реализовать нетипичное для того времени архитектурное решение.
Впоследствии он стал прототипом одной из стандартных архитектур, доступных для всех проектов, расположенных по схеме X5. Суть решения заключалась в создании нестандартной конфигурации DMZ. Это позволило минимизировать количество ресурсов инфраструктуры, необходимых для пропуска большого объема трафика.
Это также дало команде разработчиков максимальный уровень свободы на этапе реализации.
Позволили решить проблемы с базовым уровнем безопасности, хранением персональных данных и максимально простым доступом к сервисам инфраструктуры Х5. В наших рамках мы могли решить любые локальные вопросы, не требующие глобального пересмотра архитектуры и дополнительного процесса согласования.
Например, нам не хватало гибкости в управлении базами данных и S3-совместимым хранилищем.
Мы сами их развернули.
Хотя изначально планировалось использовать централизованные решения, которые на первом этапе могли существенно ускорить процесс запуска проекта.
В ходе проекта мы уделяем большое внимание качеству фотоматериалов.
Теперь у нас есть сотни тысяч изображений.
Мы храним их в максимально доступном качестве.
На этапе проектирования мы сразу предусмотрели использование CDN и несколько уровней кэширования контента.
Проблема с форматированием изображения решена с помощью imgproxy. Решение на тот момент казалось спорным, но в ходе эксплуатации оно полностью себя оправдало.
В качестве CDN мы взяли одно из решений от подрядчиков, которые на тот момент уже работали в Х5. Это сэкономило массу усилий при заключении нового контракта.
Что в реалиях крупной корпорации задача может и не очень сложная, но уж точно не быстрая.
Кто пробовал, тот знает, о чем я говорю.
Определенные сложности возникли с набором команды, так как мы делали это в авральном режиме — параллельно с обсуждением архитектуры и написанием кода.
Расскажу немного о том, как этот процесс работает у нас.
Люди
Мы ищем специалистов в нашу команду всеми доступными способами (разумеется, только легальными).В этом случае очень помогают возможности корпорации, наработанная практика и связи.
Мы используем все — нетворкинг, агентства и даже наняли нескольких ключевых сотрудников по модели аутстаффинга.
Времена сейчас трудные.
Рынок высококонкурентный, поэтому мы работаем сразу по всем направлениям.
Ко всем относятся одинаково: кандидаты проходят до трех этапов отбора.
На первом собеседовании мы оцениваем soft скиллы и проводим техническое собеседование на высшем уровне.
Если по итогам собеседования остались вопросы, мы проводим второй этап – техническое собеседование.
Третья встреча проводится по желанию заявителя.
Мы не только ищем людей в нашу команду, но и люди стараемся найти комфортное место для работы.
Мы даем кандидату возможность выбрать несколько ролей в команде и организовать встречу.
Там они смогут познакомиться с будущими коллегами.
Задавайте интересующие их вопросы и принимайте окончательное решение.
В последнее время на рынке набирает популярность техника одо [предложение на один день].
Мы тоже практикуем такой подход. Если уже на первом этапе диалог развивается и становится понятно, что проводить дополнительные этапы нет смысла, сразу переходим к этапу обсуждения предложения.
Наша практика показывает, что такой подход дает хорошие результаты, хотя и здесь важна удача.
Сейчас на Food.ru работает более 70 человек — это маркетологи, контент-мейкеры, продакт-менеджеры и дизайнеры, но самую большую категорию составляют разработчики.
В технической части команды мы придерживаемся концепции, что все необходимые роли должны быть внутри команды разработчиков.
Их можно разделить на следующие компоненты: Команда мобильной разработки .
Отвечает за разработку приложений для iOS и Android. Теперь это руководитель группы и по три инженера на каждую платформу.
Планируем увеличить до 4. Дальше будет зависеть от развития продукта.
Но теперь мы видим, что мобильное приложение имеет значительно лучшие пользовательские показатели, чем веб.
Относительно большой Команда разработчиков Back и Front .
Сейчас нас 12 человек, и мы продолжаем расти.
Команда отвечает за разработку основной витрины интернет-магазина, общего API и системы управления контентом [CMS].
Он основан на сервис-ориентированной архитектуре.
Для многих может стать неожиданным сюрпризом тот факт, что самой ресурсоёмкой и сложной частью проекта стала разработка CMS. Он предназначен не только для управления хранением и отображением, но и для создания контента.
Причем с учетом необходимости создания десятков тысяч материалов с возможностью их адаптивного отображения на различных витринах.
Механизм импорта материалов в пакетном режиме, который на первом этапе позволит вам решить почти фантастическую задачу по запуску проекта с десятками тысяч материалов в короткие сроки с помощью нескольких редакторов и армии подрядчиков, помогающих создавать материалы.
И делать все это одновременно.
Команда контроля качества .
Не такая большая часть нашей команды, но именно ее подход позволит нам решать поставленные задачи.
Мы используем стандартную схему 20%.
На каждые четыре инженера-разработчика приходится один инженер по качеству.
На первом этапе мы сосредоточились на ручном тестировании и четком разделении критических ошибок и тех, которые не влияют на пользовательский опыт и могут быть исправлены в будущем.
Или не исправлять и оставить как есть, но пусть история об этом умалчивает. Постепенно мы начали двигаться в сторону автоматизации, но даже на текущем этапе ручное тестирование является для нас приоритетом.
Команда DevOps-инженеров .
Точнее, пока он, к сожалению, один.
Но это настоящий ниндзя! Ловко решаем как задачи по развертыванию инфраструктуры, так и помогаем командам с CI/CD. При этом решает вопросы не самой простой инфраструктуры Х5. Но мы активно ищем людей для расширения этой команды.
Возможно, вы тот, кто нам нужен! Внутри команды мы четко разделяем управление продуктом и проектом.
На наш взгляд, это дает нам возможность эффективно синхронизировать два мира.
Мир пользовательского опыта, показателей, требований к продукту и коммерческих выгод с миром реализации всего запланированного с концентрацией на предоставлении пользовательской ценности за короткий промежуток времени [Спринт].
Для этого в нашей команде есть несколько менеджеров по доставке и аналитиков.
Мы тратим много времени на разработку требований еще до стадии разработки.
Без аналитиков никуда не пойдешь.
Всем известно, что корректировка спецификации и дизайна занимает несколько минут, но готовый продукт в лучшем случае занимает несколько дней.
Но почему-то не все идут по этому пути.
Работа
Вся команда на удаленке [в офис по желанию заходят лишь несколько человек].С этим проблем нет, поскольку мы сразу сосредоточились на этом формате и нанимаем специалистов, умеющих контролировать свое время.
Мы работаем по Scrum. Но мы оптимизировали его под свои нужды.
Мы добавили обязательные офлайн-проверки артефактов [технических характеристик и дизайна] перед их отправкой на доработку.
Это значительно улучшило качество артефактов, дало команде возможность заранее предоставить обратную связь владельцам артефактов и время для внесения необходимых изменений.
Все процессы живые.
Мы часто экспериментируем, добавляя новые и удаляя методы проектирования, которые не оправдали ожиданий.
Одним из примеров полезной устоявшейся практики является «перерыв на кофе».
Мы все работаем удаленно, что накладывает некоторые сложности на процессы формирования команды.
Перед 15-минутными ежедневными занятиями мы добавили дополнительные 15-минутные «кофе-брейки» для каждой команды.
Там можно обсудить любые вопросы.
Послушайте интересные истории коллег.
Гораздо лучше понимать людей, с которыми работаешь.
Эта практика возникла как попытка улучшить качество стендап-встреч.
Но в итоге оказалось, что мы получили гораздо больше.
Платформа для неформального общения, заполнившая коммуникационный вакуум удаленной работы.
Мы постарались убрать ненужную бюрократию и сократить количество встреч.
Так, в течение двухнедельного спринта на ралли тратится не более восьми часов.
Это не значит, что митингов больше нет, это значит, что все остальное - локальные митинги для решения конкретной проблемы.
Они не требуют участия всей команды.
Это позволяет выделить на работу максимум времени.
Митинги являются важной частью процесса.
Но на них не пишется код, не рисуются дизайны, не выкатываются релизы.
А делать «работу» за «работой» — не лучшая идея с точки зрения продуктивности.
Мы тратим много времени на планирование.
Весь процесс сосредоточен вокруг трех основных артефактов: глобальной дорожной карты на горизонте 6–12 месяцев, разделенной на двухмесячные разделы, планирования пользовательских историй на два спринта вперед для каждой команды и самого спринта, реализованного через доски в Jira. Включает в себя конкретные задачи с декомпозицией не более одного человеко-дня.
Чтобы объяснить, как это работает и почему все сделано именно так, нужно написать целую статью.
Если будет много комментариев на эту тему, мы обязательно напишем.
Короче говоря, мы разделяем стратегию, тактику и оперативный уровень.
Над каждым из них работает совершенно разная часть команды.
Это минимизирует количество участников и не позволяет размыть зоны ответственности.
Дает возможность учесть пожелания всех заинтересованных сторон.
И самое главное, он отвечает на самый сложный вопрос для любого стартапа — чего НЕ делать прямо сейчас.
Начиная с этого года мы планируем разделиться на сервисную и PoC-команды.
Подобрать команду для разработки основного продукта и многих других преобразований, задача которых позволит нам поддерживать высокие темпы развития.
Время покажет, каким будет результат. Мы собрали отличную команду, теперь осталось только реализовать ее потенциал на 100%.
Перспективы
С момента запуска Food.ru наша аудитория каждый месяц увеличивается вдвое.
По состоянию на декабрь 2021 года насчитывалось более 15 миллионов уникальных пользователей.
Это позволило достичь необходимых показателей охвата пользовательской аудитории менее чем за год после появления идеи запуска проекта.
Еще на старте мы встроили в инфраструктуру дополнительный «запас прочности», поэтому легко выдерживаем нагрузку в 20 миллионов (и более!) пользователей.
Хотя в будущем нам могут понадобиться существенные обновления, когда мы добавим возможность потоковой передачи видеоконтента.
В 2022 году мы планируем реализовать десятки новых функций.
Проверьте несколько гипотез о крупных продуктах.
Каждый из которых может стать одним из ключевых векторов роста проекта.
Мы дадим пользователю возможность быстро заказать продукты для приготовления блюда прямо из рецепта.
Интеграции уже в пути.
Мы также сосредоточимся на новых форматах контента.
Одна из продуктовых гипотез развития Food.ru — полноценная образовательная платформа, на которой пользователи смогут прокачивать свои кулинарные навыки.
Например, освойте новые приемы работы ножом или узнайте больше об итальянской кухне.
Сейчас тренинги такого уровня стоят дорого и зачастую доступны только жителям двух столиц; в регионах их мало кто может себе позволить.
Планируем исправить ситуацию — первые видео были загружены в конце октября.
В целом команда Food.ru довольно быстро растёт, и нам нужны маркетологи, авторы и все специалисты, участвующие в процессе разработки.
Тем, кто хочет работать не по корпоративным стандартам, а в формате фудтех-стартапа.
Если вам интересно наше направление и вы хотите попробовать свои силы, добро пожаловать на нашу страницу.
вакансии .
Мы всегда рады новым знакомствам! Теги: #Контент-маркетинг #Карьера в ИТ-индустрии #ИТ-компании #ИТ-компании #разработка #контент #стартап #ритейл #найм #Медиаменеджмент #медиа #рецепты
-
Легко Загрузить Youtube На Мой Ноутбук Apple
19 Oct, 24 -
Можно Ли Запрограммировать Случайность?
19 Oct, 24