[Todos os links levam a páginas em castelhano, excepto quando indicado o contrário]
Para o presente artigo, convidamos J.J. Merelo, Doutor em Física e Professor na Universidade de Granada, Espanha, a contar-nos a sua experiência na organização de hackathons educativas, na preparação para a Hackathon regional Desenvolvendo a América Latina 2012 [pt] que vai tomar lugar em Dezembro.
A priori a palavra hackathon não deveria levantar grandes dúvidas: maratona + programação. 52 quilómetros de programação até que alguém colapse de exaustão. Juntamente com mais algumas pessoas, dizes: vá lá! Vamos programar! Restam dúvidas? Não? Então siga.
Na realidade, não é assim tão simples e apercebemo-nos disso quando organizámos a primeira hackathon de projectos em software livre na UGR (Universidade de Granada).
Essa hackathon tomou lugar para dar apoio a projectos que participavam num Concurso de Software Livre, que estava a ser celebrado pela segunda vez em Granada. A ideia principal era chamar a atenção sobre os projectos, atrair a comunidade e, obviamente, dar um pequeno empurrão para que os participantes da UGR desenvolvessem os seus projectos e conseguissem solucionar quaisquer problemas que estivessem a enfrentar. Para ser sincero, não sei que ideia tínhamos. Mas havia a esperança que aparecesse a pessoa da UGR mais experiente em Java [pt], Python [pt], MVC [pt] e, claro está, em metodologias de programação.
Naturalmente, tínhamos tudo isso. E mais, apareceu também o caloiro com vontade de aprender e o tipo das telecomunicações que só sabia o que era Java e pensava que Python era o nome de um revólver. Vieram também tradutores. Quando fazes uma hackathon na universidade, pessoas de toda a universidade aparecem. A universidade é um grande espaço e alberga diversidade.
Pôr as pessoas a programarem desde o primeiro minuto é muito difícil. As ferramentas a usar têm de ser ensinadas, principalmente aquelas que são usadas para desenvolvimento colaborativo e redes sociais. Sim, redes sociais. Quer acreditem quer não, há mais utilizadores de Whatsapp do que do Twitter. E também metodologias de desenvolvimento. Não se trata de “tu faz isto e eu faço aquilo”, mas sim do que é para ser feito, como fazê-lo e com quem. A quem vais apresentar o resultado? Como é que vais testar o desenvolvimento e verificar se está correcto? É tudo isso. E assim começa a hackathon: conseguir pôr toda a gente ao mesmo nível dentro do possível. Só com isso, as primeiras horas já passaram.
A verdade é que as primeiras horas já tinham sido preenchidas bem antes disso: nos preparativos para a hackathon. Todos os participantes de projectos devem organizar tarefas que queiram ver tratadas durante a hackathon. Tarefas para todos os níveis, desde o nível de Jennifer da série IT Crowd (Os Informáticos) [pt], que mal sabia fazer clique ou duplo clique com o rato, até ao nível do “não te preocupes. Já está pronto um novo interpretador [pt] da linguagem que criei numa tarde”. E, claro, há que preparar as apresentações específicas dos projectos que vão ser abordados. Que bibliotecas estou a usar e porquê? Existem critérios definidos para o código? Será que estou a usar uma linguagem estranha que ninguém conhece e vou ter de ensiná-la às pessoas? E é com isto que se ocupam as horas seguintes.
Felizmente, a programação em si é o que vem a seguir, e para isso é preciso tempo e espaço. Tempo suficiente para que a tarefa seja iniciada e terminada, e um espaço no qual a mesma possa ser desenvolvida. Não deve ser descurada a boa iluminação do espaço (já aconteceu a luz ir abaixo na casa onde estávamos a trabalhar) e, acima de tudo, há que ter o número da entrega de pizzas ao domicílio, para que o estafeta possa chegar rápida e eficientemente. Até pode ser num bar, mas precisa de tomadas, e ninguém pode fazer má cara a quem mandar uma cerveja abaixo a cada hora. Ou se mandares três abaixo em meia hora. Às vezes para programar é necessária lubrificação extra por hidrocarbonetos.
No final, há três factores chave para uma hackathon bem sucedida: muita divulgação (e reforço que é preciso mesmo muita divulgação, durante um período de tempo alargado, boca-a-boca, cartazes, redes sociais, press releases), preparação adequada dos projectos participantes (tarefas suficientes e formação suficiente para aqueles que vão estar envolvidos), e projectos cativantes (se alguém quiser fazer um compilador de Brainfuck [pt] provavelmente não terá tanto sucesso como alguém que queira criar uma aplicação móvel para encontrar um parceiro). Quanto ao último factor, é difícil dar garantias. Como pode ser frustrante que algum projecto não atraia nenhum participante, tu, como organizador, deves ter algo previsto para esses casos. Um “hackatonista” suplente, por exemplo.
E o que é que resulta de uma hackathon? Código, claro. Isto não quer dizer que se trata de um evento social do qual as pessoas saem com as mãos vazias, há que pensá-lo como um gatilho para colaborações que muitas vezes resultam em amizades duradouras. Por isso quase de certeza que vamos repetir no próximo ano. Se estiveres em Espanha, juntas-te à 5ª hackathon de projectos UGR? E se estiveres na América Latina, vais fazer parte da Dal2012?