Programar pode ser um pesadelo.
Não é que produzir código seja doloroso – é sobre a experiência geral.
As organizações se concentram na velocidade para descobrir rapidamente o que é importante para seus utilizadores. Mas isso leva a mais tecnologia, mais problemas.
Os engenheiros de software perdem horas resolvendo problemas de configuração, implantação ou outros problemas de integração — na verdade, não entregando valor.
A força contrária do Quality Engineering é necessária para manter a cadeia de valor do software restrita à Quality at Speed.
Este artigo compartilha como o Spotify permite o Quality Engineering Productivity ao dimensionar com um ponto de partida doloroso.
Segue a QE Unit para mais Quality Engineering.
O porquê do Quality Engineering Productivity
Os engenheiros da Spotify precisam experimentar, aprender e lançar recursos rapidamente.
A velocidade é alcançada com equipes multifuncionais com todas as habilidades necessárias para enviar recursos com alta autonomia.
Este é o seu definição de Quality at Speed:
“Transforme rapidamente ideias em produtos e experimente para melhorar a experiência do usuário, crescendo em novos mercados e mantendo-se competitivo como provedor de streaming de conteúdo.”.
Embora o foco na velocidade possa funcionar no início, cada equipe acumula uma dívida com práticas de engenharia divergentes e tecnologia fragmentada.
A Quality Engineering Productivity é o requisito para continuar iterando com Quality at Speed, equilibrando Speed e Standards.
A equipa de Platform Developer Experience é a contra-força responsável por manter os engenheiros capazes de iterar rapidamente em escala.
Quality Engineering para acelerar a Developer Experience
Uma Developer Experience de qualidade é impulsionada pela Quality Engineering Productivity.
A Spotify cunhou sua experiência como “rumor-driven deveopment” quando a única maneira de fazer o software funcionar era perguntando nas proximidades e seguindo rumores.
O tempo de integração para novos desenvolvedores chegou a 60 dias.
Isso era uma Developer Experience impactando sua capacidade de escala.
Spotify focou na Quality Engineering Productivity :
- Medindo a proporção dos inputs e dos outputs;
- Ligar continuamente os outputs com os outcomes;
- Continue melhorando para obter mais outputs e mais outcomes.
“Para entender como podemos ajudar as equipes do Spotify a enviar experimentos rapidamente, precisamos entender como eles funcionam.”
—Como melhoramos a produtividade do desenvolvedor para nossas equipes de DevOps, Spotify Engineering.
A Platform Developer Experience fornece produtos que otimizam os ciclos produtivos com componentes repetíveis por casos de uso.
Vamos ver o que essa equipe oferece para eliminar distrações.
Elementos de produtividade de Quality Engineering do Spotify
As equipes multifuncionais precisaram de 14 dias para executar um aplicativo recém-criado — demasiado lento para o Quality at Speed.
A equipe de infraestrutura trabalhou na criação de abstrações de artefatos de software rápidos e estáveis que os engenheiros podem aproveitar dependendo de suas necessidades.
Os seguintes produtos foram construídos:
- Backstage como balcão único para engenheiros de software;
- Golden Paths fornecendo bootstraps padrão com tutoriais;
- Tingle CI/CD, a plataforma de construção, implantação e lançamento;
- Programa de certificação de teste, fornecendo avaliação de teste.
Esses elementos reduziram o tempo para configurar um serviço de 14 dias para menos de 5 minutos.
Por exemplo, um desenvolvedor pode obter a estrutura de um site como o Spotify empacotado com uma URL, repositório, CI/CD, em um dia.
Golden Paths no Backstage como um balcão único
Reduzir o número de decisões permite processos escaláveis e rápidos.
O Golden Path é o caminho ‘opinativo e com suporte’ para ‘construir algo’ (por exemplo, criar um serviço de back-end, criar um site, criar um pipeline de dados).
Os Golden Paths são tutoriais passo a passo que orientam por esses caminhos disponíveis no portal Backstage.
Os engenheiros de software podem usar os Golden Paths para criar um aplicativo padrão seguindo um assistente passo a passo documentado com as melhores práticas.
Ao longo dos anos, os tutoriais do Golden Path cresceram com desenvolvimento de clientes, engenharia de dados, ciência de dados, aprendizado de máquina, processamento de áudio, web, etc.
Houve um tempo em que os engenheiros do Spotify não conseguiam imaginar a vida com o Golden Paths; agora eles não podem imaginar a vida sem eles.
Gerenciamento sistemático de compilação, deploy com o Tingle
Assim que um projeto funciona no laptop do engenheiro, surgem problemas de integração para implantar o aplicativo até a produção.
Tingle é um sistema de CI/CD que cria automaticamente o código enviado ao GitHub e dá feedback aos desenvolvedores lá e no Backstage.
Tudo isso sem precisar entender como configurar um pipeline de build.
O Tingle cria, testa, empacota e implanta automaticamente alterações na produção se todos os testes forem aprovados usando o fluxo de trabalho normal do GitHub.
O Spotify substituiu mais de 200 máquinas Jenkins independentes pelo Tingle, executando mais de dezenas de milhares de compilações toda semana.
Mas ainda faltava confiança para fazer o deploy.
Programa de certificação de teste para mais confiança nas entregas
Os engenheiros da Spotify usam a gamificação para submeter seu código aos testes apropriados.
Cada disciplina principal de engenharia tem um programa de certificação de teste que:
- Fornece verificações sobre a conformidade dos controles de qualidade;
- Fornecer relatórios sobre tempos de construção, cobertura de código e confiabilidade de suítes de teste;
- Alerte as equipes quando o código contiver testes não confiáveis (ou seja, testes irregulares);
- Dê selos ao lado dos serviços, dependendo do nível de certificação.
O programa de certificação de teste estimulou a criação de suítes de teste que suportam a aceleração dos ciclos de entrega de software.
A partir de 2018, eles mediram uma redução drástica de bugs de bloqueio e outros tipos de trabalho reativo.
Como isso pode funcionar com tanta autonomia?
Quality Engineering Productivity para equipes autônomas
Golden Paths, Tingle e o programa de certificação de teste ajudaram a padronizar a pilha de tecnologia.
Mas o Spotify mantém as equipes livres para escolher as ferramentas e métodos que se adequam à forma como operam.
Assim, a plataforma de Quality Engineering exigia modularidade para uma adoção contínua enquanto crescia em maturidade.
Cada equipe pode efetivamente decidir não usar nenhum para todos os serviços da plataforma, dependendo de seu valor agregado.
Isso promove um ecossistema onde apenas os componentes que permitem Quality at Speed permanecem em uso.
Produtividade de Quality Engineering para Quality at Speed
A Spotify acelerou em direção à Quality at Speed , aumentando pela Quality Engineering Productivity.
Construir um projeto requer menos de 5 minutos para engenheiros novos e existentes, suportando a escala de sua organização.
Os programas de certificações com medições e alertas sistemáticos continuam melhorando sua produtividade de engenharia.
Spotify aprendeu a manter as coisas simples:
- Mantenha um Golden Path por componente evitando sub-módulos;
- Documente os Caminhos como eles são — mesmo que dolorosos — e otimize-os;
- Fomentar o uso contínuo e feedback do ferramental da plataforma;
Backstage está disponível em open-source, oferecendo mais de 100 integrações. É usado por jogadores como Zalando, Unity, Expedia.
Suas melhorias atuais são automatizar a conformidade de projetos com seus Golden Paths usando Golden States e mantendo um bom nível de documentação.
Os Golden Paths são a documentação técnica mais lida e usada do Spotify – uma verdadeira conquista da Quality Engineering.
Pronto para construir sua Quality Engineering Productivity?
Segue a QE Unit para mais Quality Engineering.