Extreme Programming ou XP o que é ?
Autor: Mirian de Fatima Bueno | Publicado: 2009-06-04T01:05:00-03:00

Atualmente o foco de desenvolvimento parece ter mudado para a criação de grandes bibliotecas que cercam, muitas vezes de maneira inferior, as limitações de algumas linguagens. Outro foco é a criação de metodologias que empregam melhor as linguagens já existentes, como exemplo dessa tendência pode-se citar: Extreme Programming e UML (Unified Modeling Language) que são técnicas que se encaixam em praticamente qualquer tipo de linguagem de programação, mas não alteram fundamentalmente as mesmas. UML é uma linguagem de modelagem não proprietária de terceira geração, não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.   Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software.  Os quatro valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback e coragem. A partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.Dentre as variáveis de controle em projetos (custo, tempo, qualidade e escopo), há um foco explícito em escopo. Para isso, recomenda-se a priorização de funcionalidades que representem maior valor possível para o negócio. Desta forma, caso seja necessário a diminuição de escopo, as funcionalidades menos valiosas serão adiadas ou canceladas. A XP incentiva o controle da qualidade como variável do projeto, pois o pequeno ganho de curto prazo na produtividade, ao diminuir qualidade, não é compensado por perdas (ou até impedimentos) a médio e longo prazo. Todd Proebsting, um pesquisador da Microsoft, argumenta que o problema mais importante na criação de uma linguagem de programação moderna é como melhorar a produtividade do programador já que o hardware hoje é suficientemente poderoso e não requer que compiladores otimizem massivamente o código e os dados de um programa para obter uma boa performance. Proebsting diz que algoritmos e modelagem apropriada são suficientes para o desenvolvimento de programas eficientes em compiladores modernos e que criadores de linguagens deveriam se preocupar com meios de ajudar programadores a desenvolverem bons programas rapidamente, corretamente e facilmente. Segundo ele, linguagens de programação são o local certo para resolver o problema já que elas estão na raiz do processo, em oposição à engenharia de software e análise. Nesta mesma linha de pensamento, Paul Graham, em um artigo baseado em uma palestra que ele deu na PyCon, tenta imaginar como as linguagens de programação serão daqui a cem anos. Ele argumenta que as linguagens do futuro provavelmente serão baseadas em um núcleo limpo e conciso contendo todos os axiomas a partir dos quais as outras características da linguagem poderão ser derivadas. Ele escreve:“No mínimo, um exercício que pode ser útil é analisar cuidadosamente o núcleo de uma linguagem para verificar se há axiomas que podem ser eliminados. Em minha longa carreira como um chato eu descobri que lixo sempre gera mais lixo, e eu já vi isso acontecer tanto em software como embaixo de camas e em cantos de quartos. Ocorre-me que os galhos principais da árvore evolutiva (da programação) passam por linguagens que tem menores e mais limpos núcleos. Quanto mais da linguagem você pode escrever nela mesma, melhor.”A pergunta é: quais serão as novas e grandes mudanças das linguagens de programação? LINKS RELACIONADOS:http://logbr.reflectivesurface.com/2003/03/26/evolucao-das-linguagens-de-programacao/http://logbr.reflectivesurface.com/2003/05/14/mais-sobre-a-evolucao-de-linguagens-de-programacao/http://pt.wikipedia.org/wiki/UMLhttp://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extremahttp://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_programa%C3%A7%C3%A3o/Linguagens_de_programa%C3%A7%C3%A3o