Extreme Programming - Dicas: Parte 1 de 4

Extreme Programming – Dicas: Parte 1 de 4

Extreme Programming - Dicas: Parte 1 de 4Extreme Programming, ou simplesmente XP, é uma metodologia de engenharia de software e uma forma de desenvolvimento ágil.

Esta metodologia oferece um conjunto de práticas que devem ser tomadas por um grupo de stakeholders e que encoraja determinados valores. Os autores afirmam que exercitando as práticas sugeridas, que nada mais são do que práticas bem estabelecidas na indústria de desenvolvimento como “boas” a níveis extremos, é possível atender de melhor forma as necessidades do patrocinador e dos usuários e criar software de melhor qualidade em relação aos métodos tradicionais.

.

Além disso, os proponentes da metodologia também enxergam mudanças como uma parte natural do processo de desenvolvimento. Eles aceitam e incorporam mudanças na metodologia. Ter a capacidade de se adaptar a novas circunstâncias é mais importante do que tentar prever o futuro (como no ciclo de vida em cascata) antes do início do trabalho.

A XP foi criada por Kent Beck durante seu trabalho na Crhysler em um projeto de desenvolvimento de um sistema de folha de pagamentos. Ele se tornou o líder do projeto em 1996 e neste período buscou formas de aprimorar a maneira como o software era desenvolvido. Inclusive, esta foi sua primeira tarefa antes de vir a se tornar líder do projeto.

Em 1999, Kent Beck lançou o livro Extreme Programming Explained, onde descreveu as práticas e uma série de outros elementos de sua metodologia.

Extreme Programming

Descrito como uma tentativa de reconciliar a “humanidade com a produtividade” e como “mecanismo de mudança social”, o XP tem como principal objetivo a redução do custo da mudança. Num sistema tradicional de desenvolvimento, os requisitos do software devem ser determinados no começo do trabalho. Isso significa que o custo de mudar um requisito ao longo do trabalho é alto.

A metodologia propõe valores básicos, princípios e práticas para reduzir o custo da mudança. Abaixo, serão apresentados os principais conceitos do Extreme Programming.

Atividades XP 

A metodologia cita quatro atividades que devem ser inseridas no processo de software.

Código

Os proponentes do XP afirmam que o código é o que realmente importa no processo de desenvolvimento de software. Na metodologia, o “código” é visto com mais profundidade do que em métodos tradicionais. Codificar pode significar estar trabalhando em datagramas, banco de dados, desenhar algoritmos em papel ou codificando um programa que precisa ser compilado.
Um programador também pode transformar suas idéias e conceitos em código, utilizando o mesmo para comunicar-se com o restante da equipe. Seus colegas, por sua vez, podem trabalhar com este código e responder utilizando a mesma linguagem ou lógica.
.
.

Testes

Ninguém pode ter certeza de que alguma coisa funciona até que a tenha testado. O teste, entretanto, não é uma necessidade sentida em primeira instância pelo cliente. Muitos softwares são vendidos e entregues sem os devidos testes, e ainda assim funcionam. O XP afirma que todas as funções devem ser testadas. Para tanto, é preciso saber por que testar.
Você pode não ter certeza que determinado código é aquilo que você espera que seja. Para tirar esta dúvida, o XP utiliza
Unit Tests, testes em sequência feitos de maneira a tentar quebrar o código, achar erros. Se todos os testes forem bem sucedidos, então o código está completo.

Você pode não estar certo se o que você fez era o que deveria ser feito. Para testar esta questão, o XP propõe Acceptance Tests, que são testes feitos com base nos requisitos dados pelo cliente no início da iteração.
O “Testathon” é um evento onde os programadores se encontram para trabalhar de forma colaborativa em testes.

.

Escutando o Cliente

Muitas vezes, os programadores não tem a menor ideia do negócio que está por trás da necessidade de desenvolvimento de determinado software. As funções do sistema são determinadas pelo cliente. Para programadores entenderem como devem ser as funções do sistema, eles precisam escutar/entender quais são as necessidades do cliente. Eles precisam tentar compreender o negócio e passar suas dificuldades para o cliente, para que ele possa entender ainda melhor suas próprias necessidades.

.

Arquitetura

Do ponto de vista da simplicidade, alguém poderia afirmar que um sistema de desenvolvimento não precisa mais do que codificação, testes e comunicação. Se estas atividades forem bem sucedias, o resultado sempre será um sistema que funciona. Na prática, isso não acontece assim. Em determinado momento, o código se  tornará tão complexo que o desenvolvimento irá ficar paralisado. Para solucionar este problema, é preciso criar uma lógica (design) que faça com que não hajam muitas dependências. Fazendo isso, modificações nunca irão alterar profundamente o todo. O design deve fazer parte do processo inteiro.


#
Compartilhe!
Fale com o Site Campus

Tags: , , , ,