O que é qualidade de software?
Qual a sua importância?
Como especificar?
Como descobrir atributos de qualidade?
Hoje no Coco Xarope
Antes de mais nada, gostaria de informar que boa parte do conteúdo da postagem de hoje é baseada nesse ---> podcast <---- Irei abordar o tema de maneira que mesmo que você que não tenha ouvido o podcast e nem quer ouvir possa entender sem ficar boiando, mas pra uma visão ainda maior do assunto recomendo que ouçam.
Afinal o que é ter qualidade? Se te perguntassem o que tem mais qualidade um Fusca ou uma Ferrari o que você responderia? (Inclusive essa foi uma das analogias usadas no podcast pelo Geovani)


Agora pensando de novo, levando em conta o publico alvo, o custo de produção, valor final, qual tem mais qualidade? Eu diria que é aquele que atendeu suas especificações de construção após ser feito, a final, se eu projetei o Fusca pra atingir 80km e ele atinge os 80km ele tem mais qualidade que uma ferrari que foi projetada para atingir 250km e atinge apenas 150km, mesmo sendo superior ao fusca.
No podcast foram abordados algumas opiniões sobre o assunto, alguma das citadas e que bate com o que eu penso sobre o assunto é que qualidade é cumprir as especificações/prazos, é cumprir com as métricas estabelecidas pela equipe e pelo cliente, além de ajudar o próprio cliente a defini-las, trazendo a satisfação para o mesmo.
A importância da qualidade de software se dá a N fatores, afinal se o software não está atendendo aos requisitos do cliente tem grande chaces dele desistir da sua equipe. A falta de qualidade também acaba gerando gastos quando não atendidos, para o cliente cliente devido a manutenção, necessidade de troca, treinamento para equipe. Prejuízos para as empresas que prestam manutenção, prejuízo de sujar a imagem da própria equipe que desenvolveu.
- Poh Carlos, mas se eu contrato uma equipe pra desenvolver e eu vejo que não estão atendendo o que eu pedi eu já mando embora, não vou receber um projeto que não me atende!
É meu amigo, concordo com você, mas e quando o próprio cliente não sabe o que quer? Talvez o cliente ache que usar Framework X-23 Novo Lançamento que pisca seja o melhor, mas cabe também aos desenvolvedores orientar o cliente que o ideal pra situação que ele passa seja o Framework Z-Normalzim.
- Poh Carlos, mas se eu contrato uma equipe pra desenvolver e eu vejo que não estão atendendo o que eu pedi eu já mando embora, não vou receber um projeto que não me atende!
É meu amigo, concordo com você, mas e quando o próprio cliente não sabe o que quer? Talvez o cliente ache que usar Framework X-23 Novo Lançamento que pisca seja o melhor, mas cabe também aos desenvolvedores orientar o cliente que o ideal pra situação que ele passa seja o Framework Z-Normalzim.
- Ok Ok, mas como faço para definir essas métricas/especificações? Como posso ser orientado do que seria melhor? e como descobrir atributos de qualidade?
Como citado no podcast várias vezes, pode ser usado Metodologias Ágeis, mantendo o cliente perto, o orientar do que é qualidade, das ferramentas que melhor iram atende-lo, estabelecer juntos métricas, especificações e técnicas de medição de qualidade, para que o software possa ter qualidade, manter o cliente sempre próximo do desenvolvimento e do andamento do projeto.
Em alguns casos é melhor não aceitar o projeto visto que as métricas/especificações do cliente vão ser prejudiciais para equipe de desenvolvimento e até para o cliente, e o mesmo não aceita realizar alterações. Um bom desenvolvedor defini métricas próprias de qualidade como Número máximo de bugs, taxa de reutilização de código, entre outros; procurar sempre no que melhorar em cada projeto é algo que não pode faltar, afinal isso vai te ajudar a sempre se manter atualizado no mercado e te fortalecer contra a concorrência.
