Geralmente, quando pensamos em qualidade de processos de produção, é comum nos lembrarmos de linhas de produção industriais e na conformidade dos itens gerados por elas. Contudo, este conceito não está ligado apenas a grandes fábricas de produtos físicos: quando falamos de desenvolvimento de produtos digitais, sejam eles sites, aplicativos, plataformas, etc., também estamos falando de um processo de produção.

E, como já falei diversas vezes aqui no blog, um projeto de desenvolvimento de software também precisa levar em conta a gestão da qualidade. Isso porque, nos dias de hoje, usuários de produtos digitais estão cada vez mais exigentes. Segundo o Google, 79% dos usuários saem de um site e procuram por outro quando não gostam do que encontram no primeiro. Imagine agora que este outro site pode ser o do seu concorrente!

Neste cenário, se você estiver participando de um projeto de desenvolvimento digital, é preciso que você considere a garantia da qualidade desde o início. É necessário que, ao longo de um processo de desenvolvimento, haja uma busca detalhada para identificar pontos que poderiam causar gargalos durante o uso da aplicação e resolvê-los antes que eles cheguem às mãos de seu usuário final.

Abaixo, falo mais sobre técnicas de garantia da qualidade para ajudar a garantir a conformidade em seus produtos digitais.

Quality Assurance: o pilar para a qualidade de seu projeto de desenvolvimento

No âmbito da tecnologia da informação, quality assurance (popularmente conhecido como QA, e também o que fazemos todos os dias aqui na Sofist) é o nome dado ao processo de analisar o quão bem um produto digital atende suas especificações e satisfaz as necessidades de seus usuários finais. Ou seja, temos que ter em mente que se deve respeitar tanto o que foi requerido pelo cliente quanto às expectativas de quem realmente vai utilizar o produto.

A garantia de qualidade tem como objetivo mitigar o risco de que, ao final do projeto, um produto digital seja lançado com defeitos que impactem a experiência do usuário, o que pode trazer diversos prejuízos para a empresa, tanto em ordem financeira como em ordem institucional. E o custo de achar um bug em uma aplicação que já está online é bem maior do que o custo de encontrá-lo enquanto ela ainda não está disponível para o usuário.

Por isso, o QA não deve ser negligenciado ou colocado apenas como uma das etapas do projeto de desenvolvimento: o ideal é que ele integre o processo de ponta-a-ponta, sendo uma responsabilidade compartilhada entre todos os envolvidos no projeto, garantindo que o produto não passe por cada etapa do projeto com falhas ou imperfeições.

teste de software

Imagine como se fosse uma linha de produção tradicional: o processo de geração de valor de um produto ocorre conforme ele vai passando pelas etapas de uma cadeia produtiva, agregando peças e compostos até chegar a sua forma final. Contudo, caso alguma etapa desta cadeia esteja corrompida e, por consequência, gere um produto com defeito, o valor para o consumidor será comprometido.

Esta realidade é semelhante para os produtos digitais. Quando, por qualquer motivo, sites e aplicativos são lançados com bugs que impedem a utilização correta da aplicação, introduzidos durante o processo de desenvolvimento, o valor para os usuários é igualmente comprometido.

Diferentemente de uma linha de produção industrial, contudo, as etapas do processo de desenvolvimento de software funcionam mais como um modo de direcionar o trabalho da equipe envolvida, não tendo a necessidade de ter estágios fixos. Isso dá ao projeto uma maior mobilidade, permitindo que as equipes possam voltar em etapas anteriores para corrigir eventuais falhas, e então prosseguir com o processo.

Trabalhar com QA ao longo do processo de desenvolvimento de um produto digital é nada mais do que investir em prevenção. Afinal, quando se consegue encaixar práticas de qualidade desde a concepção do produto, você evita que os problemas chateiem seu usuário final. Contudo, quais práticas podemos utilizar para garantir a qualidade em nossos projetos?

Mas como garantir a qualidade?

Para garantir que a melhor versão do produto chegará às mãos do usuário, é preciso tomar alguns cuidados dentro das práticas da gestão da qualidade. Primeiramente, é essencial prestar atenção nos requisitos solicitados por quem quer que tenha encomendado o software. Entenda o que realmente o cliente espera do projeto, guiando-o para as melhores opções dentro do que é possível de se realizar. Ajude também seu cliente a definir com clareza suas expectativas e objetivos – deste modo, não haverá confusão na hora de realizar o desenvolvimento do produto, evitando estresse no momento da entrega.

Outra questão importante é saber administrar as expectativas dos clientes. Steve Jobs certa vez disse que “as pessoas não sabem o que querem até que usem”, mas não se pode simplesmente ignorar o modo como os usuários fazem uso de um software. Existem diversos dados e pesquisas acerca de como as pessoas utilizam sites e aplicativos que dão insumos para construir a melhor experiência possível. Portanto, estar atento aos comportamentos do consumidor enquanto utilizam suas aplicações se torna cada vez mais importante.

