Extreme Programming – XP

by

Em 1990, com a adoção da orientação a objetos por parte de desenvolvedores e analistas de todo o mundo fez-se necessária a criação de novas metodologias, que colocassem mais ordem ao caos vigente no desenvolvimento de software. Além disso, buscava-se obter o hoje chamado reúso, ou seja, o reaproveitamento de código já escrito. Dentre as várias metodologias que surgiram para atender a esta demanda, destacam-se o Processo Unificado da Rational (RUP), e os Modelos Ágeis, um dos quais é o Extreme Programming (XP), criado por Kent Beck no fim da década de 90.

Extreme Programming é uma metodologia ágil de desenvolvimento de software. Tal metodologia foi criada por Kent Beck, dono e presidente da First Class Software Inc., que escreveu o primeiro livro sobre o tema, “Extreme Programming Explained“, publicado em outubro de 1999 pela Addison-Wesley Professional.

Vê-se que Extreme Programming têm uma maior leveza e simplicidade quando comparada a RUP, que também é amplamente empregada. Enquanto RUP prega uma maior formalidade e preocupação com documentação, que tornam o processo mais “pesado” e resistente à mudanças, XP recomenda que mudanças sejam prontamente “abraçadas” , aceitas sem relutância, pois parte-se do princípio de que alterações de projeto são inevitáveis, e o custo destas alterações não é alto como antigamente, mesmo na fase de implementação do software, idéia que é defendida por Beck (2004) e Wuestefeld (2001), entre outros. Isto é válido sobretudo quando se agrega ao processo características como simplicidade e um rápido feedback por parte dos clientes, que como já foi dito são os valores essenciais em Extreme Programming.

Quando se fala em simplicidade, o que se afirma é que deve-se ser objetivo e fazer um design simplificado e incremental do sistema. O código implementado também deve ser o mais simples e “enxuto” possível. Código e testes devem comunicar tudo o que analistas e desenvolvedores precisam saber, e nenhum código deve ser repetido, em princípio. Os nomes dos métodos, variáveis e demais entidades também devem ser significativos. Estes fatos já seriam suficientes para notarmos a importância da adoção de padrões de codificação.

Criar um sistema simples que resolva de forma elegante uma demanda não é tarefa fácil. Além disso, quando se projeta um “sistema simples” deve-se ter em mente todos os requisitos do mesmo, que normalmente não podem ser menosprezados. Extreme Programming valoriza sistemas simples, não simplórios e/ou medíocres.

Outro fato a se considerar é a relatividade da simplicidade. Ao se mostrar soluções distintas para equipes diferentes, com conhecimentos diferentes, certamente a solução mais simples aos olhos de uma das equipes não será necessariamente a solução mais simples aos olhos da outra.

XP recomenda que se uma solução funciona em determinado lugar deve-se tentar usá-la em outro contexto, mesmo em escalas diferentes. Obviamente nem sempre tal procedimento funcionará, mas em muitos casos é um bom ponto de partida .

Outro princípio aparentemente controverso em XP é o da falha. A metodologia recomenda que em alguns casos, se você não sabe o que fazer, arrisque-se a falhar, implementando soluções que você não sabe se funcionarão, a fim de descobrir se elas serão boas soluções ou não. Em alguns casos, o tempo gasto será menor do que o tempo decorrido em extensas discussões sobre diferentes soluções com a equipe .

Obviamente, caso seja realmente considerado este princípio requer bom-senso. Ir direto para implementações sem um mínimo de reflexão e discussão vai contra a comunicação, que é um valor crucial em XP. Além disso, em alguns casos (possivelmente na maioria deles) a equipe de desenvolvimento chega a um relativo consenso sem a necessidade de longas e exaustivas discussões, o que leva a apenas uma tentativa de implementação inicial (que espera-se ser a mais adequada, obviamente).

Em XP o desenvolvimento (incluindo design e outras etapas) é feito em forma de pequenos incrementos, partindo-se do pressuposto que o overhead de pequenos passos é bem menor do que o tempo perdido quando grandes mudanças mostram-se incorretas depois. Várias práticas em Extreme Programming são concretizações deste princípio, como os testes antes do código e a integração contínua.

A programação em pares é certamente a prática mais característica e mais controversa de XP, pois recomenda que a implementação do código seja feita sempre por pares de desenvolvedores (em apenas um computador por par). Note-se que está se falando da implementação: idéias podem – e devem – ser pensadas também individualmente.

Beck (2004) enumera algumas vantagens da programação em pares. Segundo ele os parceiros:

Mantêm um ao outro focado no trabalho.

