Falando sobre XP

XP é uma metodologia para desenvolvimento de software que foi desenvolvida ao longe das décadas de 80 e 90, mas que somente a partir de 2001 ganhou impulso e passou a ser mais usado em todo o mundo.

Pertencente ao que se convencionou chamar de metodologias ágeis, XP baseia-se em quatro valores:

- Feedback

- Comunicação

- Simplicidade

- Coragem

Viníucius Teles, um dos grandes evangelizadores de XP no Brasil, afirma que “quando o cliente aprende com o sistema que utiliza e re-avalia as suas necessidades, ele gera feedback para a equipe de desenvolvimento”. Essa característica do feedback está fortemente relacionada à prática do XP  ter sempre junto à  equipe de desenvolvimento pelo menos uma pessoa que será usuária do sistema, bem como ao uso de ciclos de iterações bastante curtos.

A comunicação é entendida, segundo Teles, como o processo que permite que as informações sejam transmitidas dentro da equipe e entre a equipe e o cliente. Este processo tem que ser claro, rápido; não é focado na formalidade e sim na informação de qualidade. Para o XP a melhor forma de repassar uma informação é de forma oral e em reuniões de corpo presente.

No XP a equipe de desenvolvimento de software irá programar sempre o necessário para atender ao requisito do cliente, mas nada mais que isso. Ao propor essa abordagem, o XP se contrapõe a  outras formas de projetar sistemas que procuram antecipar problemas e de formas a obter ganhos.

A coragem como valor no XP pode ser observada em características como:

- Coragem para desenvolver o software de forma incremental

Adotando este paradigma mais uma vez reforça-se a idéia que o desenvolvimento deve ser feito para resolver os problemas existentes e que podem ser identificados. Deve-se abolir a idéia de programar funcionalidades no projeto que sejam baseadas em especulações.

- Manter o sistema simples

Significa preocupar-se em manter todo o projeto de forma geral, simples. Não tentar antecipar problemas e nem desenvolver funcionalidades que o cliente não deseja.

- Permitir que o cliente priorize as funcionalidades

Entregar ao cliente o comando do desenvolvimento pois o mesmo passa a ficar mais comprometido com o resultado.  Outra conseqüência direta desta prática é o aumento da confiança entre equipe de projeto e cliente.

- Programação em pares (pair programming)

A programação em pares é um dos pilares do XP. Significa colocar sempre dois profissionais para executar uma tarefa. A idéia é que ao fazerem a mesma juntos, alternando-se entre quem codifica, estes possam ficar verificando o que está sendo feito. Essa forma de trabalho redunda em uma das grandes vantagens do XP que é o baixo valor de correção de erro. Esse valor cai significativamente, pois os erros são detectados logo no processo de codificação.

- Refactoring

Refactoring pode ser traduzido como uma aplicação do conceito de melhoria contínua na programação de software. A idéia é que ao refazer constantemente sempre parte do software, este ficará cada vez mais organizado, menos sujeito a erros e ainda  mais no domínio da equipe. Segundo Teles (TELES, 2005) “existe um ditado que diz que um dia sem refactoring é como um dia sem sol”.

- Investir tempo em testes automatizados

O desenvolvimento ágil tem como característica marcante a agilidade, a facilidade de receber mudanças. Para suportar essas mudanças é necessário um comprometimento de toda a equipe do projeto com testes. Estes testes são necessários, ocorrem de forma automatizada e o mais cedo possível, exatamente para corrigir eventuais erros e evitar correções de custo elevado mais tarde. E ainda são os testes um importante espaço de participação do cliente, pois nestes o usuário tem papel de destaque. Caso o usuário não possa executar os testes de validação sozinho, uma pessoa da equipe do projeto deve auxiliá-lo. Contudo, a presença do cliente nesta etapa é essencial.

- Estimar as histórias na presença do cliente

O XP utiliza como instrumento principal de documentação os cartões com histórias do cliente. São esses cartões que irão ser a base de todo o projeto. Quando a equipe se reúne para definir os tempos de cada cartão o cliente é a parte imprescindível. Seu papel nessa etapa é validar o conteúdo do cartão e o entendimento da equipe e, principalmente, definir a prioridade da execução. Ao definir que histórias serão executadas o cliente estabelece uma iteração

- Expor o código a todos os membros da equipe

O código de todo projeto executado usando XP é coletivo. Isso significa que qualquer membro da equipe pode ver o código que o outro escreveu e, mais que isso, deve oferecer comentários, observações e fazer refactoring desse código. O XP necessita do trabalho coletivo não sendo compatível com sua metodologia a idéia de profissionais que não compartilhem.

- Integrar o sistema diversas vezes ao dia

Seguindo o conceito de desenvolver e testar de forma muito próxima, no XP o projeto é integrado continuamente. Podem-se corrigir problemas de integração que somente seriam corrigidos em etapas posteriores do projeto.

- Adotar um ritmo sustentável

Trabalhar com metas realistas é outra característica importante do XP. Ao discutir a precedência das ações com o cliente de forma transparente, a equipe também apresenta a este qual seu ritmo de execução.

- Abrir mão de documentação que vale como defesa

O envolvimento e a confiança que o cliente adquira na equipe que utilize XP tornam possível que a equipe utilize a mínima documentação apenas necessária. Não existe no XP a documentação que é feita apenas para o cliente saber o que está sendo feito, como uma prestação de contas. A participação e a transparência com o cliente, o cumprimento dos prazos e a entrega do software funcionando, isso satisfaz o cliente, não papéis com diagramas e modelos.

- Propor contratos de escopo variável

No XP entende-se ser mais vantajoso utilizar o tripé: qualidade, tempo e custo. O escopo é determinado, mas de forma a apenas ser uma orientação inicial. Este formato é colocado como mais adequado para o desenvolvimento de software, pois fundamentalmente o cliente não sabe dizer tudo o que o software terá que ter tudo o que irá compor seu escopo. Este irá sendo determinado ao longo do desenvolvimento. A idéia em XP então é utilizar-se um modelo de contrato no qual o cliente contrata horas e estas são utilizadas de acordo com a implementação das histórias de usuário. Desta forma promove-se o alinhamento de interesses do cliente com o fornecedor conforme verificado no quadro abaixo.

Quadro sobre XP

- Propor a adoção de um processo novo

Adotar um modelo novo, diferente do qual as pessoas estão habituadas a trabalhar requer coragem. Romper com as resistências é uma das tarefas mais importantes ao se implantar um projeto que vai utilizar XP.

Tags: ,

Deixar um comentário