Por fim, existem os testes de software, que são uma importante ferramenta para garantir que seu produto vá para o ar com o mínimo de erros possível. Na prática, estamos evitando situações que frustrem o usuário final, pois simulamos o uso utilizando o viés do usuário, fazendo com que os problemas sejam reproduzidos em ambientes o mais próximo possível de situações reais.

Testes podem validar inúmeras situações que podem conter diversos problemas. Por exemplo, testes de funcionalidade podem validar que uma aplicação realiza de fato as funções para as quais ela foi programada, segundo os requisitos do projeto. Testes de usabilidade checam como é a interação de um usuário com um produto e/ou serviço, de modo a avaliar se ele é intuitivo e fácil de usar, dentro do que foi requerido.

Também é possível checar se o produto é seguro e não está vulnerável a ataques maliciosos por meio de testes de segurança. Outra possibilidade é avaliar se uma aplicação aguenta um grande número de usuários acessando ao mesmo tempo com testes de carga e stress. Todos esses testes cobrem frentes importantíssimas para o usuário.

Agora, pense no desenvolvimento de software como se fosse um ciclo PDCA – aquele de melhoria contínua usado em diversas empresas ao redor do mundo: teríamos o levantamento de requisitos e a preocupação com as expectativas dos usuários dentro da fase de “plan”, enquanto se coloca no papel todas as etapas do processo. O desenvolvimento do produto em si seria a etapa “do”, enquanto os testes teriam atuação dentro do estágio de “check”, uma vez que é necessário que se valide se o que foi produzido em cada etapa do desenvolvimento está dentro do esperado.

A etapa “act” do ciclo PDCA também é relevantíssima dentro desta realidade: agir em cima dos problemas encontrados na etapa de testes a fim de removê-los do produto e gerar uma experiência melhor é essencial. De tal modo, gera-se cada vez mais valor para os usuários finais.

Naturalmente, espera-se que este ciclo seja realizado inúmeras vezes, em lotes bem pequenos, para que a geração de valor ocorra de forma cada vez mais rápida. Isso é o que observamos hoje nas metodologias ágeis, onde temos períodos de desenvolvimento (chamados de “sprints”) bem curtos. Pensando em uma única funcionalidade dentro de uma “sprint”, podemos ter o ciclo PDCA inúmeras vezes, até que a funcionalidade fique pronta.

Um exemplo prático: o impacto de erros

Quando não agimos preventivamente em prol de identificar e corrigir erros em aplicações digitais, geralmente coisas ruins acontecem. Vamos pensar em um exemplo prático, materializado na realidade de um e-commerce.

Uma loja virtual depende diretamente da qualidade de seu site para manter a lucratividade de seu negócio. Isso porque um e-commerce disfuncional com certeza não fechará vendas, gerando baixas taxas de conversão e consequentemente impactando a receita da empresa. Imagine você: se, ao tentar comprar um produto em uma loja online, você se deparasse com uma página de checkout confusa e cheia de bugs, você insistiria na compra? Eu aposto que não.

Já cheguei a comentar aqui no blog que o Instituto Baymard, referência em estudos sobre usabilidade online, constatou que 28% dos consumidores abandonam uma loja online por conta de um processo de fechamento de compra muito longo e outros 20% deixam um e-commerce por conta de erros no site. E, como é de se imaginar, quanto maior for o índice de abandono do carrinho de compras, menores as vendas.

Por conta disso, é primordial se preocupar com questões como funcionalidade e usabilidade em uma loja virtual. Embora possa parecer complicado monitorar as diversas páginas de produtos de uma loja virtual, é possível testar os fluxos de compra mais comuns destes sites, inclusive monitorá-los de forma contínua. Deste modo, é possível prevenir erros que podem matar a conversão de um e-commerce, ao analisar os caminhos mais percorridos pelos consumidores.

Aja de maneira preventiva

Como qualquer processo de produção, o desenvolvimento de software também está sujeito a falhas que acabam por frustrar o usuário ou consumidor final. Produtos digitais necessitam ser desenvolvidos considerando que, no final, devem ser liberados para os usuários com o nível de qualidade que eles esperam. Sendo assim, tratar como prioridade o quality assurance, incluindo suas práticas desde o início de um projeto de produção digital, é essencial.

Se preocupar com as expectativas do cliente e também com as do usuário final de forma antecipada dentro do processo de desenvolvimento te dará insumos para produzir uma aplicação dentro dos requisitos e os testes de software te ajudarão a validar se seu produto está em conformidade, a orientar seus esforços de desenvolvimento, otimizar investimentos e a entregar uma ótima experiência aos seus usuários.