Realizam refinamentos no sistema (brainstorms);

Tornam idéias mais claras;

Possivelmente tomam iniciativa quando o outro não sabe o que fazer;

Estimulam-se a cumprir as práticas com mais rigor.

Ainda segundo Beck (2004), a programação em pares é cansativa e usualmente desenvolvedores conseguem realizá-la por no máximo 6 horas por dia.

Uma prática essencial em Extreme Programming (mas não exclusiva desta metodologia) é o uso de padrões de projeto. O objetivo é aumentar consideravelmente o reúso, e consequentemente a velocidade de desenvolvimento. Além disso, a manutenção do sistema torna-se mais fácil, devido à maior simplicidade e similaridade com outros sistemas já criados.

Ao que tudo indica, os fatos se mostram favoráveis a Extreme Programming. Amorin (2006), que inicialmente também duvidava dos benefícios da metodologia, confirma a afirmação de Beck: ao se utilizar as práticas em conjunto, obtém-se melhorias dramáticas de desempenho. Brad Jensen, vice-presidente da Airline Products Development, Sabre Airline Solutions, afirma em entrevista a Beck (2004) que utilizou XP em uma equipe de 300 pessoas. Os resultados foram aparentemente excelentes: Um dos sistemas não apresentou um único erro em dois anos de uso. A taxa média de erros segundo Jensen é de um ou dois a cada mil linhas de código. Ainda segundo ele, o Bangalore SPIN, que consiste em dez empresas Capability Maturity Model (CMM) nível 5, reporta uma taxa média de oito defeitos a cada mil linhas, portanto muito superior.

Não se afirmará aqui que todos os princípios e práticas de Extreme Programming são válidos, nem tampouco se afirmará o oposto. De qualquer maneira, trata-se de uma metodologia que tem seu mérito por propor soluções inovadoras, humanas, criativas, objetivas e ágeis e que trazem resultado real em alguns contextos, além de romper corajosamente paradigmas ultrapassados do desenvolvimento de sistemas e dar novos ares a esta ciência.

 

Texto Resumido Retirado de

Extreme Programming – Valores, Princípios e Práticas

Por

Alexandre de Castro Gontijo

Monografia final de Curso

 

Prof. Dr. Roberto da Silva Bigonha

Orientador

Anúncios

5 Respostas to “Extreme Programming – XP”

  1. Cassio Rogerio Says:

    Quando forem resumir um texto, evitem simplesmente “cortar” partes para que o texto não fique sem lógica.
    Por exemplo: “Em 1990, contudo, com a adoção da orientação a objetos por parte de desenvolvedores…” Esse “contudo” implica que havia um texto antes disso e acabou ficando sem lógica.

  2. agostinho Says:

    Vc pode colocar a bibliografia? Eu vou colocar no meu TCC o Amorin (2006) e o Beck (2004). Preciso das referencias!!!
    Grato!
    Que Deus abençoe,
    Agostinho Jr.

  3. Alexandre Gontijo Says:

    Olá, eu fui o autor desta monografia, nem sabia que haviam feito este resumo rs. Descobri por acaso digitando meu nome no Google.
    Aqui vão estas duas referências bibliográficas (AMORIN na verdade é BARBOSA, isto foi corrigido posteriormente):

    BECK, Kent; ANDRES, Cynthia. Extreme Programming Explained: Embrace Change. 2. ed. Addison Wesley Professional, 2004, ISBN 0-321-27865-8

    BARBOSA, Tanila A. Extreme Programming [mensagem pessoal].Mensagem recebida por em 17 fev. 2006.

  4. guilherme Says:

    Não é SPAM!!! Pesquisa sobre Extreme Programming (XP) – Por favor responda

    Meu nome é Guilherme, sou aluno do 8º período do curso de Análise de Sitemas do CESMAC (Centro de Estudos Superiores de Maceió),
    e estou fazendo uma pesquisa de campo sobre a adoção da extreme programming (XP) e da metodologia ágil, que é tema do meu TCC.

    Por favor acesse o link :

    http://extremeprogramming.questionform.com/public/Pesquisa-sobre-Extreme-Programming-%28XP%29

    Obrigado pela sua colaboração!!

    Guilherme Freire (gfreire.al@gmail.com)

  5. Best plagiarism combat on Says:

    Have you ever thought about creating an e-book or guest authoring
    on other websites? I have a blog based upon on the same information you discuss and would love to
    have you share some stories/information. I know my visitors would value your
    work. If you’re even remotely interested, feel free to send me an email.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s


%d bloggers like this: