Você já deve ter ouvido falar sobre a dificuldade no relacionamento entre os desenvolvedores e a equipe de QA dentro dos times de TI. Este artigo vem para desmistificar que as duas áreas não podem trabalhar juntas em harmonia.

Ao tentarmos compreender por que esta relação pode ser difícil, é importante entendermos o real papel de cada equipe dentro de um processo de desenvolvimento. E a diferença entre os devs e os QAs está no papel geralmente atribuído a cada área.

De forma simplificada, podemos dizer que o papel dos desenvolvedores é o de escrever códigos que resultam em determinadas funcionalidades em um software. A partir da linguagem da programação, os desenvolvedores dão vida a um sistema.

Já o time de QA tem, em estruturas mais tradicionais de times de TI, a missão de testar o produto gerado pela equipe de desenvolvimento a fim de encontrar possíveis bugs, apontando melhorias para que os recursos entregues forneçam a melhor experiência ao usuário.

Entretanto, é muito comum haver uma rixa entre os dois papéis. É comum ver desenvolvedores considerando testadores como “inimigos” que procuram encontrar problemas em seu trabalho, enquanto QAs podem avaliar o desempenho de seus pares desenvolvedores ao encontrar um grande número de bugs em seu trabalho.

Assim você pode imaginar como visão antagônica pode ser tornar pouco produtiva.

De forma bem-humorada, a charge brinca com a relação entre DEVs e QAs.
Fonte: www.zelger.org

Entretanto, quando os dois papéis não trabalham em conjunto em um sistema harmônico, o principal objetivo de um time de tecnologia não é atingido: a entrega de valor. Em outras palavras, quando há uma realidade antagônica entre esses dois profissionais, o usuário final é impactado por um produto que acaba não entregando o que promete.

Mas a verdade é que desenvolvedores e QAs podem (e devem!) trabalhar juntos. Deixando rixas e desentendimentos de lado e entendendo que um profissional depende do trabalho do outro, conseguimos encontrar formas de integrar o trabalho dos profissionais de qualidade ao longo do processo de desenvolvimento, mudando a mentalidade de trabalho e levando benefícios tanto para a equipe quanto para o usuário.

Quando desenvolvedores e QA’s não trabalham em conjunto, a entrega de valor é impactada severamente.

Abaixo, cito algumas maneiras de promover o trabalho conjunto entre esses dois profissionais de forma a agregar aos seus processos e ao produto final.

Melhorias na comunicação

Em toda área de uma empresa existe um fator de extrema importância: a comunicação. E na hora de integrar as equipes de desenvolvimento e QA a comunicação é essencial.

Parece simples, mas muitas organizações têm dificuldade de quebrar esta barreira: de acordo com o PMI, em 2018 29% dos projetos falharam devido à comunicação ineficiente em equipes.

Para obter agilidade e eficiência, uma ideia é abandonar métodos indiretos de comunicação, que tendem a ser improdutivos por conta de sua complexidade.

Um bom exemplo é um processo que envolve e-mails longos para resolver problemas que provavelmente seriam resolvidos com uma breve conversa. Sendo assim, a comunicação entre as duas áreas precisa ser imediata.

Unir os dois profissionais em um mesmo ambiente, por exemplo, facilita o contato entre eles. Caso não seja fisicamente possível (ainda mais agora, por conta da pandemia!), configure um bom canal de comunicação a fim de facilitar a interação.

Outra ideia é envolver esses dois papéis em todas as etapas do processo de desenvolvimento, garantindo que a comunicação seja fluida desde o início. Como fazer isso? A prática dos Três Amigos, muito comum em times ágeis, pode ajudar.

Basicamente ela busca alinhar as expectativas não apenas entre o desenvolvedor e do QA, mas também do Product Owner, colocando os três na mesma página e assegurando que todos terão o entendimento necessário para garantir o sucesso de um projeto.

Tente quebrar as barreiras que separam esses profissionais, tratando-os como um único time que pode se compreender e se comunicar livremente.

Testes em conjunto com o desenvolvimento

A prática da Entrega Contínua, na qual o time de desenvolvimento faz várias entregas pequenas e rápidas ao invés de entregar grandes demandas de uma única vez, permite que o time de QA seja inserido no processo de desenvolvimento e de solução de problemas.

Ao passo em que os desenvolvedores entregam releases menores, os QAs conseguem participar do ciclo de desenvolvimento desde a sua etapa inicial. Essa prática não só aproxima as duas equipes, mas também barateia o custo do desenvolvimento, uma vez que QAs antevêem possíveis bugs antes mesmo de serem implementados, evitando desperdício de tempo e retrabalho.

Para você ter uma ideia, a fase de levantamento de requisitos é onde 64% dos problemas são originados. Com o QA envolvido desde o início e o desenvolvedor entendendo esses requisitos de melhor maneira, é possível bloquear problemas que muitas vezes só seriam descobertos com o produto já no ar.

Desenvolvedores e QAs aprendendo uns com os outros

Trabalhar o Cross Training entre as equipes de desenvolvimento e qualidade pode ser uma ótima tática na hora de integrar os dois times em um só, permitindo que esses profissionais tenham um panorama maior do que geralmente é realizado pelos seus pares.

A partir do momento em que um membro da equipe entende o funcionamento de outras áreas e funções, amplia-se a compreensão do próprio papel dentro da organização, derrubando barreiras e abrindo portas para melhores relacionamentos e trabalhos integrados.

Equipe de cinco pessoas trabalhando com seus notebooks e smartphones

Trazendo para o universo de TI, podemos incentivar o desenvolvedor a ajudar o analista de qualidade a compreender a base de código desenvolvido, enquanto o QA pode ajudar o programador a entender sobre os testes de qualidade e a lógica por trás das técnicas de teste utilizadas no desenvolvimento do projeto.

Um QA que entenda a base de código estará em uma posição melhor para procurar pontos problemáticos e possíveis bugs. Já um desenvolvedor que entende o conjunto de testes tende a desenvolver um produto melhor e com menos pontos fracos, e eventualmente até aprende a desenvolver melhores testes unitários (falando de empresas que buscam implementar uma cultura de automação de testes).

Por fim, a Cultura de Qualidade

Como já falei aqui no blog, a uma empresa se reconhece em uma Cultura da Qualidade quando não existe um profissional restrito ao papel de garantir a qualidade do produto, pois a mentalidade existente é a de que todos são responsáveis pela qualidade, independente do time ou da função.

Em outras palavras, tanto os testadores quanto desenvolvedores (e, novamente: não apenas eles!) precisam aprender a trabalhar como uma equipe única com o propósito de entregar um projeto de maior qualidade possível, reconhecendo que a qualidade não é puramente da responsabilidade dos profissionais de QA, mas sim de todos.

Ao aplicar a Cultura de Qualidade, desenvolvedores e testadores assumem a responsabilidade pela qualidade não apenas do trabalho de cada área em si, mas também na qualidade total da entrega do projeto. O inverso também é válido: quando há dificuldade e falhas, a responsabilidade também é dividida e as soluções são arquitetadas em conjunto.

Saiba mais sobre Cultura de Qualidade.

Em um time de TI bem estruturado, não há a diferenciação entre “nós” e “eles”, pensamento que abre brechas para que devs e QAs enxerguem uns aos outros de modo antagônico. Acredite: é possível ter desenvolvedores e analistas QA trabalhando juntos e satisfeitos.

Alinhe seu grupo para operar com um objetivo em comum, abra as vias de comunicação e desestimule os obstáculos técnicos entre as áreas e sua equipe se tornará mais saudável e produtiva.