Você está na página 1de 9

MTODO GIL XP (EXTREME PROGRAMMING)

Luciano Malaquias de Souza*


*

RESUMO: Como o emprego dos mtodos para desenvolvimento de software tem se tornado mais popular, existe uma grande demanda, pela industria, da introduo de prticas de desenvolvimento de mtodos geis. Esta tendncia pode ser encontrada no mtodo Extreme Programming (XP) como um mtodo popular, despertando interesse tanto na rea acadmica quanto nas comunidades de programao. Apesar disso, o XP ainda no uma realidade na grade curricular das universidades, o que, de certa forma, impede o seu crescimento e a sua aplicao no mercado. Neste artigo, ser mostrado, atravs de pesquisa bibliogrfica, como o XP pode agilizar o processo de desenvolvimento de software, a teoria e aplicabilidade do mesmo na comunidade dos desenvolvedores de aplicao. Palavras-Chave: Extreme Programming XP - metodologias- referncias

ABSTRACT: As the job of the methods for software development if it has become more popular, exists a great demand, for the company, of the introduction of practical of development of agile methods. This trend can be found in the method Extreme Programming (XP) as a popular method, claim interest in such a way in the academic area how much in the programming communities. Although this, the XP not yet is a reality in the curricular grating of the universities, what, of certain form, it hinders its growth and its application in the market. In this article, it will be shown, through bibliographical research, as the XP can speed the process of software development, the theory and applicability of the same in the community of the members of application. Key-Words:
*

Extreme Programming XP- methodologies- references

Analista de Sistemas Snior e Docente da FIA

INTRODUO A constante necessidade de se obter resultados favorveis na economia mundial tem obrigado a indstria a reunir esforos para dinamizar o seu processo produtivo. Para isso, muito capital tem sido empregado no desenvolvimento de solues informatizadas que dem agilidade a seu processo de produo e, consequentemente, gerem um saldo positivo dentro do mercado. Porm, o processo de produo de desenvolvimento de software normalmente envolve riscos, como o atraso no cronograma, mudanas nos requisitos, sada de um importante membro da equipe de desenvolvimento, alta taxa de defeitos, sistemas tornando-se obsoletos, projetos cancelados, devido ocorrncia desses fatores de risco, dentre outros. Diante deste cenrio, os mtodos utilizados para o desenvolvimento de software vm ganhando importncia e gerando interesse tanto na comunidade de desenvolvedores quanto na rea acadmica. Contudo, alm de os mtodos tradicionais de desenvolvimento de software terem o foco voltado para a documentao, necessitam de requerimentos completos e fixos, o que os torna uma metodologia pesada e no flexvel. Foi contrapondo a este cenrio que surgiu o Extreme Programming uma metodologia gil, que visa um rpido desenvolvimento, atende s reais necessidades do cliente e, ainda, permite modificaes, medida que novas necessidades apaream. Esse foco no desenvolvimento gil que o XP traz, de grande interesse para a indstria, podendo ocasionar inmeros benefcios ao seu processo produtivo. Porm, atualmente faltam desenvolvedores capacitados para trabalhar com este mtodo, gerando uma grande demanda de profissionais com este perfil. Consequentemente, a incluso de mtodos geis de desenvolvimento, no currculo de referncia das universidades, de grande interesse para a indstria, fornecendolhe mo-de-obra qualificada e contribuindo para o desenvolvimento da metodologia. A seguir, sero apresentados os principais conceitos do XP, mostrando seus benefcios para o mercado e aplicabilidade, a incluso do XP no currculo referencial das universidades e metodologia terica do XP.

