Qualidade

Extreme Programming gera valor rapidamente e evita desperdícios ao máximo. Software de má qualidade representa uma enorme perda, pois causa:

  • Perdas para o negócio
  • Insatisfação do cliente
  • Conflito entre cliente e desenvolvedores
  • Desconfiança
  • Ansiedade
  • Relacionamentos desgastados
  • Perda de tempo corrigindo defeitos
  • Dificuldade para adaptar o software a novas necessidades de maneira segura

Equipes XP trabalham para criar software de alta qualidade. Não se trata de qualidade suficiente. O objetivo é altíssima qualidade para o software e nada menos que isso. Por que? Porque é mais satisfatório e econômico fazer software dessa forma.

Existe uma crença de que alta qualidade signifique gastos mais elevados. Não há dúvidas de que qualidade tenha preço, mas a falta dela tem um preço ainda maior. Empresas como a Toyota, compreendem isso e, não por acaso, ela é a montadora mais lucrativa do mundo. Seus carros são consistentemente considerados de altíssima qualidade. Desenvolver carros de alta qualidade, ao invés de comprometer lucros, os tornam ainda maiores. Em software é a mesma coisa. Alta qualidade significa menos custos, menos retrabalho, menos aborrecimentos e maiores lucros.

Lamentavelmente, qualidade talvez seja o item mais sacrificado nos projetos de software. Contratos de escopo fixo freqüentemente conduzem os projetos a situações nas quais as equipes se sentem impelidas a deixar a qualidade de lado, para cumprir o prazo. Considera-se, erroneamente, que desprezar a qualidade ajudará o projeto a avançar com mais rapidez.

Kent Beck, criador do XP, cita que "sacrificar a qualidade não é um meio eficaz de controle. Qualidade não é uma variável de controle. Projetos não andam mais rápido aceitando baixa qualidade. Eles não vão mais devagar porque exigem maior qualidade. Aumentar a qualidade normalmente resulta em entregas mais rápidas; enquanto reduzir os padrões de qualidade freqüentemente resulta em entregas mais tardias e menos previsibilidade."

Extreme Programming gera alta qualidade através de práticas, tais como:

  • Programação em par - O código é escrito por duas pessoas juntas. Isso leva a inspeção de código permanente e disseminação de conhecimento. Quanto mais conhecimento se adquiri, melhor se desenvolve e mais qualidade se introduz no software.
  • Desenvolvimento orientado a testes - Testes automatizados são escritos antes mesmo da implementação das funcionalidades. Isso ajuda a assegurar que, uma vez finalizadas, as funcionalidades realmente fazem o que se propõem a fazer.
  • Integração contínua - Os pares integram o que estão produzindo com o restante do código no repositório do projeto várias vezes ao dia. Isso ajuda a obter feedback rapidamente e descobrir eventuais erros cedo.
  • Refatoração - Os desenvolvedores revisam o código permanentemente e fazem vários ajustes ao longo do tempo para torná-lo mais claro, mais legível, mais simples e, portanto, mais fácil de compreender e adaptar a novas necessidades.

Autoria

Texto de Vinícius Manhães Teles.
Ilustrações de Leandro Mello.

Publicado em 02/10/2006.

Licenciado como Creative Commons Atribuição.