Introdução ao Extreme Programming (XP)

Veja neste artigo o que são métodos ágeis, o que é Extreme Programming, como surgiu e quais são as suas principais características e seus valores.

Os métodos ágeis surgiram de profissionais que vieram da orientação a objetos como Kent Beck e Ward Cunningham, duas grandes personalidades no que tange o tema de métodos ágeis. Essas pessoas foram lideres na adoção dessas linguagens orientadas a objetos, ambos vieram principalmente da linguagem Smalltalk. A partir disso também surgiram outras práticas da comunidade Smalltalk como refatoração, programação em par, mudanças rápidas, feedback constante do cliente, reforçou-se o desenvolvimento iterativo, testes automatizados, etc.

Kent Beck influenciou muitas pessoas em todas essas práticas e na adoção dos métodos ágeis. Portanto, ele é considerado um grande ícone nessa área. Inclusive foi ele quem fez a família XUnit (como Junit e NUnit). Mas Kent Beck não estava sozinho, outros profissionais como Opdyke que criou a refatoração, Cunningham com os padrões de projetos, entre outros que também tem a sua importância.

O Extreme Programming (XP) tem muita semelhança com SCRUM em termos de valores e modelo de desenvolvimento de projetos, ou seja, como desenvolver projetos que possam abraçar as incertezas de forma mais seguras. No entanto, esses dois métodos também são complementares, visto que SCRUM é mais como um framework gerencial. O XP desenvolve menos esses aspectos e foca mais em práticas de engenharia.

Extreme Programming

Criada em 1997 o XP possui adeptos e outros que duvidam da sua real utilidade, muitos por falta de conhecimento ou entendimento achando que no XP apenas código é o que realmente interessa descartando o resto como planejamento, documentação, etc.

O XP é um método de desenvolvimento de software, leve, não é prescritivo, e procura fundamentar as suas práticas por um conjunto de valores que serão vistos posteriormente no artigo. O XP, diferentemente do que muito pensam, também pode ser adotar por desenvolvedores médios e não apenas por desenvolvedores experientes.

O objetivo principal do XP é levar ao extremo um conjunto de práticas que são ditas como boas na engenharia de software. Entre elas podemos citar o teste, visto que procurar defeitos é perda de tempo, nós temos que constantemente testar. Mas o XP possui mais práticas do que apenas testar, entre as práticas, o XP diz que:

Portanto, como podemos notar todas as coisas boas são levadas ao extremo no XP.

Os opositores do XP dizem que XP é para times ou projetos pequenos. No entanto, histórias de sucesso como a da grande empresa chamada Chrysler. A Chrysler possuía um sistema de folha de pagamento global que envolvia seus 90 mil empregados ao redor de todo o mundo. Existia um sistema COBOL e converteu-se em Smalltalk na época. Seu planejamento inicial era de quatro anos (1995-1999) e isso não ocorreu. Em 1996 Kent Beck e Jeffries foram contratados e começaram a aplicar práticas que auxiliaram a consolidar o que hoje é o XP. Esse projeto tem 2.000 classes e 30.000 métodos, foi para produção após um ano depois da contratação de Beck e Jeffries.

Outro exemplo foi o sistema Ford Motors Company VCAPS System que utilizava métodos tradicionais e enfrentava diversos problemas. Os desenvolvedores ficavam mais tempo consertando problemas encontrados do que desenvolvendo ou evoluindo o sistema. Após isso o projeto começou a adotar testes automatizados, integração contínua e outros valores do XP. Em menos de um ano, algo que não se conseguia há quatro anos, o sistema foi desenvolvido e evoluído constantemente sem maiores problemas.

Saiba mais Série eXtreme Programming na prática

O XP muda o paradigma, onde não temos o medo da mudança, pois o errar é feito com um baixo custo. Diferente do tradicional em que se diz que quanto mais tarde a mudança, maiores são os custos, e assim sendo nunca devemos fazer mudanças o XP diz que devemos sim estar constantemente fazendo mudanças e não devemos teme-las, principalmente quando seguimos os seus valores e as suas práticas. Outra situação desafiada pelo XP é a engenharia de software que afirma sempre projetarmos para mudança, ou seja, vale despender tempo e esforço antecipando mudanças quando isso reduz custos posteriores no ciclo de vida. No entanto, novamente o XP assume que este esforço não vale a pena quando as mudanças não podem ser confiavelmente previstas, ou seja, não vale a pena empregarmos um grande esforço que pode nem mesmo ser utilizada no agora, no futuro ou nunca.

Para conseguirmos se adaptar as mudanças o XP preconiza ciclos curtos que nos dá previsibilidade e redução de incertezas/riscos, Simplicidade e melhorias constantes de código (refactoring) para facilitar a mudança e Testes Automatizados e Integração Contínua para aumentar a confiança.

Por fim, o manta do desenvolvedor XP é resumido pelas palavras:

No próximo tópico falaremos sobre os valores do XP, um dos tópicos mais importantes para entendermos o XP.

Valores do Extreme Programming

As práticas do XP são fundamentadas em valores. Veremos cada um dos valores do XP. Entre os valores temos:

Por fim, XP preconiza que Codificação é a atividade central do projeto, que os Testes (que também são código) servem de especificação de requisitos, e a Comunicação oral entre desenvolvedores é fundamental.

Isto não quer dizer que a equipe XP não constrói documentos e não faz modelagem, ela só não considera que um modelo é um documento. Modelos são feitos o tempo todo seja como quadro branco, sessões de design, etc, mas servem como um suporte para o concreto que realmente importa.

Os valores devem sustentar as práticas que serão vistas no próximo artigo como já foi solicitado pelos nossos leitores. Por fim a próxima sessão falará um pouco sobre a adoção do XP nas organizações.

Adoção do XP na Organização

Não existe uma regra geral de como devemos adotar o XP na nossa organização. Como experiência pessoal e compartilhada com outros colegas posso dizer que se você nunca utilizou XP antes e quer começar a utilizar com um cliente que já está há algum tempo trabalhando com você e a sua equipe o ideal é que esse processo seja gradual, tanto com o cliente quando com a equipe. Ou seja, começa-se a utilizar os valores e as práticas do XP aos poucos criando testes automatizados aos poucos com as partes mais importantes, chamando o cliente para participar das reuniões e mostrando a importância disso para o próprio cliente, para a equipe e para o bem do projeto. Se você quer utilizar XP desde o início é mais simples, basta começar a utilizar e envolver o cliente no processo, seguindo sempre os valores e práticas do XP.

Conclusão

Neste artigo, vimos o que é o XP, quais são os seus valores e o que são cada um deles. Também vimos o que o XP preconiza como sendo realmente importante e fizemos algumas comparações com o SCRUM que também é bastante utilizado hoje, porém mais como um framework gerencial, diferente do XP que é mais técnico.

Artigos relacionados