EXTREME PROGRAMMING (Aplicabilidade) O Extreme Programming um modelo de desenvolvimento de software, criado em 1996, por Kent Bech, no Departamento de Computao da montadora de carros Daimler Crysler, ele possui muitas diferenas em relao a outros modelos, podendo ser aplicado a projetos de alto risco e com requisitos dinmicos. O XP um conjunto bem definido de regras, que vem ganhando um grande nmero de adeptos e por oferecer condies para que os desenvolvedores respondam com eficincia a mudanas no projeto, mesmo nos estgios finais do ciclo de vida do processo, devido a quatro lemas adotados por seus seguidores, que correspondem a quatro dimenses a partir das quais os projetos podem ser melhorados. So eles: Comunicao, Simplicidade, FeedBack e Coragem. No entanto, o XP no deve ser aplicado a qualquer tipo de projeto. O grupo de desenvolvedores deve formar uma equipe de 2 a 10 integrantes, que devem estar por dentro de todas as fases do desenvolvimento. necessrio realizar vrios testes, s vezes, alterar o projeto em decorrncia destes. A equipe tem de ser bastante interessada e pr-ativa, para assegurar a alta produtividade, e o cliente deve estar sempre disponvel para tirar dvidas e tomar decises em relao ao projeto. Seguindo os requisitos expostos, anteriormente, o XP poder trazer inmeros benefcios ao mercado, de forma que o processo de desenvolvimento se torne mais gil e flexvel. Um desses benefcios a agilidade no Planejamento (Planning Games) de no definir uma especificao completa e formal dos requisitos, ao contrrio das metodologias tradicionais. Outro a produo de sistemas simples que atendam aos atuais requisitos, no tentando antecipar o futuro e permitindo atualizaes freqentes em ciclos bastante curtos. A comunicao com o cliente, no XP, mostra-se mais intensa que nos mtodos tradicionais, devendo o cliente estar sempre disponvel para tirar as dvidas, rever requisitos e atribuir prioridades, utilizando-se de sistemas de nomes, em vez de termos tcnicos para facilitar a comunicao. As equipes devem manter-se integradas com os projetos, melhorando a comunicao e a produtividade. Uma outra caracterstica importante do XP que o cdigo sempre escrito em duplas, visando a melhorar a qualidade do cdigo por um custo muito baixo, s vezes menor

do que o desenvolvimento individual. O cdigo deve estar padronizado, para que todos na equipe possam entender o que est sendo escrito e possa ser validado durante todo o desenvolvimento, tanto pelos desenvolvedores quanto pelos clientes, a fim de se saber se os requisitos esto ou no sendo atendidos.

EXTREME PROGRAMMING, INDSTRIA E UNIVERSIDADE A incluso de metodologias de desenvolvimento gil nos currculos de referncia das universidades de grande valia para a indstria, que busca maior produtividade com a utilizao do XP, mas que esbarra na falta de desenvolvedores qualificados para aplicar tais metodologias. A seguir, sero apresentado os conceitos do XP, descritos anteriormente, que podem ser aplicados nas universidades e, consequentemente, fornecer mo-de-obra necessria indstria.

EXTREME PROGRAMMING: CONCEITOS

Valores

Comunicao Simplicidade Feedback Coragem Respeito

Princpios Bsicos
Feedback

rpido

Simplicidade

Mudanas

incrementais

Abraar mudanas de qualidade

Trabalho

Prticas Para aplicar os valores e princpios durante o desenvolvimento de software, o XP prope uma srie de prticas. H uma confiana muito grande na sinergia entre elas, os pontos fracos de cada uma so superados pelos pontos fortes de outras. Jogo de Planeamento (Planning Game): O desenvolvimento feito em iteraes semanais. No incio da semana, desenvolvedores e cliente renem-se para priorizar as funcionalidades. Essa reunio recebe o nome de Jogo do Planeamento. Nela, o cliente identifica prioridades e os desenvolvedores as estimam. O cliente essencial neste processo e, assim, ele fica sabendo o que est acontecendo e o que vai acontecer no projeto. Como o escopo reavaliado semanalmente, o projecto regido por um contrato de escopo negocivel, que difere significativamente das formas tradicionais de contratao de projetos de software. Ao final de cada semana, o cliente recebe novas funcionalidades, completamente testadas e prontas para serem colocadas em produo. Pequenas Verses (Small Releases): A liberao de pequenas verses funcionais do projecto auxilia muito no processo de aceitao por parte do cliente, que j pode testar uma parte do sistema que est comprando. As versoes chegam a ser ainda menores que as produzidas por outras metodologias incrementais, como o RUP. Metfora (Metaphor): Procurar facilitar a comunicao com o cliente, entendendo a realidade dele. O conceito de rpido para um cliente de um sistema jurdico diferente para um programador experiente em controlar comunicao em sistemas de tempo real, como controle de trfego areo. preciso traduzir as palavras do cliente para o significado que ele espera dentro do projeto. Projecto Simples (Simple Design): Simplicidade um princpio do XP. Projeto simples significa dizer que caso o cliente tenha pedido que na primeira verso

