O que é programação extrema?
A programação extrema é um dos métodos mais recentes de desenvolvimento de software. O objetivo é aprimorar os métodos tradicionais de desenvolvimento de software, enfatizando o valor e a qualidade dos negócios. Esse método de programação tenta fornecer software completo e sem erros que atenda às necessidades da empresa, em intervalos de poucas semanas.
Na maneira tradicional de desenvolver software, um projeto se estende por muitos meses ou anos. Uma equipe de analistas tenta obter todos os requisitos dos usuários. Em seguida, um conjunto de designers cria a ampla estrutura do sistema. Depois disso, os programadores codificam o sistema dentro dessa estrutura. Os testadores garantem que o código esteja livre de erros e atenda aos requisitos.
O principal problema encontrado no desenvolvimento tradicional é que os próprios usuários nem sempre são claros sobre seus requisitos, e os requisitos geralmente mudam durante o longo período de tempo necessário para criar o software. Pessoas diferentes estão envolvidas em diferentes estágios, e a documentação quase nunca está completa, de modo que as pessoas nos estágios posteriores não conseguem descobrir o processo de pensamento das pessoas nos estágios anteriores. Isso resulta em software de baixa qualidade e baixo valor comercial.
Geralmente, a programação extrema envolve entregas freqüentes de software em algumas semanas. A motivação é fornecer software totalmente funcional que atenda a algumas necessidades críticas de negócios. Uma mudança nos requisitos é acomodada na próxima entrega.
A programação extrema, ou XP, abreviadamente, enfatiza a qualidade escrevendo testes antes de executar a programação. À medida que o software é escrito, o código é revisado e testado várias vezes ao dia. Todo o software é montado e testado uma ou várias vezes ao dia. Isso é feito para garantir que nenhuma parte do software interrompa o sistema.
Um dos aspectos bem conhecidos da programação extrema é a programação em pares, na qual dois programadores trabalham juntos em um computador. Devido a essa abordagem, o processo de pensamento, design e codificação que entra na criação do software é verificado imediatamente. A responsabilidade de desenvolver qualquer software é compartilhada.
Com esse método de desenvolvimento, o software começa com um design simples e evolui para satisfazer necessidades de negócios adicionais. A criação de recursos é evitada até que eles realmente se tornem alta prioridade. A ênfase está no trabalho em equipe para criar sistemas completos, para que cada membro da equipe desempenhe o papel de analista, designer, programador e testador todos os dias. Existe uma comunicação intensa dentro da equipe de programação, bem como entre os programadores e os usuários a quem o software é entregue.
Neste método de programação, o conceito de refatoração é altamente enfatizado. A refatoração é um refinamento interno do código para fornecer uma boa estrutura ao código e facilitar o entendimento sem afetar a saída. Espera-se que todo o trabalho envolvido em programação extrema seja feito em um ritmo sustentável, sem madrugada nem fins de semana. Isso aumenta o moral e reduz a probabilidade de erros.
A programação extrema leva o nome da idéia de que os aspectos positivos de como os bons programadores trabalham são levados ao extremo, a fim de aproveitar os benefícios. Esse método de desenvolvimento tem sido bastante eficaz em vários sistemas de software. Como essa ainda é uma nova metodologia, suas práticas estão em constante evolução.