Download - Extreme Programming (XP) Metodologia Ágil
Extreme Programming
XPSeminário de Engenharia de
Software
Prof. Luiz Alberto Ferreira Gomes
Alunos: Fernando Henrique CândidoJaffer dos Santos VeroneziJoão Paulo Fernandes
PUC-MINAS Campus Poços de Caldas-MG
O que é Extreme Programming?
Metodologia ágil, que visa um rápido desenvolvimento, atende as reais necessidades do cliente e, ainda, permite modificações, á medida que novas necessidades apareçam;
Criada por Kent Beck em 1996;
Ágil ≠ Rápido
Ágil = Adaptativo
Valores do XP
O Extreme Programming detém de valores fundamentais que sustentam as boas práticas de desenvolvimento de sistema;
Esse valores são as diretrizes que definem as atitudes da equipe e as principais prioridades da metodologia;
Feedback
O feedback é importante para qualquer processo de desenvolvimento, principalmente na XP;
O diferencial da XP está no tempo de execução desse processo, uma vez que possui contato incessante com o cliente esse retorno é quase que imediato;
Comunicação
É a chave para um desenvolvimento rápido e com a satisfação do cliente;
A comunicação na XP é realizada com foco na simplicidade, em vez de extensos documentos escritos, é utilizada uma comunicação face a face, sempre que possível;
Simplicidade
Significa que o software é desenvolvido usando a forma mais simples possível de design e construção, o que permite eliminar os elementos desnecessários na construção de software e facilitar modificações futuras;
Esse valor segue a regra que diz “você não vai precisar”, uma funcionalidade só é adicionada quando realmente for necessária;
Coragem
É preciso ter coragem para implementar uma série de inovações no processo de desenvolvimento como: desenvolver software de forma incremental, permitir que o cliente defina prioridades, fazer desenvolvedores trabalhar em par, modelar e documentar apenas quando for necessário;
Princípios ou Práticas da XP
São as atividades seguidas pela equipe XP durante o processo de desenvolvimento de um sistema;
Envolvimento do Cliente
No XP a presença do cliente é essencial no dia-a-dia do projeto, pois ele é a pessoa mais apta a sanar dúvidas dos desenvolvedores;
Small Release – Pequenas Versões
É a elaboração de pequenas versões funcionais do sistema e liberação ao cliente;
Integração Contínua
É a realização da integração de novas funcionalidades, ao sistema, em curtos espaços de tempo, se possível, podem ser realizados até diversas vezes ao dia;
Refactoring
É a melhoria e padronização de códigos, esta prática tende a alterar todo o código duplicado, ilegível, mal codificado, lento e sem padronização dentro do projeto;
Código Coletivo
Não existe uma pessoa responsável por uma parte do código, todos os desenvolvedores tem acesso e total liberdade para alterá-lo;
Essa prática contribui para uma maior revisão do código;
Design Simples
É importante que o projeto seja desenvolvido da forma mais simples, com códigos simples, que atendam a necessidade e possíveis alterações do cliente;
Metáfora
Objetivo é facilitar a comunicação dentro do projeto, através de comparações e analogias com um determinado assunto em questão;
Essa prática traduz as palavras do cliente para uma melhor compreensão dentro do projeto;
Stand up meeting
Stand up meeting ou Reunião em pé, essas reuniões são realizadas dessa forma para que não se perca o foco no assunto abordado e para evitar que as reuniões se alonguem;
Ritmo sustentável
Para garantir que a equipe esteja sempre concentrada e menos propicia à falhas, o XP abomina a prática de trabalhos exaustivos, que desrespeite os limites físicos de cada integrante da equipe;
Jogo do Planejamento
É o momento usado para reunir desenvolvedores e cliente para priorizar funcionalidades e assegurar que a equipe esteja trabalhando naquilo que gere o máximo de valor para o cliente;
Programação em Par
Baseia-se em um código implementado por duas pessoas trabalhando juntas em um único computador;
Desenvolvimento guiado por testes - TDD
No XP para cada código implementado deve existir um teste automatizado;
A prática do TDD conta com os testes de unidade e teste de aceitação;
Documentação do Projeto
Não é uma prática primordial no modelo XP, a Extreme Programming foi projetada para realizar comunicação face a face e não por documentação escrita;
Defende a ideia de menos burocracia e mais conversa eficaz no encontro com a equipe;
Contrato de escopo
De acordo com Kent Beck, no contrato dos projetos XP, são definidos previamente o tempo, custos, qualidade e um escopo que indica o que será feito, como no desenvolvimento tradicional;
A diferença do XP está que ele não engessa o escopo em um contrato assinado no início do projeto, mas sim negocia as etapas do projeto a medida que estas evoluam;
Desvantagens da XP
Membros individuais da equipe podem não ter personalidade adequada para interagir bem com o outros membros da equipe;
Desvantagens da XP
Representante do cliente acoplado ao projeto;Membros experientes dificilmente aceitariam tal tarefa;
Dificuldade em encontrar um representante;
Alternativa
Definir uma especificação de requisitos concisa;
Desvantagens da XP
Programação em paresPode gerar aborrecimentos (programadores de níveis
diferentes), programa sozinho favorece a criatividade;
AlternativaUtilizar programação mútua (um programador garante
a qualidade do software do outro e vice-versa);
Desvantagens da XP
Falta de documentaçãoDificulta o uso e a manutenção do código;
Muito centrado no código;
Alternativa
Automatizar o processo de documentação;
Ex: Utilizando XML;
Quando não usar XP
Cultura
A equipe já está organizada e trabalhando em um
modelo tradicional de desenvolvimento;
Tamanho da equipe
O XP preza por trabalhar com uma equipe pequena;
Quando não usar XP
Tecnologia
Não é aconselhável usar XP quando a tecnologia não
permite escrever casos de teste, quando o feedback é demorado e quando não incorpora facilmente as mudanças;
ClientePara aplicação do XP é imprescindível que o cliente
esteja presente e disponível para esclarecimento de dúvidas no desenrolar do projeto;
Conclusões
Metodologia que requer disciplina;
Quando uma prática não é bem realizada pode gerar efeito cascata;
São mais adequados para desenvolvimento de sistemas para pequenas e médias empresas, não sendo tão adequados para sistema de larga escala ou críticos;
Referências bibliográficas
Sommerville, Ian. Engenharia de Software 8ª ed. Person Education - Brasil
Beck, Kent. Programação Extrema (XP) . Bookman, 2004
< http://desenvolvimentoagil.com.br/xp/ >. Acessado em 03 maio 2014.
< http://pt.slideshare.net/DanielBrando3/extreme-programming-xp-resumo > Acessado em 03 maio 2014.
< http://www.extremeprogramming.org/ > Acessado em 03 maio 2014.
< http://www.cin.ufpe.br/~gamr/FAFICA/Desenvolvimento%20de%20sistemas/XP.pdf > Acessado em 03 maio 2014.