Envolvendo-se com DevOps como uma Especialista em Teste

Texto de: Lisa Crispin (clique aqui para ir para o artigo original)
Traduzido por: Thaisa Sicco

Nos últimos anos, nós ouvimos muito sobre testes “shift-left” e “shift-right”. Nós vimos os benefícios de ter especialistas de teste envolvidos em atividades relacionadas a testes nos dois lados do “ciclo DevOps”. Inspiradas pelo gráfico de teste contínuo de Dan Ashby, eu e Janet Gregory criamos nossa própria visão de um ciclo de teste contínuo:

As atividades de testes ocorrem por todo o infinito ciclo de desenvolvimento de software. Muitos testadores acham natural testar ideias durante reuniões de planejamento de funcionalidades. Mais e mais times guiam o desenvolvimento com testes voltados para negócios - e tecnologia, usando práticas como TDD e BDD. E, mais times adotam a ideia de trabalhar juntos - incluindo os testadores - em atividades de teste que acontecem no lado direito do ciclo.

A abordagem da equipe para a qualidade está no coração do DevOps. Nós não simplesmente jogamos os artefatos de uma possível release para o time de operações. Nós trabalhamos junto com os SREs e engenheiros da plataforma para cuidar do nosso ambiente de produção e ajudar a prevenir as dores dos clientes. Muitos especialistas em teste hesitam em se envolver no lado Ops de DevOps. Eles não estão familiarizados com as ferramentas usadas para monitoramento, alerta e observabilidade. Eles talvez nunca tenham trabalhado com especialistas em operações. E quem quer ser chamado no meio da noite?

Eu tive sorte em trabalhar com administradores de sistemas realizando atividades operacionais em boa parte da minha carreira. Eu gostava de configurar a integração contínua, e aprender como automatizar as implementações ao ambiente de teste. Eu descobri o valor em aprender como nosso produto funciona, examinando os logs de dados. Conforme as plataformas progrediram para máquinas virtuais e depois para a nuvem, infraestrutura como código se popularizou, e novas tecnologias permitiram reunir e analisar enormes quantidades de dados sobre nossos sistemas. Eu fiquei tanto interessada quanto intimidada! O que realmente chamou minha atenção foi a chegada da observabilidade. Coletar eventos o suficiente para que pudéssemos fazer perguntas sobre nosso sistema de produção que nem imaginávamos precisar perguntar, faz muito sentido para mim. Nós, testadores, somos ótimos em fazer perguntas!

Como um especialista em teste, como você pode se envolver com DevOps? Como você pode aprender as habilidades, como você pode adicionar valor com as habilidades que você já tem? Aqui estão algumas dicas que me ajudaram.

Construa relações

A primeira vez que li o excelente livro de Katrina Clokie, A Pratical Guide do Testing in DevOps, eu fiquei impressionada em quanto do livro ela dedica à importância de construir pontes, não só dentro da sua equipe, mas com as outras equipes da sua empresa. Colaboração é o ingrediente secreto. Eu tenho trabalhado em vencer minha timidez para poder alcançar pessoas que podem me ajudar e ajudar minha equipe.

Um exemplo recente: Eu comecei um novo emprego este ano e descobri que as pessoas das outras equipes eram bastante dispostas a marcar reuniões 1:1 periódicas comigo. Eu aproveitei! Isso deu frutos logo de cara. Nós precisávamos migrar o pipeline de deploy de um dos nossos produtos para uma nova infraestrutura. Eu tinha acabado de aprender sobre essa nova infraestrutura por meio de um dos gerentes da equipe da plataforma em uma das nossas reuniões. Eu marquei outra reunião com ele para perguntar sobre os riscos em potencial e aprender onde deveríamos focar nossos testes. Isso me ajudou a preparar uma estratégia de teste eficaz. Eu trabalhei com um colega desenvolvedor e um SRE integrados ao nosso time para testar e nós concluímos a migração com segurança.

Como parte desse primeiro projeto, eu comecei a participar de uma reunião semanal de refinamento DevOps com desenvolvedores da minha equipe, nosso SRE integrado e outras pessoas envolvidas com a infraestrutura da plataforma. As ferramentas de monitoramento e alerta usadas pela nossa empresa eram todas novas para mim. Conhecer as pessoas que podiam me ajudar a aprender sobre elas foi uma ajuda enorme já que estávamos começando a implementar alguma observabilidade em nosso produto. Essa era uma área de enorme interesse para mim, e construir essas relações me ajudou a avançar nesse aprendizado. O que me leva a…

