Хакдэй. Вид изнутри.

Хакдэй. Вид изнутри.

Аватар пользователя Денис Ионов
Денис Ионов
11 июня 2014

Привет! Меня зовут Денис, мне 23 года и я разработчик (из зала: Привет, Денис!).

На самом деле, все, кто добровольно могут проработать в упор 48 часов без остановки, — истинные фанаты своего дела. Некоторым людям может показаться это странным, отсюда и такой юмор во вступительных речах.

О мероприятии я узнал из социальных сетей, и мне пришло пару приглашений в фэйсбуке на одно и то же мероприятие. Поскольку один идти я туда не хотел, начал спрашивать коллег на работе на эту тему. Заинтересовавшихся оказалось мало, но дизайнер Миша был согласен работать хоть из дома =)

Чуть позже я узнал, что в организаторах есть и наша компания, и Саша Калинин очень воодушевляюще рассказал, что там будет круто. После этого опять же несколько человек загорелись идеей и с такой же скоростью перестали ей гореть.

В итоге я присоединился к команде проекта tattle (название придумал Миша в ходе обсуждения идеи) — геолокационного чата, который решили сделать мои знакомые ребята. Напросился к ним разработчиком Windows Phone версии:)

На начало мероприятия я немного опоздал, но ничего особо важного не пропустил. Очень много вступительных речей с перечислениями всех тех, кто организовал данное мероприятие и кто там есть кто. Жутко скучная часть для меня, читающего FAQ заранее, но весьма полезная всем тем, кто не читал сайт =)

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

Наша команда — это три человека, и каждый отвечал за свой кусочек разрабатываемого чата: Игорь — android версия чата (на самом деле Игорь — очень крутой разработчик под мобильные платформы, и в этот раз он решил делать под андроид только потому, что хотел повспоминать джаву), Стас — серверная часть (делал всё в связке Mongo + Java и периодически подключался к задачам Игоря), ну и я Windows Phone версия.

С ребятами обозначили свой проект и приступили к работе. Нам предстояло сделать адовый объём работы...

Мы сразу договорились о стратегии. В пятницу вечером мы начинали работы и беспрерывно работали до полудня субботы. После чего расходились по домам на поспать часов 5-6 и снова вечером приступали к работе. Благодаря этой стратегии нам удалось двумя спринтами сделать всё, что планировали и даже немного дополнить фишками.

Для начала мы развернули необходимые репозитории для кода. Всем этим быстренько занялся Игорь, пока я и Стас ваяли какие-то прототипы.

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

Вторая ночь проходила в таком же формате, но уже чувствовалась усталость. Ребята забавно возмущались тому, что же они и зачем писали утром, на пике усталости. Код — ужасен. Но главное — оно работает и работает правильно, хоть и жутко не оптимизировано. Главная задача — сделать прототип и показать, что именно мы имели ввиду, когда будем представлять проект в итоге.

В три часа дня воскресенья мы поняли, что больше ни строчки кода адекватно написать не можем. Мы прекратили разработку новых фич и решили заняться стабилизацией работы. Тут начались первые шуточки о том, какого же мы создали монстра: «Ребят, а ничего, что у нас так много запросов идёт на сервер?», «Вы мой сервер такой нагрузкой не положите!», «Ужас, у меня телефон греется!», «Игорь, не скачи по карте! Ты телепортируешься куда попало!», «ОЙ, я кажется перезаписываю кеш картинок на каждый чих... Что-то тут не так!».

В итоге у нас получилось стабилизировать работу приложения настолько, что оно прекрасно работало и работает сейчас. Перед демонстрацией мы очистили всю историю чата с сервера приложения и баловались своим собственным чатом, разговаривая через него.

На мой взгляд, главное в таких мероприятиях — получить удовольствие от того, что ты делаешь. Эту простую и понятную истину очень сложно было понять некоторым менторам, которые вообще непонятно зачем пришли и начали спрашивать ребят про монетизации приложений, которые они делают тут, сейчас, за 48 часов. Для менторов скажу: если штука всем понравится, как заработать с неё денег придумают, а сразу думать об этом, на хакдее, вряд ли стоит. Хакдэй — это абсолютно творческий процесс, позволяющий самовыразиться, попробовать что-то новое, поделать то, что тебе было так давно интересно, поработать с интересными людьми.

Для себя с ребятами я извлёк несколько уроков.

  1. Код, который пишется на хакатоне, — выбрасывается почти весь. Происходит это потому, что пишешь ты его очень усталым и многие вещи на свежую голову не стал бы делать именно так. Отсюда и проблемы с производительностью и, порой, общей плохой архитектурой. Однако, некоторые технические решения всё же можно утащить себе.
  2. Идеи из аморфных и очень абстрактных — быстро кристаллизуются. Изначально у нас была размытая идея и мы плохо представляли, как это можно применить. В процессе работы мы придумали еще несколько способов реализации идеи и её применения и даже нащупали тренд, на который можем запрыгнуть в дальнейшем. Идея стала очень чёткой, проработанной и во многом благодаря мгновенным отзывам от людей, просто интересовавшихся тем, что мы делаем прямо сейчас.
  3. Хакатон — это общение. Всегда стоит приходить на такие мероприятия: с коллегами или одному — не важно. Главное, что всегда можно присоединиться к команде или создать свою, а в процессе работы станет очень весело и интересно!
  4. Если я и пойду когда-либо еще на хакатон, то я дважды подумаю. Несколько дней после я просто не мог отоспаться! Но даже так, мне доставило огромное удовольствие то, что я это сделал =)

Напоследок, моё напутствие всем тем, кто еще не был ни на одном хакатоне:

Приходите на хакатоны, делитесь мнениями, общайтесь, создавайте новое, стройте новые связи в сообществе — создавайте сообщество умных, нацеленных на результат, людей!