Como ganhar hackathons parece um título bastante pretensioso, mas minha intenção é compartilhar o que aprendi nos 8 hackathons que já participei.
A primeira vez que participei foi em 2013 no Google Developer Bus, de lá pra cá acabei gostando da ideia e só no ano passado participei de mais 7 hackathons, 3 deles no Vale do Silício.
Pra quem não sabe, hackathon é uma maratona hacker, maratona de programação ou simplesmente um motivo pra juntar um monte de programadores em um lugar e virar uma ou mais noites programando, comendo pizza e bebendo cerveja.
Desses hackathons que participei fui premiado 3 vezes e é muito legal ganhar, as vezes você ganha dinheiro, as vezes um gadget, mas se for pra participar só pelo prêmio esqueça… Na maioria das vezes o prêmio é menor do que o valor das suas horas trabalhadas. Então o objetivo é a diversão, o networking e o aprendizado.
1 – Estude o Hackathon Antes
Existem 2 tipos principais de hackathon: Os voltados para programação e os voltados para startups. Se você souber de antemão em qual tipo de hackathon você está se metendo já poderá poupar muito trabalho e/ou estresse. A maioria dos hackathons mostra quem serão os juízes e de olho neles você já consegue saber com o que eles estão envolvidos.
Hackathons voltados para programação vão exigir mais do aspecto técnico do seu Hack, o demo será muito importante e ele precisa estar funcionando.
Hackathons voltados para startups estão preocupados com o modelo de negócio do seu projeto. Nesse tipo de hackathon é comum apresentações com slides, sem demo, com produtos inacabados e é possível ganhar apenas com uma apresentação. Não adianta se espernear, vários juízes que não são técnicos não sabem avaliar se o que você mostrou está funcionando ou se é uma animação no power point.
Como o Gabriel Pugliese me lembrou, é bom também ficar de olho nas Regras do Hackathon, podem ter regras específicas quanto ao software que você pode utilizar, se você precisa ou não deixar o projeto aberto no Github, etc…
Outro ponto importante são os critérios de avaliação do hackathon. Os critérios podem ter pesos e se o seu objetivo é ganhar, então foque nos critérios.
Nem sempre o grau de desenvolvimento é o critério com maior peso. Participei do Samsung Ocean Hackathon no ano passado e esse era um hackathon um pouco diferente, ele teria apenas 11 horas de duração incluindo a apresentação e o julgamento, no final das contas tinha umas 9 horas de duração. Os critérios para julgamento eram Inovação, UX e Desenvolvimento e a maior nota de Inovação chegava a 9320 pontos enquanto a de desenvolvimento chega apenas a 200. É claro que com um número baixo de horas para programar eles não priorizariam o desenvolvimento, porém eu e meu grupo não nos atentamos às notas dos critérios. Escolhemos uma ideia sem muita inovação para podermos desenvolver em um tempo curto e conseguimos a maior nota de desenvolvimento mas ficamos em sétimo lugar. Detalhe: A equipe vencedora ficou com a menor nota de desenvolvimento. Mas os critérios eram claros e estavam escritos, nós não estudamos o projeto antes =/
2 – Tenha um bom Time
Você pode ser um Solo Developer, pode ser o melhor Full-Stack dos sete Mares ou ainda ser o maior jogador de squash do mundo. Em um hackathon você vai precisar de um time.
Até porque na maioria dos hackathons é obrigatório ter um time e é uma experiência muito bacana, vocês se xingam, jogam a culpa um no outro, cantam musiquinhas irritantes, assistem um monte de youtube poops e ainda por cima programam.
Se você puder ir com um time formado, chame pessoas que já trabalham bem com você, que vão se comprometer, segurar a barra quando você não aguentar mais e que seja divertido passar mais de 24 horas acordado ao lado delas.
No primeiro hackathon que fui tivemos um problema com um cara do time. Os times eram escolhidos numa espécie de sorteio. Cada pessoa que era sorteada escolhia uma ideia na parede e quando se juntavam 4 pessoas de áreas diferentes o time estava formado. Eu entrei como back-end developer, tinhamos uma frontend, um gerente de projetos e um designer. O designer era um cara super difícil, não deixou a frontend trabalhar, quis fazer o frontend sozinho, não aceitava nenhuma ideia, criticava tudo e tornou a vida de todo mundo um saco durante quase 3 dias, mas mesmo assim a experiência foi super válida, dezenas de kit-kats, várias amizades e contatos importantes e de quebra eu aprendi a usar o Django non-rel com o AppEngine.
Em quase todas as vezes que o time podia ir montado eu fui com o Roberto Civille, o cara já ganhou tantos hackathons que o pessoal já está chamando de Serial Hackathon Winner.
3 – Know Your Shit
Você não pode chegar completamente despreparado para um hackathon. Há espaço para aprender muitas coisas, mas não chegue com um ambiente recém formatado sem sua IDE preferida, sem os programas que você vai usar e sem saber como instalar coisas novas. O tempo é seu inimigo durante o hackathon. Se você perder uma hora pra configurar alguma coisa ou instalar o Phonegap no windows pode acabar sendo prejudicado e vai acabar irritando o pessoal do seu grupo.
4 – Tenha uma boa Ideia
Fácil falar, difícil de colocar em prática. Depois que você começa a frequentar hackathons você percebe que algumas ideias SEMPRE se repetem, principalmente nos hackathons voltados para startups. Tem a WishList, tem o Guia de Baladas, Compartilhamento de Eventos entre amigos, etc… Depois de alguns hackathons você vai ver que as ideias se repetem e vai ver que você mesmo tem essas ideias, elas são simples, são as primeiras ideias que vem à cabeça. Pensar na ideia não é perder tempo. Gaste o tempo pensando e discutindo a ideia, estude as APIs dos patrocinadores, quais terão que ser utilizadas, veja qual tipo de integração seria legal que existisse entre elas. Se for uma coisa útil, ótimo. Se não for, que seja divertida!
No começo de setembro eu participei do Techcrunch Disrupt Hackathon e vencemos na categoria Melhor uso da API do Concur. A ideia partiu do Roberto, que queria ser lembrado de lugares que ele já tinha visitado em San Francisco. A partir dessa ideia, resolvemos desenvolver o mínimo que daria para provar o conceito em apenas 24 horas. Como eu tenho experiência com softwares e APIs de viagens como Sabre, Expedia e Regente eu acabei ficando com a API do Concur e o Roberto com a API do Evernote. Fizemos o BizMem um aplicativo que juntava todas as notas que foram criadas pelo usuário quando ele estava viajando e juntava com as informações de viagem fornecidas pela Concur, assim poderíamos melhorar a experiência de Viajantes à negócios. O pessoal do Evernote e do Concur gostou muito.
5 – Corte Requisitos
Não tente fazer tudo. Nos hackathons o legal é desenvolver coisas novas e não perder tempo com aquilo que todo mundo sabe. Se o login não for tão importante para o core do que você quer mostrar então corte o login. Se você não é viciado em testes, corte os testes. Corte o monte de ideias que vocês tiveram e deixe só o que dá pra fazer. Conforme o desenvolvimento for se desenrolando fique atento ao relógio, se estiver demorando demais em uma tarefa, veja se você não vai ter que compensar mais na frente ou se você terá que cortar aquela tarefa.
6 – Faça Perguntas
Como todo bom programador você deve estar acostumado a procurar pelas respostas sozinho. Ler documentações, perguntar no StackOverflow, abrir Códigos Fonte e etc. O problema é que as vezes a resposta para o que você busca não está tão fácil de achar e na maioria das vezes existe um developer advocate da API do patrocinador pronto para te ajudar durante o hackathon. Perguntar para esse cara é sempre uma boa ideia, primeiro porque ele tem mais experiência com aquela API do que você, segundo porque é uma forma de mostrar pra ele (que comumente é um Juiz) o que você está fazendo. Esses caras podem contribuir com dicas muito úteis sobre a sua ideia e sobre o desenvolvimento, não desperdice esta oportunidade!
Além disso, pergunte para outros participantes, converse com eles, vá tomar café, coma junto com eles, tente se entrosar, afinal todo mundo ali tem pelo menos alguma coisa em comum com você, assunto é o que não vai faltar
7 – Make it Work, Bitches!
Faça seu demo funcionar. Parece idiota, mas por incrível que pareça, em todos os hackathons que eu fui vi pessoas apresentando algo que não funcionava, ou porque viajaram demais na ideia, ou não sabiam usar a tecnologia que escolheram ou não souberam manejar o tempo cortando requisitos iniciais.
Só não vai queimar o fusível aí, o networking é muito importante. Trabalhe de forma inteligente pra fazer funcionar mas aproveite pra curtir a oportunidade de estar com outras pessoas.
8 – Spread the Word!
Teve a sua ideia e está conseguindo desenvolver? Comece a falar sobre ela! Mostre para os outros grupos, mostre para os patrocinadores, mostre para os juízes, o importante é você aproveitar a maior contribuição que eles podem te dar que é o Feedback. As apresentações geralmente são muito curtas e o seu produto pode não ser tão bem explicado naqueles poucos minutos que você vai falar, ou talvez você não apresente bem em público, então é melhor já mostrar seu produto pra todo mundo antes da apresentação. Se possível monte uma marca, faça as pessoas lembrarem do que você fez.
Em março de 2014 eu participei do API HackDay que era promovido pelo Twitter e pelo SendGrid. Nós inventamos um produto que chamamos de Vai Bilu, a ideia era poder fazer coisas pela internet usando apenas o email ou o twitter, porque alguns planos de celular dão acesso irrestrito ao Twitter ou ao seu E-mail. Fizemos em homenagem ao ET Bilu e ficamos o final de semana todo falando com a voz aguda do ET. No final das contas, ganhamos em primeiro lugar no Hackathon e todo mundo sabia o que era o Vai Bilu, estavam imitando o ET Bilu também e se divertindo com a gente. Virou uma marca! A fórmula deu tão certo que resolvemos homenagear o ET Bilu em mais duas ocasiões, no Angel Hack com o Toca Bilu (um brinquedo feito com Arduino) e no VemBilu uma espécie de Tinder para Estudar que ganhou em primeiro lugar na categoria Educação no Hackathon da CJE – FIESP
9 – Participe!
Quando o Andrés Sanches assumiu o Corinthians ele foi perguntado como ia fazer pra que o Corinthians ganhasse uma Libertadores e a resposta dele foi: Primeiro temos que participar mais! Depois disso o Corinthians se classificou várias vezes seguidas para a Libertadores e foi Campeão da Copa Libertadores da América de 2012.
Para ganhar hackathons você precisa fazer a mesma coisa: Participar! Óbvio que você não vai ganhar prêmio em todos, mas com certeza você vai ganhar outras coisas como conhecimento, networking, Freelas e fazer amigos.
Você pode ficar por dentro dos Hackathons nas comunidades do facebook como a Hackathons Brasil e dar uma olhada no Challenge Post
Bônus – Não se misture com a gentalha
Muitas pessoas querem só se aproveitar, principalmente dos mais inocentes. São pessoas que vão em um hackathon com uma Ideia já pronta, não sabem programar mas querem desenvolver um MVP de graça. Fique atento com essas pessoas, na maioria das vezes elas não querem que você contribua com ideias, querem só sua força de trabalho.
Já vi isso acontecer várias vezes e na maioria das vezes essas pessoas conseguem o que querem prometendo parcerias e etc. Tome cuidado! Vi isso até nos Estados Unidos no DataWeek + API World Hackathon. Nesse evento duas pessoas vieram com ideias e falando que não sabiam programar, como eu já tinha visto isso acontecer, disse que não tinha interesse e vi que essas pessoas passaram por todas as mesas antes de irem embora.
Bônus – A apresentação
Na hora de apresentar mostre o seu demo funcionando. Deixe que as pessoas o testem. Responda as perguntas que foram feitas antes, quando você recebeu o feedback dos outros participantes do hackathon. Fale das APIs que você usou, mostre o que aprendeu e faça a apresentação ser legal, afinal todo mundo está cansado de ficar ali.
O principal na hora da apresentação: Nunca confie na Internet. Pode ser que não tenha na hora da apresentação e dê tudo errado, tenha o que você precisar rodando localmente também, se der algum problema você mostra a versão local e sem crise.
Fizemos um hack muito legal, o NewsMood.me, que mostrava o humor das notícias relacionadas a um termo e na hora da apresentação a internet falhou, ou seja, não deu pra apresentar =(
Muito bom Fernando, são dicas valiosas! Algumas valem até pra fora de Hackathons.
Vlw por compartilhar suas experiências e mano, sucesso, que futuramente tu possa postar mais casos de vitórias xD
Oi Jessé, muito obrigado! Desejo o mesmo pra você, um grande abraço!
Cara, interessante teu artigo.
Inscrevi meu email porque também gostei do artigo sobre Growth Hacking.
Não entendo nada de programação e estou entrando agora no ramo, mas poderia explicar o que é um API?
Legal Márcio, obrigado!
Cara, API, resumindo bem é uma forma de comunicação entre programas, a sigla é para Application programming interface, ou seja Interface de Programação de Aplicações. Um exemplo prático: imagina que você quer criar um programa que toda vez que alguém tweetar para o seu usuário você vai escrever o conteúdo daquele tweet no blogger. Então pra fazer esse programa você vai precisar acessar a API do twitter, que vai te informar quando alguém tweetou pra você e vai acessar a API do Blogger para poder escrever a mensagem em um Blog. No caso, o Twitter e o Blogger, são programas que não são seus e você não tem acesso ao código deles, mas através de APIs você pode acessar as funcionalidades deles. Foi bem resumido. Qualquer coisa, estamos aí, um abraço!
Boa Fernando! Ainda quero participar de um hackathon com você no meu time 😀
Abraços e esse site ta massa, Parabéns!
Valeu André, vamos sim, cara! O único problema é que com a idade to indo dormir cedo, aí fica cada vez mais difícil aguentar um hackathon inteiro, hahaha, abraços!
Fernandinhooooo, adorei o seu artigo! Vou compartilhá-lo na Fan Page do Curvilíneos.
Parabéns pela clareza na apresentação das ideias. Você escreve muito bem. Sou fã de vocês! VemBilu! rs
Bjão
Valeeeeeu Glenda!!! Muito obrigado =))) Beijo!
print “Não se misture com a gentalha!\n” * 10000
Muito bom seu artigo, otimas dicas !
Eu participei de um hackathon recentemente, não fui o campeão estive no grupo vencedor!
Gostei e estou louco para participar de novos hackathons futuramente, e a minha dúvida é: Como ficar por dentro dos próximos hackathons do ano?
Sempre que eu vejo a notícia de um hackathon no google, o evento já passou, ou vai acontecer numa cidade distante de onde eu moro.
Queria saber como ficar por dentro para poder participar mais vezes e aumentar minhas chances de vencer!
Fala Partterson, obrigado!
Cara, esse grupo do facebook sempre conta com os hackathons. Entra e fica sempre de olho: https://www.facebook.com/groups/hackathonsbrasil/
Sei que está pra rolar o Blue Hack da IBM, dá uma olhada tb: BlueHack Brasil https://www.facebook.com/events/867210903409778/
Inscrições: https://docs.google.com/forms/d/e/1FAIpQLSd3USwlwI0MWjRCdBMYpruVCppD3I8-VNocYusPB0F0UujuLQ/viewform?c=0&w=1
Site oficial: http://www.bluehack.org/
Muito obrigado!
Muito bom artigo, Fernando! Curti muito as dicas e foi uma ótima leitura. Eu tô querendo começar a participar de hackatons, só que não sei bem o que aprender. Eu venho programando há uns 6 anos, já (desde os 13 :D), mas principalmente para games e programação competitiva e comecei a pegar o Android Studio agora. Você tem alguma sugestão do que devo aprender?
Fala Lucas, tudo certo?
Então, acho que o que aprender pode ser muito pessoal, particularmente eu iria de python, pq é uma linguagem legal demais. É fácil, tem milhares de bibliotecas pra você fazer qualquer coisa e é super útil, até em um hackathon. De repente você pode mexer com um pouco de Flask que é um framework de desenvolvimento web, criar suas próprias APIs e consumir no Android, acho que em hackathons isso é super válido.
Outra coisa que acho interessante é dar uma olhada em Kotlin. Pra participar de hackathons, vc precisa programar rápido, acho que com Kotlin vc programaria mais rápido que em Java. Outra coisa essencial pra saber é Javascript. Aí fica a seu critério aprender pra usar no server com Nodejs ou apenas pra usar em algum frontend. Enfim, quanto mais conhecimento melhor!
Valeu aí e grande abraço!
Muito obrigado pelas dicas, Fernando! Vou conferir essas linguagens/frameworks e já começar logo a aprender phyton.
Abração!
Numa equipe de 4 integrantes, qual seria o perfil ideal de cada um, para desenvolver um sistema/aplicativo (focado em desenvolvimento e não startup)? Obrigado!
Fala Fernando, tudo bem?
Cara, desculpa a demora para responder, mas a resposta com certeza você já sabe: Depende!
Dependendo do projeto, do nível de especialização de cada um também, qual problema vocês querem resolver..etc.
De acordo com o que tiver que ser feito você vai precisar de mais front, ou mais back, ou de dividir o trabalho de uma forma que todos façam um pouco de cada coisa e muito provavelmente você vai precisar de um designer.