Hackathon é uma competição entre desenvolvedores para criar soluções digitais para o benefício do cliente. Embora esse tipo de evento seja muito popular no ambiente de TI, muitos profissionais talentosos temem participar deles. Um dos motivos é o estereótipo sobre a perda garantida dos direitos à solução desenvolvida. Evgeny Mavrin, um dos vencedores de um hackathon em grande escala, desfaz esse mito e também fala sobre as vantagens e perspectivas da competição entre os programadores.
Evgeniy é um jovem desenvolvedor promissor. Participando da pista Megapopis Moscow, organizada pela Moscow Innovation Agency como parte da hackathon online VirusHack, ele, como parte da equipe EGD BAG (junto com Alexei Airapetov e Anna Kovalenko), teve um desempenho melhor do que o resto da tarefa de criar um bot de informações para o ICQ New messenger, que relatou usuários sobre a disseminação da infecção por coronavírus.
- Eugene, o que você e os membros da sua equipe faziam antes de participar do hackathon? Onde você estudou, onde trabalhou, quais projetos você executou? Você já esteve no negócio?
- Somos uma equipe de colegas de classe. Graduado na Bauman Moscow State Technical University no programa de Sistemas e Tecnologias de Informação em 2019. Todos nós estamos engajados na programação, mas em direções diferentes. Para mim, por exemplo, a pilha principal é C ++ / Qt, e para Lesha (Alexey Airapetov - nota do autor) - Java. Além do nosso trabalho principal, cada um de nós teve seus projetos de estimação em diferentes estágios de conclusão (leia-se abandono). Em geral, pouco aconteceu ao lançamento. Nenhum membro de nossa equipe jamais se envolveu em negócios. Mas participamos, digamos, do “freelancer amigável”, quando só precisamos da ajuda de TI de alguém que conhecemos.
Graças à educação e aos interesses comuns na área de TI, não é difícil para nós oferecer e implementar uma solução funcional para quase todos os problemas.
- Foi a primeira vez que você participou de um hackathon? Como você ficou sabendo da faixa da Megapolis Moscou?
- Pessoalmente, já participei da hackatona Aramco Upstream Solutions Technathon 2019 em uma equipe com companheiros da Universidade Estadual Russa de Petróleo e Gás com o nome de I.M. Gubkin, mas dessa vez não tivemos sorte. Não houve partida na equipe entre os participantes.
Aprendemos sobre a faixa Megapolis Moscow com amigos: eles acabaram de lançar um anúncio de alguma comunidade da Sharp (desenvolvedores C #) no chat. Eles abordaram a participação no hackathon do VirusHack de forma responsável: eles decidiram sobre a tarefa com antecedência e atribuíram responsabilidades aproximadamente. E realmente ajudou.
- Como você avalia a complexidade da tarefa do novo cliente ICQ? Qual é o nível dos adversários?
- A tarefa idealmente, em minha opinião, se encaixa no período de tempo do hackathon. Freqüentemente, em alguns dias atribuídos para um hackathon, muitas equipes apresentam um conceito ou protótipo como uma decisão final. Apresentamos um produto acabado, que mais tarde, juntamente com o cliente, foi rapidamente colocado em produção. O nível dos oponentes era alto. E fiquei muito preocupado em ver os resultados das outras equipes. Muitos participantes se permitiram uma interpretação livre da tarefa: alguém, por exemplo, fez um bot com o qual eles podiam jogar jogos casuais simples.
- Conte-nos sobre a decisão que saiu no final? Quais ferramentas foram usadas para desenvolvê-lo?
- Como resultado, obtivemos um bot de informações que informou os usuários sobre a disseminação da infecção por coronavírus.
Por meio da geo-tag, as pessoas poderiam receber informações sobre novos e antigos casos de infecção de cidadãos, saber os endereços das instituições médicas e laboratórios mais próximos para passar nos exames do COVID-19 e os endereços das farmácias e lojas mais próximas a eles. Além disso, um gerador de mensagens SMS simplificado foi integrado ao bot para receber um passe eletrônico.
Para ajustar os fluxos computacionais ao escrever o bot, foram utilizadas ferramentas da linguagem Java padrão. Para simplificar significativamente o trabalho do bot, uma biblioteca de APIs do ICQ foi escolhida. Também resolvemos o problema de simplificar a implantação de um bot em um ambiente de produção: sabendo que o Docker é o padrão no desenvolvimento empresarial agora, preparamos uma imagem do Docker.
Em geral, o resultado é um produto fácil de modernizar e escalonável.
- Qual foi a parte mais difícil?
- O mais difícil, provavelmente, foi "pentear" todas as funcionalidades do bot para que fosse conveniente de usar. Implementamos a interface de forma que o usuário insira dados em texto apenas em casos extremos, como para indicar o motivo da emissão de um passe único (sim, até recentemente era relevante). Toda interação com o bot foi reduzida ao uso competente das ferramentas do próprio messenger. Desativamos completamente a capacidade de inserir comandos manualmente. A propósito, aqui está um vídeo de demonstração do bot: https://youtu.be/1xMXEq_Svj8
- Você se tornou o vencedor do hackathon. Como os eventos se desenvolveram?
- Aprendemos uma coisa muito útil - como descobrimos, nós mesmos continuamos os detentores dos direitos autorais do bot, o que até me surpreendeu um pouco. Eu pensei que qualquer hackathon é, grosso modo, uma troca de uma ideia nascida em um brainstorm de equipe por um prêmio valioso. Mas reli o acordo e as regras de participação e não encontrei nada parecido. Portanto, para outros participantes do hackathon que estão preocupados em ter que transferir os direitos de seus empreendimentos, quero dizer que não, está longe de ser o fato de que você será obrigado a fazer isso. No hackathon do VirusHack, foi até possível armazenar o código em repositórios privados e apenas dar a um dos membros do júri acesso temporário para tomar uma decisão. Em qualquer caso, antes do hackathon, sempre leia os documentos de participação para que não haja surpresas no futuro.
A propósito, decidimos deixar nosso código aberto:https://github.com/airaketa/egdbag-bot . Garfo para sua saúde.
Após o hackathon, por nossa própria iniciativa, preparamos uma porta de bot para a API Telegram no caso da segunda onda da pandemia de coronavírus. Mas é melhor manter este projeto em repositórios privados para sempre.
Agora estamos pensando em adaptar a funcionalidade do bot para a situação atual, quando o modo de auto-isolamento for removido. Por exemplo, para pesquisar centros de fitness, restaurantes e outros sites da cidade. Os membros da nova equipe do ICQ não se importam em hospedar uma versão atualizada do bot em suas instalações.
- Os programadores devem participar de hackathons? O que, em sua opinião, eles podem dar aos participantes e vencedores?
- Definitivamente vale a pena. É uma experiência legal concluir uma tarefa aplicada do zero em alguns dias, que pode então ser discutida com especialistas. Além disso, esta é uma oportunidade de avaliar suas habilidades e "habilidades" dos membros da equipe em uma verdadeira maratona de dois a três dias. Também é uma rede. Em qualquer área, especialmente em TI, esse é um aspecto muito importante do desenvolvimento, me parece. Você pode encontrar novas pessoas úteis para você, comunicar-se com elas, ver seus projetos. Além disso, estando envolvido apenas no desenvolvimento no local de trabalho principal, você pode tentar a si mesmo no hackathon em uma nova função, por exemplo, como proprietário do produto, líder de equipe ou outra função. Mas para o vencedor, esta é uma oportunidade de cooperação de sucesso com empresas de ponta, auxiliando na promoção de sua ideia. Existem muitos casos em que projetos de grande escala surgiram de hackathons.
- Em agosto, começarão as inscrições para um novo hackathon para solucionar os problemas da cidade "Líderes da Transformação Digital" . Seus vencedores receberão recompensas substanciais. Sua equipe participará disso? Como você vai se preparar? Se você ganhar, em que gastará seu prêmio em dinheiro?
- Para mim, assim como para o restante da equipe, o objetivo principal de participar do hackathon é a oportunidade de desenvolver um protótipo de produto dentro de uma área de interesse para nós.
Ganhamos experiência no desenvolvimento de equipes e um bom projeto no portfólio, enfrentamos tarefas interessantes e desafiadoras. Claro, queremos vencer. No entanto, não pretendemos receber um prêmio em dinheiro. Se o projeto for útil, esta será a nossa vitória.
Para se preparar para a competição“Líderes da transformação digital” tentaremos expandir a composição da equipe: no hackathon anterior éramos três e, francamente, simplesmente não havia mãos suficientes. Além disso, resolveremos o problema com o software instalado para que todos os membros da equipe tenham o conjunto de programas necessário antes do início da competição (como a experiência mostra, uma grande quantidade de tempo é gasta precisamente na resolução de problemas com a sincronização de software).
Se ainda conseguirmos receber um prêmio, vamos gastar o dinheiro no PS5 e voltar para casa por algumas semanas. Piada! Claro, entendemos que o prêmio em dinheiro é, antes de tudo, uma ajuda financeira para o desenvolvimento do projeto. Hospedagem, máquinas virtuais e assim por diante fazem parte de onde as finanças serão alocadas.