Conversamos com Siim e Kateryna, membros da equipe vencedora durante o primeiro hackathon da Veriff, que ocorreu em dezembro de 2020. Descobrimos tudo sobre a ideia vencedora deles, lançamentos canary, os benefícios que isso agora oferece à Veriff, e quais ideias eles podem ter para futuros hackathons.
O primeiro Hackathon da Veriff ocorreu em dezembro de 2020, e você pode ler tudo sobre o evento online em nosso blog. Aqui, no entanto, conversamos com Siim Tiilen e Kateryna Porshnieva, que fizeram parte da equipe vencedora, que construiu 'Lançamentos Canary'. Perguntamos a eles tudo sobre a ideia em si, como usaram suas 48 horas e como sua apresentação conquistou os juízes.
Siim: Lançamentos canary é uma técnica de teste de software usada para reduzir o risco de introduzir uma nova versão de software em produção. Em vez disso, ela é gradualmente lançada para um pequeno subgrupo de usuários, antes de ser introduzida para toda a plataforma/infrastrutura.
Kateryna: Essa técnica foi inspirada pelo fato de que canários eram usados em minas de carvão para alertar os mineiros quando gases tóxicos atingiam níveis perigosos, salvando assim muitas vidas.
No desenvolvimento de software, o mesmo pode ser alcançado ao lançar uma mudança gradualmente. Funciona mostrando um novo recurso a um subconjunto de usuários primeiro e, em seguida, aumentando gradualmente o número de usuários expostos ao novo recurso. Dessa forma, podemos experimentar e inovar de maneira segura.
S: A teoria em si existe há tanto tempo quanto consigo lembrar, mas sempre foi algo que seria bom ter.
K: Sim, a ideia definitivamente estava por aí há muito tempo, mas como a Veriff possui uma infraestrutura muito complexa, com cerca de 100 serviços, fazer isso funcionar exigiria um esforço significativo, então a ideia ficou na fila por muito tempo.
S: O plano era entregar uma solução funcional ao final do hackathon, e isso foi alcançado.
K: Inicialmente, queríamos ter uma solução funcional para pelo menos um caso de uso até o final do hackathon, mas nos empolgamos e fizemos 5 opções diferentes e até configurações automáticas.
S: Eu fiz a apresentação inicial, que foi bastante ad hoc, com a promessa de entregar uma solução funcional ao final do hackathon se uma equipe pudesse ser formada.
K: Eu estive ajudando Siim com o design do nosso Gerenciador de Deploy e, em algum momento, discutimos brevemente a possibilidade de adicionar um recurso de lançamentos canary ao gerenciador de deploy e criamos maquetes disso. Depois disso, Siim pesquisou as possibilidades e decidimos participar do hackathon com essa ideia. Siim fez a apresentação inicial e formou a equipe.
S: Eu fiz algumas pesquisas antes do hackathon, então tinha um plano bastante sólido sobre o que precisava ser implementado. Nós mais ou menos formamos duas mini equipes dentro da nossa equipe do hackathon, uma para desenvolvimento do backend (eu, Timofei e Dmitri) e a outra para frontend (Kateryna e Annalia) - depois disso, começamos a produzir código o mais rápido possível para concluir as tarefas.
K: Começamos definindo os requisitos do nosso MVP, decidindo que queríamos fazer funcionar para um projeto com uma opção de configuração.
Então dividimos o trabalho entre nós. Siim estava focado no trabalho do backend, Timofei estava pesquisando as capacidades da infraestrutura, Dmitry estava fazendo pesquisa sobre diferentes suportes de configuração e Annalia e eu estávamos focados em fazer uma interface bonita.
No meio do segundo dia, conseguimos fazer um projeto com uma opção de configuração funcionar e, a partir daí, nos empolgamos em adicionar mais e mais recursos. Testamos com diferentes projetos, conduzimos entrevistas com outros engenheiros para entender melhor os casos de uso e corrigimos todos os problemas que conseguimos encontrar.
Foi definitivamente um esforço em equipe e contar com uma equipe tão incrível de pessoas dedicadas com diferentes formações foi um fator enorme para o sucesso da ideia. O que eles fizeram foi magia, conseguiram realizar algo que tinha sido estimado para levar meses de trabalho de desenvolvimento em um dia - para todos os serviços da Veriff.
S: Tivemos uma solução pronta ao final do primeiro dia completo, então dedicamos a maior parte do segundo dia à apresentação final - Kateryna fez um trabalho realmente incrível lá, todos nós ficamos surpresos no final.
K: Nosso projeto foi o único focado em engenharia no hackathon e entendemos que precisávamos fazer um ótimo trabalho na apresentação para que todos entendessem o impacto do nosso trabalho.
Decidimos seguir a analogia do mundo real de desenvolver vacinas contra a Covid e como elas são testadas, e depois mapear isso para a Veriff e como nosso software é desenvolvido. Fizemos uma demonstração ao vivo, mostramos todos os recursos, demonstramos como funciona para todos os diferentes tipos de produtos da Veriff e explicamos diferentes usos potenciais.
O quadro branco acima mostra a estrutura da apresentação da equipe
Durante o segundo dia, realmente trabalhamos na apresentação - refinando slides, elaborando ideias e ensaiando a apresentação.
E funcionou muito bem! Honestamente, não esperávamos ganhar, mas ficamos super felizes e genuinamente surpresos quando Janer veio nos parabenizar por termos conquistado o primeiro lugar!
S: Como exemplo prático, alguns dias após se tornar possível usar lançamentos canary, um de nossos times de desenvolvimento já o utilizou para liberar uma grande refatoração de maneira segura.
K: Queremos que a inovação seja o coração da Veriff, e os lançamentos canary nos permitem experimentar e inovar de maneira segura.
Na minha própria equipe, já usamos lançamentos canary várias vezes para implementar recursos gradualmente. Também criamos um grupo de usuários dentro do nosso produto que recebe novos recursos primeiro. Dessa forma, podemos obter feedbacks precoces e iterar sem impactar todos os usuários de uma vez.
Em serviços em nuvem, como ML e automação, os lançamentos canary nos permitem lançar novos recursos aos poucos, reduzindo assim o risco de incidentes e tornando nosso produto mais estável.
S: Eu sou um verdadeiro viciado em hackathons, com cerca de 20 de experiência, mal posso esperar pelo próximo. Tenho algumas ideias, mas talvez esteja mais interessado em ver as ideias de outras pessoas na próxima vez para ajudar a implementar algumas delas.
K: Na próxima vez, gostaria de participar com um projeto mais voltado para o usuário, por uma mudança. Quando chegar a hora, tenho certeza de que haverá muitas boas ideias onde poderei aplicar minhas habilidades.