Afinal, o que é qualidade?

Esse blog é sobre qualidade, mas sabe de uma coisa? Não conceituamos qualidade até agora. Bem, há diversas definições, de vários autores diferentes, e a que mais gosto é:

"Qualidade é a conformidade do produto às suas especificações" - Philip Bayard Crosby.

Adaptando para nosso contexto, qualidade é a conformidade com os requisitos. Então, para atingi-la, eu preciso compreender profundamente a necessidade do cliente, para a atendê-lo plenamente.

No entanto, esse é apenas um ponto de vista do conceito. Nesse caso, o produto final tem qualidade, o que já é uma grande coisa. Porém, a que custo chegamos a esse ponto, do estado da arte no atendimento aos requisitos? Então cabe uma reflexão, que é a respeito de como fazemos. Ora, o produto é o que vamos entregar. O modo de fazer diz muito também sobre a qualidade. Será que o cliente estaria disposto a pagar qualquer valor para obter um produto de alta qualidade? E o tempo? O fato de entregar com qualidade nos permite gastar quanto tempo quisermos?

Quando falamos a respeito de entregar algo em conformidade com os requisitos, também devemos seguir processos que nos ajudem a fazer certo da primeira vez, evitando retrabalho e refugos do processo. A engenharia de software copiou diversas técnicas das outras engenharias, aprendendo com essas. E isso é ótimo! Um exemplo é o conceito de lean, em que tudo o que não agrega valor é desperdício. Ou a ideia de kaizen, que é a melhoria contínua: sempre há espaço para aprimorar algo, seja fazendo mais rápido, ou com menor custo, ou com maior precisão.

Eu diria que entregar o que o cliente pediu é um tanto óbvio. Mas pensar na forma de entregar de modo a fazer isso rápido, sem retrabalho, visando nenhum defeito, ai temos um belo desafio.

A engenharia de software também descreve um processo produtivo, cujo produto é intangível. Isso dificulta a percepção das pessoas que também se trata de algo passível de técnicas de engenharia de produção. É preciso usar controle estatístico, para ajustes mais finos. Requer análise de causa raiz para atacar problemas no seu cerne. PDCA é perfeitamente aplicável a software. Enfim, todo o arsenal que é usado para alavancar qualidade em outros tipos de negócio é aplicável, com alguma adaptação, ao contexto de software.

Nos próximos posts, vou explorar a questão dos processos em busca da qualidade total. Se quiser saber mais a respeito de qualidade em geral, recomendo uma breve pesquisa sobre a indústria automobilística, incluindo o sistema Toyota de produção, praticamente um clichê quando se fala de qualidade.

Provocações finais

Se eu já atendo ao meu cliente com um produto de qualidade, por que eu deveria me preocupar com o processo? Meu cliente nem vê ou não tem ideia de como eu faço...

Um software que atende à necessidade imediata do cliente, mas que não pode ser evoluído, porque não usou as melhores práticas de desenvolvimento, tem qualidade? Essa é bem polêmica...

Como mensurar a qualidade? É importante fazer isso? Por qual razão?

Comentários

Postagens mais visitadas deste blog

Documento de arquitetura

Requisitos conflitantes e dilemas no projeto de software

Levantamento de requisitos