Como você define qualidade de software?

"A qualidade nunca se obtém por acaso; ela é sempre o resultado do esforço inteligente." (John Ruskin)
Doctor Who

Doctor Who

Muitos profissionais da nossa área têm dificuldades em definir qualidade de software devido à quantidade de aspectos que precisam ser considerados para avaliar se um software possui ou não qualidade. Apesar do processo de avaliação da qualidade ser amplo e complexo, a definição de qualidade de software é simples de ser compreendida.

Para avaliar a qualidade de um computador, avaliamos separadamente a qualidade de seus componentes, como vídeo, som, capacidade de processamento e quantidade de memória. A qualidade do computador pode ser considerada uma média das avaliações individuais de seus componentes. No software, a mesma idéia pode ser aplicada, porém, ao invés de olharmos para os componentes que o formam devemos olhar para como ele atende aos seus stakeholders: o cliente que paga pelo software, o usuário que trabalha diretamente com o software no seu dia-a-dia e o fornecedor que constrói ou mantém o software.

Um software que atende ao cliente é aquele que atende ao objetivo para o qual ele foi construído (atender ao objetivo é mais importante do que respeitar o escopo inicial). Outro fator importante é fazer com que o software seja construído de forma a preservar o investimento do cliente, ou seja, fazer com que o trabalho de mapeamento do domínio e de seus processos não se perca quando uma tecnologia específica precisar ser substituída (a camada de apresentação, por exemplo).

Um software que atende ao usuário é aquele que resolve os principais problemas do seu dia-a-dia de forma simples e objetiva e usa como base da comunicação a linguagem que o usuário domina: A linguagem de seu domínio.

Um software que atende ao fornecedor é aquele que visa não só a construção rápida do projeto, mas também práticas de engenharia e testes que possibilitem à equipe responsável pela manutenção do sistema tenham total autonomia na execução de suas tarefas. Usar práticas que facilitem a manutenção do software é fazer com que o investimento do cliente dure ao máximo, e todo profissional da área tem a responsabilidade de construir softwares pensando na próxima pessoa que irá manter o projeto.

Um software de qualidade é a base para um bom relacionamento com o cliente, com os usuários e com as equipes de desenvolvimento. Um software que não atende aos três stakeholders terá uma vida curta e será responsável por muitas dores de cabeça.

Cada área de estudo citada aqui direta ou indiretamente possui métodos e processos específicos para garantia da qualidade. É dever de todo profissional de desenvolvimento conhecer essas técnicas e utilizá-las da melhor forma possível visando obter um bom resultado ao final da jornada de desenvolvimento.

Aguardo feedbacks!

Recomendações de leitura:

Ubiquitous Language

DDD

Integração contínua

Negociação de contratos

Veja também:

Posts relacionados:
Tagged with:
 

2 Responses to “Como você define qualidade de software?”

  1. Excelente. infelizmente a grande maioria das vezes não atende os três…

Leave a Reply