No desenvolvimento de software, um defeito pode ser considerado, em geral, qualquer circunstância em que o software não se comporte como esperado ou desejado. Atualmente, os produtos digitais são lançados no mercado com 10 a 15% de defeitos ou mais não solucionados, mesmo quando são conhecidos. Uma coisa que ouvimos com frequência como profissionais de garantia de qualidade é: “Se vocês parassem de encontrar defeitos, o software poderia ser lançado!” Isso leva à pergunta: o que torna um defeito “aceitável”? Quando uma equipe deve se preocupar em resolver um problema ou deixá-lo passar? Essas perguntas e suas respostas são diferentes para cada projeto, equipe e setor. Tudo depende de quanto risco a empresa está disposta a tolerar. À medida que você desenvolve seu perfil de risco e decide quando parar de levar os defeitos a sério, aqui estão alguns fatores de alto nível a serem considerados.
Defeitos de software de alto risco? A definição é relativa
Antes de iniciar qualquer trabalho de desenvolvimento, é essencial que você entenda não apenas o objetivo final, mas também o quanto é essencial atingi-lo. Definir claramente as histórias e os requisitos do usuário ajuda os desenvolvedores e testadores a entender quando a visão não será realizada na execução devido a um defeito encontrado. No entanto, isso não significa que todos sempre concordem que um defeito é crítico ou grave – ou mesmo quando concordam, que o mesmo defeito será resolvido.
Por exemplo, uma instalação malsucedida em um determinado sistema operacional ou a falha completa de um único recurso do programa se destacarão como defeitos críticos para um profissional de garantia de qualidade. Mas o desenvolvedor ou proprietário de um produto pode ter certeza de que esses problemas serão resolvidos em versões futuras sem a necessidade de corrigir o código original antes do lançamento. Outras equipes podem simplesmente optar por assumir o risco associado ao defeito em vez de gastar o tempo necessário para corrigi-lo.
No entanto, o custo de um software de baixa qualidade que vai para o lançamento nos Estados Unidos foi de US$ 2,84 trilhões em 2018, sendo que 37,5% desse gasto foi causado por falhas no software e outros 16,8% foram causados pela correção e localização de defeitos. É por isso que cada equipe deve ter seu próprio perfil de risco e se sentir confortável com os riscos apresentados pelos defeitos que permitem no lançamento.
Defeitos de software com recursos limitados
A principal desculpa que as pessoas usam para permitir o lançamento de produtos de software com defeito é a presença de uma ou mais restrições. Talvez seja o desejo de não gastar dinheiro para resolver o problema, ou o prazo que passou há algumas semanas, ou a equipe de profissionais exausta e mal-humorada que não quer voltar ao código e encontrar a origem do mau funcionamento. O aumento da concorrência fez com que muitas organizações priorizassem especialmente a velocidade de colocação no mercado em detrimento da qualidade no mercado. Mas essa é outra grande aposta, especialmente se o seu sistema não foi projetado para esperar ou gerenciar falhas. Tudo o que você está fazendo é assumir um débito técnico que pode acabar custando mais caro no longo prazo para economizar recursos no curto prazo.
Defeitos de software que não são defeitos
Os defeitos não funcionais geralmente ocorrem porque os requisitos não foram bem definidos. Por exemplo, o desenvolvedor pode saber que é necessário haver um botão ou um formulário na página, mas a cor do botão ou o tamanho dos campos não foram claramente descritos. Isso significa que você terá botões de três tons diferentes de cinza, ou campos que permitem números totalmente diferentes de caracteres, ou alguns que permitem determinados caracteres e outros não. É importante observar que esses “não defeitos” podem representar alguns dos maiores obstáculos à adoção pelo usuário. Internamente, um gerente, proprietário de produto ou desenvolvedor pode ignorá-los porque está ansioso para reduzir o retrabalho necessário. Mas os custos de permitir esses problemas em uma versão podem ser incalculáveis, desde o desperdício de gastos com marketing até uma reputação manchada ou demanda excessiva da equipe de atendimento ao cliente. Além disso, esse trabalho ainda terá que ser feito novamente de qualquer maneira. Nenhum software jamais estará totalmente livre de defeitos, especialmente com atualizações constantes dos sistemas aos quais ele se integra usando APIs. A chave para determinar quais defeitos você deve permitir e gerenciar, e quais deve reduzir e resolver antes do lançamento, é avaliar a sua disposição de se expor ao risco.