O que é qualidade para você? E como determinar que dado produto é de qualidade? A partir dessas simples perguntas, tenho certeza de que muitas respostas podem surgir!
Olhe a imagem a seguir. Essas cadeiras podem ser consideradas de qualidade? Se pensarmos que uma pessoa precisaria sentar-se nelas, muito provavelmente a resposta seria um sonoro não! Mas e se, na verdade, elas fossem ítens da casa da Barbie (i.e., um simples brinquedo)? Nossa resposta mudaria, né? Isso porque qualidade é um conceito multifacetado, que varia de acordo com quem está interessado em dado produto, bem como o propósito de tal produto.
Indo para o contexto de software, qualidade pode ser definida como o grau em que um conjunto de características inerentes a um produto ou processo cumpre os requisitos (explícitos e implícitos) estipulados. Assim, a qualidade de software está relacionada à definição e normatização de processos de desenvolvimento que criem produtos úteis e que forneçam valor mensurável tanto para aqueles que os produzem (satisfação do fabricante) quanto para aqueles que os utilizam (satisfação do usuário).
Dessa forma, é necessário observar essa qualidade através de diferentes perspectivas. O usuário avalia um software sem conhecimento de todos os aspectos internos, tendo assim interesse na facilidade de uso, desempenho, preço etc. Os desenvolvedores avaliam o software segundo a conformidade aos requisitos, bem como os aspectos internos desse software. Já o gerente do projeto avalia o software também segundo a conformidade aos requisitos, mas precisa considerar outros aspectos relacionados a custos/prazos, uma vez que a qualidade não pode estar desvinculada dos interesses da organização.
Além disso, quando falamos de qualidade de software, estamos falando, na verdade, tanto da qualidade do produto quanto da qualidade do processo de desenvolvimento desse produto. Em relação à qualidade do produto, é necessário estabelecer um conjunto de fatores/atributos que padronizem a avaliação da qualidade de software. Por exemplo, a norma ISO/IEC 9126 organiza os atributos de qualidade em seis características principais:
- Funcionalidade: Prover funcionalidades que satisfaçam as necessidades do usuário;
- Confiabilidade: Manter o nível de desempenho especificado;
- Usabilidade: Ser compreendido, aprendido, operado e atraente ao usuário;
- Eficiência: Possuir um tempo de execução e recursos envolvidos compatíveis com o nível de desempenho especificado;
- Manutenibilidade: Ter a capacidade de ser modificado;
- Portabilidade: Poder ser transferido de um ambiente computacional para outro.
Em relação à qualidade do processo, diferentes modelos foram desenvolvidos para mensurar a qualidade do desenvolvimento na organização. Isso é importante porque a definição e aplicação de um processo de desenvolvimento do software pode tanto contribuir para a geração de um produto de qualidade, quanto prejudicar a qualidade esperada. Mais detalhes sobre esse assunto podem ser encontrados no meu último texto aqui no Portal: “Maturidade em Software” 😊
Por fim, é importante lembrar que a gestão da qualidade de software envolve:
- Planejar atividades que garantam a qualidade do software
- Aplicar essas atividades de qualidade nos vários estágios de desenvolvimento, uma vez que qualidade não é uma fase do ciclo de desenvolvimento de software, mas parte de todas as fases!
- Realizar o controle da qualidade, medindo e monitorando a qualidade tanto do produto quanto do processo
- Considerar os “custos da qualidade”, incluindo custos de prevenção (ações para evitar defeitos, como planejamento de atividades de qualidade, planejamento de testes, realização de treinamentos), custos de avaliação (ações para avaliar a qualidade dos artefatos, como realização de revisões técnicas, testes e depuração), e custos de falhas (englobam preço de falhas internas e efeitos externos gerados pela má qualidade, como retrabalho para correção de erros).