30
Extreme Programming XP Seminário de Engenharia de Software Prof. Luiz Alberto Ferreira Gomes Alunos: Fernando Henrique Cândido Jaffer dos Santos Veronezi João Paulo Fernandes PUC - MINAS Campus Poços de Caldas - MG

Extreme Programming (XP) Metodologia Ágil

Embed Size (px)

DESCRIPTION

Metodologia Ágil Extreme Programming (XP)

Citation preview

Page 1: 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

Page 2: Extreme Programming (XP) Metodologia Ágil

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

Page 3: Extreme Programming (XP) Metodologia Ágil

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;

Page 4: Extreme Programming (XP) Metodologia Ágil

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;

Page 5: Extreme Programming (XP) Metodologia Ágil

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;

Page 6: Extreme Programming (XP) Metodologia Ágil

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;

Page 7: Extreme Programming (XP) Metodologia Ágil

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;

Page 8: Extreme Programming (XP) Metodologia Ágil

Princípios ou Práticas da XP

São as atividades seguidas pela equipe XP durante o processo de desenvolvimento de um sistema;

Page 9: Extreme Programming (XP) Metodologia Ágil

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;

Page 10: Extreme Programming (XP) Metodologia Ágil

Small Release – Pequenas Versões

É a elaboração de pequenas versões funcionais do sistema e liberação ao cliente;

Page 11: Extreme Programming (XP) Metodologia Ágil

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;

Page 12: Extreme Programming (XP) Metodologia Ágil

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;

Page 13: Extreme Programming (XP) Metodologia Ágil

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;

Page 14: Extreme Programming (XP) Metodologia Ágil

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;

Page 15: Extreme Programming (XP) Metodologia Ágil

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;

Page 16: Extreme Programming (XP) Metodologia Ágil

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;

Page 17: Extreme Programming (XP) Metodologia Ágil

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;

Page 18: Extreme Programming (XP) Metodologia Ágil

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;

Page 19: Extreme Programming (XP) Metodologia Ágil

Programação em Par

Baseia-se em um código implementado por duas pessoas trabalhando juntas em um único computador;

Page 20: Extreme Programming (XP) Metodologia Ágil

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;

Page 21: Extreme Programming (XP) Metodologia Ágil

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;

Page 22: Extreme Programming (XP) Metodologia Ágil

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;

Page 23: Extreme Programming (XP) Metodologia Ágil

Desvantagens da XP

Membros individuais da equipe podem não ter personalidade adequada para interagir bem com o outros membros da equipe;

Page 24: Extreme Programming (XP) Metodologia Ágil

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;

Page 25: Extreme Programming (XP) Metodologia Ágil

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);

Page 26: Extreme Programming (XP) Metodologia Ágil

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;

Page 27: Extreme Programming (XP) Metodologia Ágil

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;

Page 28: Extreme Programming (XP) Metodologia Ágil

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;

Page 29: Extreme Programming (XP) Metodologia Ágil

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;

Page 30: Extreme Programming (XP) Metodologia Ágil

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.