apenas o usurio "teste" possa entrar no sistema com a senha "123" e assim ter acesso a todo o sistema, voc vai fazer o cdigo exato para que esta funcionalidade seja implementada, sem se preocupar com sistemas de autenticao e restries de acesso. Um erro comum ao adotar essa prtica a confuso por parte dos programadores de cdigo simples e cdigo fcil. Nem sempre o cdigo mais fcil de ser desenvolvido levar a soluo mais simples por parte de projecto. Esse entendimento fundamental para o bom andamento do XP. Cdigo fcil deve ser identificado e substitudo por cdigo simples. Time Coeso (Whole Team): A equipe de desenvolvimento formada pelo cliente e pela equipe de desenvolvimento. Testes de Aceitao (Customer Tests): So testes construdos pelo cliente em conjunto com analistas e testadores, para aceitar um determinado requisito do sistema. Ritmo Sustentvel (Sustainable Pace): Trabalhar com qualidade, buscando ter ritmo de trabalho saudvel (40 horas/semana, 8 horas/dia), sem horas extras. Horas extras so permitidas quando trouxerem produtividade para a execuo do projeto. Reunies em p (Stand-up Meeting): Reunies em p para no se perder o foco nos assuntos de modo a efetuar reunies rpidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe. Posse Coletiva (Collective Ownership): O cdigo fonte no tem dono e ningum precisa ter permisso concedida para poder modificar o mesmo. O objetivo com isto fazer a equipe conhecer todas as partes do sistema. Programao em Pares (Pair Programming): a programao em par/dupla num nico computador. Geralmente a dupla criada com algum sendo iniciado na liguagem e a outra pessoa funcionando como um instrutor. Como apenas um computador, o novato que fica frente fazendo a codificao, e o instrutor acompanha ajudando a desenvolver suas habilidades. Dessa forma o programa sempre revisto por duas pessoas, evitando e diminuindo assim a possibilidade de erros (bugs).Com isto, procura-se sempre a evoluo da equipe, melhorando a qualidade do cdigo fonte gerado.

Padres de Codificao (Coding Standards): A equipe de desenvolvimento precisa estabelecer regras para programar e todos devem seguir estas regras. Dessa forma parecer que todo o cdigo fonte foi editado pela mesma pessoa, mesmo quando a equipe possui 10 ou 100 membros. Desenvolvimento Orientado a Testes (Test Driven Development): Primeiro crie os testes unitrios (unit tests) e depois crie o cdigo para que os testes funcionem. Esta abordagem complexa no incio, pois vai contra o processo de desenvolvimento de muitos anos. S que os testes unitrios so essenciais para que a qualidade do projeto seja mantida. Refatorao (Refactoring): um processo que permite a melhoria contnua da programao, com o mnimo de introduo de erros e mantendo a compatibilidade com o cdigo j existente. Refactorizar melhora a clareza (leitura) do cdigo, divideo em mdulos mais coesos e de maior reaproveitamento, evitando a duplicaao de cdigo-fonte. Integrao Contnua (Continuous Integration): Sempre que realizar uma nova funcionalidade, nunca esperar uma semana para integrar na verso actual do sistema. Isto s aumenta a possibilidade de conflitos e a possibilidade de erros no cdigo fonte. Integrar de forma contnua permite saber o status real da programao. CICLO DE VIDA

Constri

Cliente

Define

aprende

Programador

Programador

Escolhe

Cliente

Estima

PRTICAS

CONCLUSO A partir do que foi discutido neste artigo, e estando ciente de que este tema tratado amplo, pode-se concluir que a incluso do Extreme Programming no dia a dia do desenvolvimento de software enriquece a comunidade de programao independente do segmento das empresas nos quais os profissionais desempenham suas atividades, garantindo a evoluo dos negcios e garantindo dinamismo na economia atual.

REFERNCIAS BECK, K. Extreme Programming Explained: enbrance change. Boston : Addison Wesley /Longman, 1999.

Você também pode gostar