14 авг. 2013 г.

Как пробежать хакатон?


Мы провели уже не один HackDay и решили составить список советов «бывалых» о том, что надо делать, чтобы хакатон не прошел даром?







1. Ищите правильных соратников.
Если вы хороший девелопер, объединяйтесь с дизайнером. Если вы хороший дизайнер, объединяйтесь с девелопером. Большинство хакатонов предоставляют возможность представить свою идею другим людям еще до начала основной работы. Сделайте краткое описание того, что бы вы хотели сделать, для кого это предназначено и как это можно использовать, а затем «питчуйте» свою задумку налево и направо. Желательно при этом четко осознавать, кого именно вы ищете. Если вы уже видите в данном проекте какую-то конкретную технологию, то обязательно расскажите про нее – это ускорит процесс поиска партнера. Никто не запретит собрать команду на хакатон заранее, и, тем самым, существенно повысить свои шансы на успех.

2. Представьте идеальную демо-версию и работайте в обратном направлении.
Работайте над тем, что выполняет одну простую понятную функцию, и во время демонстрации фокусируйте внимание зрителей именно на этом. Делайте только тот функционал и те экраны, которые наглядно покажут, что именно ваше приложение должно делать. Про все остальное пока можно зыбыть. Здесь будет полезно почитать про MVP.  Если вы решите продолжить работу над проектом, то вы всегда сможете вернуться и доделать недостающие части.

3. Обратите внимание на спонсоров и вендоров.
Если вы осмотрелись и поняли, что не можете претендовать на первое место, то сосредоточьтесь тогда на каком-нибудь отдельном API одного из спонсоров, если таковые имеются. Разработчики часто делают так в надежде выиграть специальный приз от партнеров мероприятия. К тому же на хакатонах часто присутствуют представители компании, которые в затруднительной ситуации могут помочь и словом, и делом.

4. Делайте домашнюю работу.
Одно из самых главных правил хакатонов – “No code before hackathon”. Но никто не запрещает до старта сделать мокапы, обсудить дизайн или подумать о наборе фич, которые нужно будет разработать. Также неплохо изучить информацию о менторах мероприятия и заранее продумать вопросы, которые стоит им задать.

5. Используйте GitHub.
Вы можете сильно упростить свою работу, если будете использовать репозиторий на GitHub для контроля версий. Причем с самого начала, делайте коммиты как можно чаще. Гораздо проще откатить назад небольшие изменения, нежели вылавливать баг, с которым уже связаны несколько фич. Желательно также использовать feature branches или заставить каждого члена команды работать в отдельной ветке. Прежде чем мерджить в мастер, сливайте его с вашей веткой. Мерджите в мастер только после того, как убедитесь что после слияния с вашей веткой там ничего не сломалось.

6. Используйте PaaS для хостинга и деплоя.
Это позволит вам быстрее деплоиться и тратить больше времени на написание кода, а не на на решение трудоемких сисадминских задач. Исключение если вы не хоститесь в “облаке” или используете какую-то экзотическую технологию, которая не поддерживается PaaS провайдерами.

7. Используйте HTML/CSS фреймворки.
Twitter Bootstrap или Foundation помогут быстро создать прилично выглядящий прототип без лишних заморочек с CSS. Если вы беспокоитесь, что ваш сайт будет выглядеть как сотни других, то можно скачать несколько бесплатных тем на Bootswatch или недорого купить на Wrapbootstrap.

8. Делайте больше пауз для отдыха.
Когда время ограничено и вся команда надеется на вас, то легко можно увлечься и печатать пока пальцы не онемеют. Это самый верный способ перегореть или даже заработать себе хроническое растяжение сухожилий травматического характера (RSI)? поэтому старайтесь использовать эргономические клавиатуры и ваши кисти скажут вам спасибо. Не забывайте вставать из-за стола, разминайте плечи, запястья, сходите прогуляйтесь в конце концов. Иногда полезно отвлечься от сложной задачи, что вернуться и успешно ее решить. Да, и конечно постарайтесь заранее выспаться и питаться правильно, чтобы сил хватило и пустой желудок не отвлекал вас от творчества.

9. Чтобы быть успешным, надо правильно представить свой проект.
Вы можете вкалывать всю ночь не покладая рук, но если вы не можете четко выразить, о чем он, то у вас не будет шансов что-либо выиграть, кроме собственного удовлетворения. Убедитесь, что ваша демо-речь содержит только то, что необходимо и достаточно для понимания публикой того, что вы тут напрограммировали. Используйте меньше графики и слайдов – больше работы проекта в реальном времени. И не забудьте протестировать оборудование (проекторы) организаторов перед демо – все должно пройти без сучка, без задоринки.

10. Будьте более раскрепощенными – тут все свои.
Обычно на хакатонах у вас есть 2-3 минуты на демо-выступление, поэтому вы должны либо показать хороший по дизайну и функционалу продукт, который скажет все сам за себя, либо заготовьте пару смешных шуток, которые заставят людей улыбнуться. В этом случае у вас будет шанс заработать хотя бы приз зрительских симпатий.

11. Знайте критерии оценки и публику.
Cтарайтесь общаться с коллегами, менторами, и представителями спонсоров, прислушивайтесь к из замечаниям и советам. Не забудьте пригласить друзей и родственников на демо – поддержка никогда не помешает.

12. Получайте удовольствие!
Помните, что вы пришли на хакатон как следует повеселиться. Да, соревновательный момент есть, но есть место и для экспериментов, знакомств с интересными людьми, повод узнать новое и построить что-то свое с нуля. Не надо сильно расстраиваться, если у вас что-то не получилось или вы не выиграли. Постарайтесь просто хорошо провести время с пользой для себя!

Так что дерзайте, коллеги и да пребудет с вами сила!