Как мы не победили в Moscow City Hack
В рамках хакатона Moscow City Hack, который проходил 11-14 июня 2021 мы с друзьями 72 часа работали над задачей «Планирование досуговых мероприятий в приложении Моя Москва» и создали сайт afisha.live.
Эта задача изначально зажгла нашу команду «Old school», состоявшую из 3-х человек:
1. Алексей - Web-разработчик
2. Александр - Web-разработчик
3. Михаил(я) – Продукт, разнорабочий
Конкуренция была серьёзной, на хакатон зарегистрировались около 1200 человек, из которых отобрали 125 команд на 5 треков.
Сразу хотел бы отметить отличную работу организаторов хакатона, они заботливо создали чаты в телеграм для каждой команды и дублировали всю важную информацию в них, чтобы все участники были в одном информационном поле.
Сразу после церемонии открытия хакатона мы получили техническое задание:
Разработать сервис по подбору и планированию мероприятий в городском мобильном приложении «Моя Москва».
Вместе с ТЗ был выслан редактируемый шаблон презентации, с проработанным дизайном, структурой, логотипами, шрифтами, цветами и иконками. Это второй плюсик организаторам, так как нам не пришлось тратить много времени на проработку нашей презентации.
Первые шаги
Изучив задание, мы созвонились командой, чтобы прорабатывать стратегию, проставить приоритеты и распределить задачи. Так как основные компетенции команды были в web-разработке, решено было делать сайт с «Блэкджеком и Чат-ботами».
1. Алексей — Создание Базы данных на основе API из ТЗ
2. Александр — разработка карты мероприятий
3. Михаил — Анализ конкурентов, проработка концепта
Исследование
Мы скачали 30+ приложений и проанализировали их основные экраны: Карта, Фильтры, Список мероприятий.
Инсайтом было то, что карта у многих приложений мероприятий была не функциональная, а у агрегаторов недвижимости в самый раз, поэтому первые макеты карты мы позаимствовали у циан.
Первый чекпоинт
Первый день/ночь пролетел незаметно: Алексей сделал базу данных и скачал мероприятия из API организаторов, Александр сделал первую версию карты.
А на утро мы уже проходили первый чекпоинт с таймингом 5 минут, из которых 4,5 минуты я рассказал концепцию нашего продукта, а за 30 секунд эксперты задали всего один вопрос: "Почему Telegram?", после чего время чекпоинта закончилось и все покинули Zoom. Мы были в шоке от такой обратной связи и такого тайминга, но в глубине души понимали что команд много, а организаторы одни — поэтому мы должны были грамотнее спланировать время питча.
Мы снова созвонились командой и поняли что мы не успеваем. В результате решили сэкономить время на дизайне — и взять готовый шаблон на Bootstrap. Это было гениальное решение, которое сэкономило нам кучу времени — так как хорошего дизайнера у нас в команде не было, и верстка с нуля заняла бы много времени.
Мы расставили приоритеты:
1. Алексей — личный кабинет и программирование структуры
2. Александр — верстка карты и списка мероприятий
3. Михаил — проработка содержания экранов и система рекомендаций
Далее мы пошли работать, а Алексей ушел спать — сказав что начнёт вечером, так как делал базу данных всю ночь и есть другие важные дела.
Система рекомендаций
Изначально у нас в базе были только мероприятия, тэги и категории мероприятий. Чтобы была возможность ранжировать мероприятия по целевой аудитории, мы выделили 10 групп целевой аудитории(ЦА) и прогнали ключевые слова по описанию мероприятий чтобы обогатить тэги.
Далее я построил матрицу и сопоставил более 1500 тегов по принадлежности к группам ЦА.
На основании этой матрицы, любое новое мероприятие по ключевым словам и описанию автоматически ранжировалось с нужной целевой аудиторией, и необходимо было лишь изредка проверять полноту ключевых слов.
Утром с Александром мы уже оформили список мероприятий, карту и фильтры мероприятий по ЦА, но до Алексея я дозвонится не смог.
Днём я позвонил Алексею спросить, моу протестить личный кабинет и когда он сделает структуру сайта, и он сказал что он ничего не сделал. У него случились проблемы на личном фронте и он забухал.
В дополнение ко мне подошла моя жена Катя, с моей дочкой Машей (1,5 года) — и сказала что больше не может сидеть с ребенком одна, хватит работать в выходной и вскоре мы поехали на море.
Второй чекпоинт
Настало время чекпоинта с таймингом 7 минут. Мы показали текущее состояние — и получили от экспертов обратную связь:
1. Было бы хорошо иметь возможность выделять область на карте.
2. Как будут работать фильтры?
Мы созвонились все вместе и поняли что снова не успеваем, поддержали и отчитали Алексея и расставили приоритеты.
1. Алексей — личный кабинет, структура сайта, телеграм-бот
2. Михаил — содержание главной, страница мероприятия, тестирование
3. Александр — общая верстка, программирование фильтров.
Изначально мы планировали что страницу(лендинг) мероприятия сделает Алексей, но так как день у него вылетел, эта задача перешла нам с Александром. Для ускорения я сделал страницу на tilda и экспортировал её через настройки, а Александр доверстал и встроил в сайт, - так мы сэкономили ещё сколько-то времени, хотя Александр долго матерился когда разбирался в запутанной верстке tilda.
Ночь перед дедлайном
Работы было много, а выгрузить код на github нужно было в 9 утра - поэтому мы все втроём работали всю ночь.
Александр доверстал основные страницы сайта.
Алексей сделал структуру сайта, личный кабинет и telegram-бота.
Я понял, что нашему проекту нужны новые фишки и запилил ChatApp в Sber Салют
А затем записал видео работы сайта, под звуки мяукающих ночью на улице кошек, чтобы не будить спящую дома дочку.
Результаты
В итоге мы не победили в этом хакатоне, а заняли почетное 2-е место, с призом 150 тысяч рублей, чему тоже очень рады.
Стоит в третий раз отметить работу организаторов, которые до торжественного награждения 18.06.2021 хранили в секрете призовые места среди ТОП-3 команд. а также устроили рефлексию с командами на которой жюри обсудили с каждой командой их сильные и слабые стороны.
И конечно же, главным результатом нашей работы стал полноценный MVP - Афиша бесплатных мероприятий Москвы, который мы продолжаем развивать и планируем в скором будущем запустить сайт по всей России.
Выводы
1. Нужно взаимодействовать внутри команды, делать мини-спринты и выравнивать приоритеты и задачи после каждого спринта.
2. Нужно следить чтобы из команды никто не выпал, если вы работаете удаленно, и рассказывать коллегам о своих проблемах, чтобы можно было вовремя перераспределить задачи и приоритеты.
3. Нужно использовать шаблоны и no-code решения, если это ускорит процесс.
4. Нужно верить в свою идею и очень хотеть победить всей командой, чтобы работать несколько ночей подряд, так как времени всегда будет не хватать.