A prática leva à perfeição

Feb 20 2023
Como engenheiros de software, praticamos a escrita de código quase diariamente, mas não costumamos construir ou projetar sistemas totalmente novos. No entanto, na maioria das vezes, é fácil para os engenheiros fazerem o que já sabem, com os sistemas com os quais estão familiarizados.
A prática leva à perfeição

Como engenheiros de software, praticamos a escrita de código quase diariamente, mas não costumamos construir ou projetar sistemas totalmente novos. No entanto, na maioria das vezes, é fácil para os engenheiros fazerem o que já sabem, com os sistemas com os quais estão familiarizados. Pensando nisso, as equipes do Moonpig têm realizado sessões de Architecture Kata. Quando estamos relaxando nas tardes de sexta-feira, nos reunimos em nossas equipes e nos dividimos em pequenos grupos ou duplas e todos tentamos projetar sistemas que resolvam um desafio específico. Isso varia desde o design de uma plataforma de hospedagem de imagens até um site de streaming de áudio de banda cover dedicado.

Design de hospedagem de imagem 1

Não há respostas certas ou erradas para nenhum dos desafios que nos propomos. Os desafios também não definem todos os requisitos funcionais ou não funcionais. Muitas vezes, quando as equipes de Produto abordam a tecnologia com um problema, temos que trabalhar para entender tudo o que é necessário, então esses exercícios nos ajudam a pensar sobre as questões e problemas que podem surgir. Discussões interessantes acontecem naturalmente quando as equipes começam a discutir suas diferentes soluções. Isso leva as pessoas das várias equipes a aprender sobre novas maneiras de abordar e resolver problemas, mas também nos lembra todos os prós e contras de qualquer solução. Não há resposta perfeita. Podemos ficar muito à vontade fazendo as coisas do jeito que sempre fizemos quando não temos a liberdade de projetar algo completamente novo.

Esses dois exemplos de como duas equipes abordaram nosso Kata de hospedagem de imagens têm algumas semelhanças, mas são duas soluções muito diferentes. As conversas e discussões que acontecem no final dessas sessões são uma parte fundamental de como aprendemos com elas. As pessoas são livres para sentir como vários serviços podem e funcionam sem a pressão de entregar um tíquete ou um projeto. Isso nos permite, como um grupo, compartilhar experiências passadas com vários serviços e como poderíamos usar vários recursos de maneiras diferentes.

Design de hospedagem de imagem 2

Levamos esse modelo de execução de katas de arquitetura ainda mais, executando alguns dedicados com nossos colegas de graduação, associados e aprendizes de engenharia. Essas sessões adotam uma abordagem um pouco diferente com uma discussão muito mais geral sobre como podemos usar várias tecnologias sem servidor da AWS para criar sistemas durante um período de várias semanas. Isso permitiu que os engenheiros em início de carreira tivessem uma ideia de como lidamos com os problemas de arquitetura à medida que as plataformas crescem e evoluem conosco, prestando atenção especial a alguns dos problemas que podemos encontrar ao longo do caminho.

Moonpig tem uma grande cultura geral de aprendizado e desenvolvimento e esta é outra maneira que nossos engenheiros têm tempo para praticar e aprender coisas novas. Capacitamos os engenheiros a experimentar novas tecnologias, configurando pipelines inteiros de um clique para picos de código em uma plataforma interna dedicada ao aprendizado que qualquer pessoa na empresa pode usar. As equipes de engenharia são incentivadas a dedicar tempo ao aprendizado e ao desenvolvimento, com muitas delas alocando um dia por mês especificamente para aprender algo novo, além do aprendizado diário que fazemos ao usar novas tecnologias para resolver os problemas de nossos clientes. É uma ótima maneira de impulsionarmos a inovação em engenharia.

Se você gostaria de fazer parte desta grande equipe de engenharia, confira todas as nossas vagas atuais .