2020-й не пощадил большинство
офлайн-мероприятий в том числе традиционный VK Hackathon. Раньше мы
проводили его в Эрмитаже и Манеже, а в этом году в паблике
ВКонтакте. Рассказываем, как придумали марафон Вездекод специально
для онлайн-формата, собрали больше участников, чем ожидали, набили
несколько шишек и получили отличную коллекцию мемов.
В марте мы всей командой ушли в добровольную самоизоляцию и уже
тогда поняли, что осенний VK Hackathon в его привычном формате под
угрозой.
Наш
хакатон один из крупнейших в России: его призовой фонд 2
миллиона рублей. Это флагманское мероприятие ВКонтакте, которое
ждут каждый год. В 2019-м VK Hackathon прошёл в Манеже историческом
здании в центре Санкт-Петербурга, где проводятся крупнейшие
международные форумы и выставки. В соревновании участвовали 600
человек из 150 команд как независимые разработчики, так и
сотрудники крупных IT-компаний: Яндекса, Сбербанка, Mail.ru, OZON,
JetBrains, Альфа-Банка и других.
Мы могли отложить хакатон на следующий год, но не хотели оставлять
наших участников без соревнования в 2020-м. Или перенести его в
онлайн, не меняя формат и название, так сделали многие коллеги. Но
это был бы уже не VK Hackathon его фишка именно в атмосфере
непрерывного командного кодинга в центре Петербурга. Поэтому мы
решили оставить офлайн-мероприятие до лучших времён и придумали
концепцию нового.
Офлайна не будет. Что делать?
Мы начали с того, что разложили составляющие классического хакатона
на части. Если грубо упростить, получалось, что на мероприятии
участники команды работают практически по очереди: сначала дизайнер
рисует первые макеты, потом мобильные или веб-разработчики создают
техническую часть продукта, которую в итоге защищают на
питчинге.
Мы сформулировали идею: запустить микросоревнования по разным
направлениям и таким образом провести многоступенчатый отбор команд
для финала. За основу взяли схему дизайн мобильное приложение веб и
придумали три кейса, которые командам предстояло решить за две
недели. К этим заданиям щедро добавили задачек для разогрева: по
тестированию, а также поиску и фиксу уязвимостей в
VK Mini
Apps.
Так появилась концепция марафона кодинга и родился Вездекод.
Вездекод 1.0
Вездекод
это двухнедельный марафон, где можно было участвовать в одиночку
или командой до четырёх человек. Соревнование проходило в закрытом
сообществе ВКонтакте туда ребята попадали после регистрации. В
группе публиковались задания тем, кто верно выполнял их,
начислялись баллы. По их сумме команды занимали строчки в общем
рейтинге. Обладатели первых трёх мест в итоговой турнирной таблице
стали победителями марафона. А ещё баллы пригодились участникам во
внутреннем магазине Вездекода: там можно было купить стикеры,
значки, мягкие игрушки и другой мерч VK, а также важные
нематериальные бонусы: например, ревью резюме с нашей
HR-командой.
Одна из главных фишек мероприятия в том, что каждый день в 12:00 по
Москве мы выходили в прямой эфир: объясняли основное задание и
отвечали на вопросы участников. На этих встречах мы общались с
ребятами лицом к лицу и это помогло сохранить тесную связь с
командами. Получился формат хакатона и реалити-шоу в одном
флаконе.
Мы сделали два чата от имени сообщества Вездекод:
- Оргвопросы здесь участники уточняли задания, давали обратную
связь и спрашивали: А ГДЕ БАЛЛ?;
- флудилку чтобы все общались на любые темы.
Чаты не умолкали 24/7: мы постоянно отвечали на вопросы, помогали
понять задания и принимали обратную связь. Это был совершенно новый
формат и для нас, и для участников. Так что мы старались
откликаться на комментарии ребят и шли им навстречу: докручивали
задания, меняли их очерёдность или критерии оценки результатов,
если понимали, что что-то получилось не совсем логично.
Вся важная информация, рейтинг, итоги дополнительных заданий
публиковались не только в закрытом сообществе, но и в специальном
канале Вездекода.
По результатам марафона каждый участник команд, вошедших в топ-5,
получил ценный приз технику Apple. Все награды, включая мерч, мы
отправили ребятам в течение двух недель после финала.
Участники
Мы традиционно даём участникам свободу решать, сколько человек
будет в их команде. Обозначаем только верхнюю границу четверо. На
офлайн-хакатоне можно было соревноваться и вдвоём, и втроём, а на
Вездекоде даже соло. Но выигрышной всё же была стратегия команд,
где объединились несколько специалистов разных направлений. Как и в
классическом хакатоне, каждый должен был играть свою роль: отвечать
за дизайн, веб или мобильную разработку. (В середине Вездекода мы
поняли, что эта схема не сработала: ребята штурмовали задачи вне
зависимости от специализации.)
Попробовать силы в марафоне могли все желающие, кому уже
исполнилось 14 лет. Для регистрации участников мы разработали
простое мини-приложение. Оно позволяло быстро выгружать обновлённую
базу ведь к Вездекоду можно было присоединиться в любой момент. Мы
сделали регистрацию максимально свободной, поэтому собрали намного
больше участников, чем ожидали. Планировали, что их будет около
тысячи, а в итоге приняли на марафоне 1400 команд (!) это почти
3000 участников.
Задания и их оценка
Как в условиях полного онлайна грамотно оценить разнообразные
проекты? И получится ли обеспечить равные условия участникам, если
кто-то может работать над проектом целыми днями все две недели, а у
других получается выделить на задачи только пару вечеров?
Мы придумали гибкую разветвлённую систему заданий. В её основе три
больших проекта разного уровня: простой, средний и сложный. Каждый
из них включал задачи по категориям: дизайну, мобильной и
веб-разработке. Так получилось 9 заданий. Затем мы добавили блоки
тестирования и задач стало 12. Они концептуально связаны друг с
другом, но выполнять их можно было и по отдельности. Чем больше
заданий делала команда тем больше баллов зарабатывала. Если
справлялась со всеми задачами по одному проекту, получался
полноценный продукт: мини-апп или мобильное приложение с
веб-версией. Мы распределили задания в случайном порядке, но
внимательные участники догадывались, что им предстоит реализовывать
через несколько дней.
Новые задания публиковались в закрытом паблике по одному в день и
выполнять их нужно было за 24 часа. Не все участники были заняты
ежедневно например, если мы выкладывали задачу на веб-разработку,
дизайнеры могли отдыхать. Чтобы свободные ребята не скучали, мы
предлагали им дополнительные задания: приглашали на внезапные
бот-викторины и онлайн-соревнования по мотивам наших любимых
активностей с конференций:
Code in the
Dark (это вёрстка вслепую) и
Kitten
Contest (версия Своей игры от VK).
В заданиях на разработку мобильной и веб-версии проектов мы
предложили использовать дизайн, который придумали сами участники. У
команд были разные по продуманности макеты но это не должно было
повлиять на баллы за реализацию. Поэтому мы выбрали самый крепкий
вариант дизайна и дали всем командам возможность работать с
ним.
Здесь мы столкнулись с первой сложностью: даже тщательно
проработанный участниками макет мог быть не полностью адаптирован
под каждую из наших платформ мобильный веб, Mini App, iOS и
Android. Кроме того, участникам оказалось сложно применить их
гайдлайны к готовому макету.
Вторая проблема была в том, что в более сложных заданиях, несмотря
на хорошо описанные макеты, у ребят возникала масса вопросов к
действиям отдельных кнопок и анимациям. Мы старались мотивировать
участников проявлять фантазию и придумывать свои способы заполнить
пробелы, при оценке начисляли дополнительные баллы за
креативность.
Но главный челлендж онлайн-мероприятий без предварительного отбора
это непредсказуемый объём проверки заданий. Составляя первое
расписание, мы думали, что сможем отсматривать все решения примерно
за сутки. Участники ведь справляются с задачами за 24 часа! Как же
мы ошибались :) В одном из заданий по дизайну мы получили 164
решения, по мобильной разработке 100: причём у некоторых участников
это были и Android-, и iOS-реализации. В итоге мы едва успевали
публиковать итоговые баллы за задание только через полтора дня
после того, как заканчивали принимать от участников решения.
Оставлять подробную обратную связь тоже не получалось в итоге
ребята обсуждали проекты друг друга в оргчате.
А ещё мы не учли огромную любовь участников Вездекода к ненативной
разработке под мобильные платформы и не предусмотрели это при
формулировке заданий. Многие команды стали работать с React Native
и Flutter с их помощью можно легко обеспечить кросс-платформенность
и даже переиспользовать код между мобильными и веб-заданиями. Но
результаты не радовали нас при проверке заданий: решения не всегда
собирались из исходников, основывались на не самых эффективных
подходах. К сожалению, мы не сформулировали сразу список
разрешённых технологий поэтому участники были справедливо
недовольны тем, что правила оценки решений менялись.
Мир, дружба, мемы
На второй неделе марафона в чате-флудилке начали появляться мемы от
участников. Картинки были суперсмешными, так что мы решили устроить
батл и начислять авторам самых метких шуток дополнительные
баллы.
Финал Вездекода. Питчинг вымышленных проектов
В рецепте идеального хакатона есть несколько обязательных
ингредиентов: клёвая команда, оригинальная задумка, качественная
реализация и взрывная презентация. В финале Вездекода мы взяли одну
из составляющих на себя: предложили двадцати командам-лидерам очень
необычные идеи для проектов и пригласили защитить их на питчинге в
прямом эфире.
Чтобы было веселее, сделали приложение генератор идей. Он в
случайном порядке собирает концепцию проекта из фрагментов,
отвечающих на вопросы какой?, что?, для чего? и для кого?. Так что
команде мог достаться Культурный агрегатор для удалённой работы
диснеевских принцесс или Сезонный навигатор для саморазвития
молодых родителей.
Генератор
идей работает и сейчас загляните, может, он предложит вам
проект, который захочется реализовать ;)
Накануне финала мы распределили вымышленные проекты между командами
из топа рейтинга и составили расписание защит. Чтобы приблизить
атмосферу питчинга к реальным условиям, запланировали прямую
трансляцию презентаций в сообществе
VK Tech. В магазине
Вездекода ребята могли за баллы продлить дедлайн на один час и
записаться на онлайн-консультацию со специалистами из студии
коммуникаций
BEsmart. В итоге
те команды, которые заказали прогон выступления с тренерами, и
заняли призовые места.
Многие участники блестяще справились с защитой немыслимых проектов
от нашего генератора идей это был, думаем, уникальный опыт :)
Некоторые даже успели сделать
работающий
MVP. Все защиты проектов мы опубликовали в сообществе VK Tech
их можно
посмотреть.
Какие выводы мы сделали?
- Позиционирование. Слово хакатон сыграло против нас, ведь
участники ждали привычного состязания в этом формате, а мы сделали
нечто иное. Хотя Вездекод был как раз марафоном кодинга по смыслу
это очень близко к изначальному значению термина хакатон.
- Количество участников. Не ожидали такого наплыва
желающих. Всего за время Вездекода зарегистрировались 1400 команд,
то есть почти 3000 человек. Активно соревновались 647 команд это
1749 участников. В общей сложности мы проверили 27 заданий,
начислили 59106 баллов и отправили 1000 заказов из магазина.
- Уровень команд. Зарегистрироваться на Вездекод мог любой
человек старше 14 лет. Мы не проводили отбор по идеям и
специализации участников поэтому по сравнению с классическим
хакатоном порог входа ощутимо понизился. С одной стороны, это плюс
попробовать силы смогли совсем юные разработчики, мы научили многих
работать с Figma и решать продуктовые задачки. Но с другой получили
от участников шквал базовых околотехнических вопросов, на которые
отвечали почти круглосуточно.
- Мало направлений. В формате онлайн-марафона мы решили
переложить саму концепцию взаимодействия участников на хакатоне
последовательное выполнение разных задач. Так в Вездекоде появились
направления для заданий и их очерёдность. Но мы обожглись о
полярный уровень участников. Одни, быстро разгадав логику, были
заранее готовы к следующим задачам, консультировались с дизайнером
и помогали друг другу на каждом этапе. А менее опытные ждали от нас
чёткого ТЗ и расстраивались, что задание снова не на код (эмоциями
по этому поводу делились под хештегом #агдекод). В будущем мы
попробуем разнообразить специфику заданий. А ещё на берегу
обозначим стек технологий: не забудем разобрать скользкие кейсы
вроде мобильной разработки на Flutter. И придумаем, как прикрутить
автопроверку, чтобы разгрузить жюри и авторов заданий.
В заключении статьи оставим напутствие всем, кто собирается делать
хакатон или подобное мероприятие в онлайне.
- Подумайте о трудозатратах и команде. Подготовьтесь к
тому, что сил и времени на онлайн уйдёт даже больше, чем на офлайн.
Мы это прочувствовали в многократном объёме: Вездекод стал
марафоном не только для участников, но и для нас :) На нашем
событии с командами работали четыре организатора, и ещё около 20
человек были задействованы в составлении и проверке заданий.
- Уделите внимание деталям и максимально разжёвывайте
задания. То, что на площадке можно проговорить голосом со
сцены, на онлайн-соревновании быстро обрастает версиями во
флудилках и провоцирует лавину нерелевантных вопросов.
- Заботьтесь об участниках. Придумайте механики, чтобы
каждая команда могла себя проявить и получить хотя бы небольшой
приз. В онлайне гораздо меньше ощущается взаимодействие с
организаторами, поэтому важно оставить о мероприятии что-то на
память. Один из наших участников при заказе из магазина Вездекода
попросил организаторов оставить на мерче автографы и так у нас
родилась идея рукописных открыток для всех.
- Не бойтесь ошибаться. Фиксируйте обратную связь и
возвращайтесь на арену онлайн-ивентов!