Когда релиз раз в две недели, новые фичи приходят от бизнеса, и технический долг требует свое — приходит время хакатона. Меня зовут Дмитрий Антышев, я iOS-разработчик в OZON, расскажу о том, как 27 февраля мы провели первый хакатон для мобильной команды.
1. Зачем нам хакатон
Часто организаторы обходятся без ответа на этот вопрос. Но он пригодится, чтобы понять, что вы вообще будете делать (а чего делать точно не будете), откуда возьмете идеи, как будете оценивать команды, и — немаловажно — что будете делать с полученным кодом.
Ниже наш список целей в том порядке, в котором они пришли в голову нашей команде организаторов.
— Найти время на реализацию того, что давно хотелось сделать
— Показать свои идеи бизнесу
— Познакомиться с новичками
— Собрать больше идей и фич (а почти каждый в команде OZON еще и наш пользователь)
— Оценить, сколько времени потребуется на разработку фич
— Провести действительно полезный тимбилдинг
2. Где взять идеи
Примерно половину времени на хакатоне команды тратят на придумывание фич — мы решили время не тратить, и заготовить идеи заранее. Сначала обсудили командой, у кого какие идеи для фич на хакатон. Пара классных была, но хотелось больше — и мы решили спросить у всех сотрудников OZON. Расшарили Google-табличку в Slack и Workplace, и за неделю набрали около сотни идей. Причем для каждой фичи автор приводил доводы, почему это точно нужно в приложении OZON.
Например, была идея создать режим инкогнито, чтобы те или иные заказы не отображались в истории — удобно, если нужно заказать подарок. Или загрузка изображений из галереи, чтобы заказывать сертификаты с собственным дизайном. И даже азартная многопользовательская игра со ставками, баллами и промокодами.
В итоге решили, что команды смогут выбрать из списка идей ту, которая им ближе — или предложить свою. В любом случае время мы сэкономили.
3. Как мы хакатонили
Чтобы не ставить себя и коллег перед выбором: выходные с семьей или разработка, мы решили провести хакатон в рабочий день. Немного хардкора все же оставили — на все про все у команд было 12 часов. При наличии идеи этого вполне достаточно.
За неделю до хакатона мы собрались командой мобильной разработки, чтобы отобрать лучшие идеи и поделиться на команды.
В итоге к старту подошли 4 команды, в трех из них было по два iOS и Android-разработчика, и по два QA, а вот четвертая была самой необычной — в ней собрались четыре QA инженера. И чего от них ждать, мы не знали)
Вот названия наших команд:
- Билды крутятся лавеха мутится (тут, кстати, был я)
- КОТИГИ
- Пыльные гантели
- Команда качества нашего
Командой «Билды крутятся лавеха мутится» мы реализовали список избранных корзин. Если вы регулярно заказываете примерно один и тот же список товаров, каждый раз искать и складывать их в корзину надоедает. Мы сделали фичу, которая позволяет сохранять и редактировать сохранённые корзины.
«КОТИГИ» сделали похожую возможность, но через список избранных товаров. К тому же, они не забыли про шаринг — очень полезная штука, например, когда в заказе товары на всю семью. В итоге это и привело их к победе.
Ребята из «Пыльных гантелей» запилили виджет с трекингом заказа и сканирования баркода при получении посылки в постамате. При этом само приложение открывать не нужно.
«Команда качества нашего» адаптировала приложение для слабовидящих людей, запилила «Колесо фортуны» для розыгрышей промокодов и даже успела реализовать функцию продажи б/у товаров.
Когда с командами и идеями было решено, у ребят оставалась неделя, чтобы обдумать реализацию.
И вот в среду, 27 февраля мы пришли к 9:00. На разработку фич у нас было всего 12 часов. С 9:30 до 21:30. А вот расписание нашего хакатона.
Помимо написания кода мы успели поиграть в Playstation VR.
И порубиться в Mortal Combat.
4. Как подводили итоги?
Чтобы написанный код не отправился в корзину, мы сразу обратили внимание на полезность фичи для бизнеса и сделали это одним из основных критериев оценки.
В целом список критериев был классическим для хакатона.
Польза бизнесу, максимум 10 баллов. Насколько фича интересна бизнесу и имеет право на жизнь в продакшене. Чтобы оценить проекты с этой точки зрения, мы позвали в жюри руководителя продуктов в OZON Евгения Ширинкина.
Голосование команд, максимум 10 баллов (за себя голосовать нельзя, конечно). Тут все просто — чья работа понравилась, за тех и голосовали.
Дизайн и юзабилити, максимум 3 балла (здорово, если получится красиво и юзабельно, но все же мы про разработку). Поэтому наши проекты оценивала руководитель по клиентскому опыту Наталья Спрогис.
Презентация, максимум 5 баллов.
В итоге наибольшее количество баллов набрали КОТИГИ. И еще раз о том, что они сделали: новый функционал для списка избранных товаров с возможностью группировать, делиться избранным, а также распределять по категориям. Надеюсь, эта фича скоро поедет в прод.
Ребята выиграли сертификат на 100 000 рублей.
5. ИТОГИ
Четыре довольные команды (одна — особенно довольная), несколько идей и код, который мы будем использовать. Некоторые фичи понравились бизнесу, и скоро появятся в нашем приложении.
Если совсем коротко, смотрите:
Конечно, не обошлось без сложностей: мы выдумывали конкурс на ходу, не продумали систему оценки (максимум баллов, которые команда могла получить от жюри — 15, а от других команд — 10, и вот уже получается, что жюри не принимает окончательное решение). Не повторяйте наших ошибок — лучше разделить приз жюри и приз зрительских симпатий.
Что было правильно: пригласить в жюри тех, кто принимает продуктовые решения — некоторые фичи понравились бизнесу, и скоро появятся в нашем приложении.
А теперь чек-лист для тех, кто решил организовать свой первый хакатон.
- Определитесь с целью. Тимбилдинг и отдых не могут быть самоцелью. Если вы просите людей что-то сделать, они должны понимать, зачем это и что будет с результатами их труда дальше. Закрываете техдолг? Пилите новые фичи? Ловите баги?
- Распишите тайминг. У вас хардкор или по лайту? Сколько времени вы закладываете на разработку? Сколько на презентации? Мы, например, решили вынести поиск идей за рамки самого хакатона — благодаря этому ребята успели почилить (и выспаться и поработать на следующий день).
- Решите, кого звать в команду. От этого будут зависеть, например, критерии оценки — мы не звали дизайнеров в команды, поэтому и выиграть за счет красоты интерфейса было невозможно.
- Призы должны быть впечатляющими. Конечно, можно азартно сражаться и за шоколадку — но найти бойцов будет сложнее.
- Оценивать проекты должны профессионалы. Если красоту кода могут оценить разработчики, то просить их прокомментировать важность функционала для бизнеса — странно. А ведь жюри должно быть авторитетным.
- Продумайте интерактив. Всегда хорошо, когда помимо основной активности, в процессе (а хакатон еще и очень длинный процесс) ребята могут участвовать в коротких активностях. Это помогает командам проветрить мозги, а организаторам — раздать больше призов на память. Мы об этом не подумали, поэтому на ходу придумали викторину, купили призы и разыграли. Было неплохо.
- Заготовьте мерч. Кружки, футболки, наклейки, толстовки — здесь важно соблюсти баланс между идеей и логотипом/брендом/названием компании. Мерч должен быть классным, иначе он сразу станет мусором.
И не забудьте фоточки, конечно! Наши можно найти тут