Se as metodologias ágeis transformaram o timing do ciclo de desenvolvimento de software nos últimos anos, o DevOps foi além, alterando também a cultura de distribuição de atribuições nesse processo.

Há quem profetize até que a disseminação da cultura DevOps tende a dizimar em breve o segmento de QA (Quality Assurance ou “Garantia de Qualidade”, traduzindo o termo para a língua portuguesa).

Quando refletimos sobre o que o DevOps vem fazendo na engenharia de software, essa afirmação faz todo o sentido e sobre isso que falaremos agora!

Por que os QAs eram importantes nas metodologias pesadas de desenvolvimento de software?

De modo geral, o processo de criação de softwares envolvia as seguintes etapas, as quais eram cristalizadas, segmentadas e rigidamente distribuídas aos diversos membros das equipes de TI:

  • Definição de requisitos;
  • Análise de requisitos;
  • Desenvolvimento do software;
  • Implementação em ambientes simulados;
  • Busca de bugs e operações ineficientes;
  • Realização de melhorias;
  • Implantação definitiva;
  • Monitoramento de performance.

Perceba que em todos os projetos, a sequência é sempre a mesma: o software é produzido, os bugs são encontrados pelo time de QA e as correções em códigos ou estruturas são devidamente realizadas.

A Garantia de Qualidade só tem sentido de existência (na forma com que a conhecemos hoje) quando há erros para serem detectados e corrigidos tardiamente, após as primeiras implementações. Esse detalhe destaca a importância do segmento de QA nas metodologias tradicionais de desenvolvimento.

O problema é que a integração plena dos times que trabalham com DevOps antecipa eventuais falhas e dilui o encargo do zelo pela qualidade entre todos os membros da equipe, em todos os processos de produção.

Dessa forma, indo um pouco mais além, podemos cravar que a cultura DevOps não só torna desnecessária, mas também se choca totalmente com a existência de uma entidade rígida de QA, dotada da atribuição exclusiva de encontrar bugs e indicar correções.

Nessa nova geração do pensamento “ágil”, a harmonização entre times de desenvolvimento, qualidade e operações resulta em entregas contínuas, agregação de valor ao cliente desde as primeiras entregas e responsabilidade pela qualidade dispersa entre todos os stakeholders.

DevOps não precisa de QA?

Integração contínua

O “mantra” do DevOps é integração contínua e entrega contínua. Para materializar a primeira premissa, os desenvolvedores utilizam diversas ferramentas de integração — como o Cerberon — para agregar códigos, documentações e outras atividades em um repositório compartilhado múltiplas vezes durante o dia e cujos conteúdos todo o time tem acesso permanente.

No DevOps, todo o processo de concepção do software, desde a definição de requisitos até a fase de prototipagem (que deve, preferencialmente, ser feita em nuvem, para facilitar as iterações com o cliente, além de permitir trabalhos simultâneos em ambientes simulados) deve ser feito em conjunto, evitando gaps de comunicação que resultam em retrabalhos em fases tardias de entrega do produto.

O DevOps entra também no processo de automação, verificando permanentemente a qualidade das versões lançadas. O deploy automatizado é uma das grandes sacadas dessa mudança de cultura, uma vez que o fornecimento de aplicações com rapidez costuma ser prejudicado com processos manuais contendo instruções desatualizadas, que atrasam as entregas e as tornam mais propensas a falhas. Estamos falando, portanto, de uma mudança global no mindset das empresas de TI!

Com a utilização de ferramentas inteligentes (que propiciam uma única plataforma para todo o time de TI, asseguram deploy automatizado e agregam e reportam bugs permanentemente), ter um time exclusivamente ligado ao QA perde totalmente o sentido, concorda?

Entrega contínua

Uma vez que os membros de seu time estejam performando como verdadeiros campeões olímpicos de nado sincronizado, torna-se possível pensar em realizar entregas contínuas ao cliente final, em vez de gastar um imenso tempo e esforço na construção de documentações extensas (e cercadas de informações que jamais serão consultadas), que atrasam as primeiras entregas ao usuário e não permitem que este seja parte integrante no processo de construção da aplicação.

No DevOps, a abordagem incremental garante respostas mais rápidas às demandas do cliente, mesmo quando este apresenta novos insights sobre requisitos até mesmo durante as provas de conceito. Além disso, sua participação permanente durante a fase de desenvolvimento reduz os erros de interpretação entre o que foi solicitado e que está sendo programado, detalhe que, por si só, já reduz em muito os problemas no processo de implantação definitiva.

Toda essa alteração na dinâmica da concepção do software esvazia a função do QA, que passa a estar presente em todos os membros do time de TI.

O futuro do QA na cultura DevOps

A tendência é que, de fato, o antigo conceito de QA (Quality Assurance) seja desfigurado em breve. Não se trata exatamente de uma extinção completa, mas sim de uma redefinição de paradigmas, em que o ônus de zelar pela qualidade no processo de desenvolvimento deve ser entregue ao time de TI inteiro.

Ao mesmo tempo, essa mesma responsabilidade é diluída pelas automatizações a serem executadas em cada release, facilitando todo o processo de criação. Muito mais do que a detecção de bugs, o QA deve trabalhar sobre a prevenção, impulsionada pelas múltiplas ferramentas trazidas pelo DevOps.

É importante destacar que é possível trabalhar com DevOps em parceria com outras metodologias, como a organização por Sprints trazida pelo Scrum ou até com alguns aspectos das metodologias tradicionais. Essa capacidade de fundir TI tradicional à experimental é chamada de TI Bimodal, estrutura híbrida que deve estar presente em 75% das organizações de TI até 2017, de acordo com recente pesquisa do Gartner.

Já ouviu falar no ditado “Faça o que sempre fez e continuará obtendo o que sempre obteve”? Pois bem. Talvez seja a hora de mudar a cultura de trabalho em seu time de TI para começar a obter resultados mais robustos, com menor custo, maior assertividade e menor tempo gasto em cada projeto.

Gostou de saber como será o futuro dos QAs com a disseminação do DevOps? Então compartilhe nosso conteúdo nas redes sociais e não se esqueça de assinar nossa newsletter para ficar sempre por dentro das mais modernas metodologias de desenvolvimento de software! Até a próxima!