Ofereça ajuda

Se você ouvir falar de uma iniciativa relacionada a DevOps como a migração para uma nova infraestrutura, ou criar painéis para monitorar uma nova funcionalidade, ofereça ajuda! Na minha equipe atual, nós começamos a escrever histórias de usuários para criar painéis de monitoramento e observabilidade e também alertas para que nós consigamos visualizar as novas funcionalidades em produção. Se os dados parecem ruins, nós podemos desligar a feature flag enquanto investigamos. Eu faço questão de me envolver com essas histórias, para que eu possa aprender as ferramentas que usamos para esse trabalho.

Aceitar ajuda parece óbvio, mas pode passar batido, então fique atento a isso. Um engenheiro da plataforma que estava se especializando em uma das nossas ferramentas costumava se oferecer semanalmente para ajudar as pessoas a aprender sobre ela, mas eu nunca conseguia arranjar um tempo para isso. Todo mundo fazia o mesmo, então ele parou de oferecer. Recentemente, ele mencionou que ele ficaria feliz em fazer uma sessão semanal com algumas pessoas da minha equipe para construir painéis que nos dariam observabilidade em algumas partes cruciais do nosso produto. Mas com toda certeza! Eu agendei 30 minutos com ele, nosso SRE integrado, e um dos meus colegas desenvolvedores, para nos encontrarmos todo semana. Quando precisamos de mais tempo, nós agendamos.

Ajude a definir uma conduta

DevOps e observabilidade ainda são novos para a maioria das empresas de software. Se você é um profissional de testes, você talvez pense, “eu não sei muito sobre isso, mesmo tendo interesse, e eu não posso ajudar a construir essas condutas dentro da empresa.” Se você pensa assim, você pode estar errado. Pequenos incentivos podem ter grandes impactos.

Em um emprego anterior, nossa empresa estava sob a mesma liderança de monitoramento e observabilidade, e eu tive a oportunidade de ajudar a construir uma conduta de observabilidade. Era uma empresa de engenharia muito maior do que eu estava acostumada, com cerca de 40 equipes. Isso foi no começo da pandemia, então era tudo remoto. Eu comecei pesquisando o que estava acontecendo nas equipes que eram relacionadas a monitoramento e observabilidade. Coloquei minhas descobertas em um grande mapa mental, e antão eu me reuni com pessoas de diferentes equipes para examinar o mapa mental. Duas coisas boas aconteceram - eles demonstraram surpresa em aprender o que as outras equipes estavam fazendo, e eu aprendi o que o time deles estavam fazendo enquanto eles explicavam para mim.

Eu me perguntei o que eu poderia fazer com essa informação? Eu comecei uma página na wiki da nossa empresa com uma tabela do que cada uma das equipes estava fazendo em relação a observabilidade. Eu registrei quem estava liderando os esforços, quais ferramentas eles estavam usando, e quais eram os resultados. Algumas equipes faziam prova de conceito com OpenTelemery a Honeycomb. Outras equipes estavam trabalhando com ElasticSearch e Kibana. E outras usavam Snowflake.

Eu também criei um canal no Slack dedicado à condutas de observabilidade, e tornei a página wiki aberta para contribuição. Pessoas de diferentes equipes tomaram a iniciativa de atualizar a página wiki com suas atividades relacionadas a observabilidade. As equipes começaram a conversar umas com as outras. Um colega de trabalho e eu começamos a realizar sessões de conduta de observabilidade onde as pessoas podiam compartilhar suas experiências. Quando outras equipes queriam tentar implementar observabilidade, eles tinham acesso à pessoas com experiência que podiam ajudar eles a começarem.

É papel de um testador começar uma comunidade de conduta em torno das atividades DevOps? Bom, por que não? Faça perguntas, construa relações, reúna as pessoas certas - esses são nossos super poderes de testadores. Nós precisamos dessas relações porque nós sabemos que não conseguimos testar tudo antes do lançamento. Nós sabemos que naqueles dias de sistemas complexos na nuvem, nossos ambientes de teste não vão ser como os de produção. Nós sabemos que não podemos saber o que os usuários irão fazer - a não ser que comecemos olhando para os dados de uso.

Nós, testadores, temos trabalho para fazer nos dois lados do ciclo DevOps. Nos envolvendo em todo o ciclo de desenvolvimento, nós podemos ajudar a encantar nossos usuários.

--

--