extreme programming (xp)

24
Extreme Programming (XP) João Carlos Ottobboni

Upload: joao-carlos-ottobboni

Post on 06-Aug-2015

93 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Extreme programming   (xp)

Extreme Programming (XP)

João Carlos Ottobboni

Page 2: Extreme programming   (xp)

O que é Extreme Programming ?

● Extreme Programming é a arte de maximizar a quantidade de software que você não vai fazer.

● São métodos e formas de priorizar quais as partes mais importantes do Projeto, e quem diz quais as partes importantes são os próprios clientes.

● De forma informal, podemos compará-lo como uma danca de salao:

● Desenvolvedor e a dama;● Cliente e o cavalheiro;● Devem estar sempre juntos;● Cliente conduz o desenvolvimento.

Page 3: Extreme programming   (xp)

Timeline do Extreme Programming● Origem década de 80 Kent Beck e Ward Cunningham● 1996: C3 projeto iniciado folha de pagamento da Chrysler

● Outubro de 1998: Distributed Computing magazine article on the ChryslerComprehensiveCompensation (C3) project.

● Setembro de 1999: "Extreme Programming Explained" (Extreme Programming Explained Embrace Change) livro por KentBeck

● Dezembro de 1999: Primeira turma de "Xp Immersion", at Object Mentor, por KentBeck, BobMartin, e RonJeffries

● 31 Dezembro de 1999: Yahoo XP grupo de discussão.

Page 4: Extreme programming   (xp)

Timeline do Extreme Programming

● Junho de 2000: Primeira conferência internacional de XP, em Cagliari Sardinia.

● Setembro de 2000: "Extreme Programming Installed" livro por Jeffries, Anderson, e Hendrickson

● Julho de 2001: Primeiro Universo XP, em Raleigh, Carolina do Norte

● Novembro 2004: "Extreme Programming Explained: Segunda Edição" (Extreme Programming Explained Embrace Change Segunda Edição) livro por Kent Beck, Cynthia Andres

Page 5: Extreme programming   (xp)

Iteração

● O plano de iteração é a lista de histórias selecionadas para serem implementadas dentro de uma iteração.

● Um “laço” de iteração do XP geralmente é curto e tem uma duração de no máximo duas semanas.

● A definição de quais histórias entram num clico parte do cliente que define de acordo com suas prioridades.

● Histórias muito complexas são retiradas do ciclo e repensadas para voltar posteriormente.

Page 6: Extreme programming   (xp)

Valores do XP● Comunicação: Focada em reduzir a quantidade de documentos formais, e aumentar a

comunicação direta entre todas as pessoas envolvidas no projeto.

● Simplicidade: A XP sugere que o código seja feito da forma mais simples possível e que as funcionalidades e requisitos sejam feitas apenas quando as mesmas se fizerem necessárias.

● Feedback: As respostas às decisões tomadas devem ser rápidas e visíveis. Todos devem ter, o tempo todo, consciência do que está acontecendo.

● Coragem: Alterar um código em produção, sem causar bugs, com agilidade, exige muita coragem e responsabilidade.

● Respeito: Todos têm sua importância dentro da equipe e devem ser respeitados e valorizados. Isso mantém o trabalho energizado.

Page 7: Extreme programming   (xp)

Papeis no XP

● Os papéis de um time no XP são formados por uma variedade de pessoas com características e habilidades necessárias para o sucesso do projeto.

● Em geral os papeis não variam muito em relação aos outros processos ou metodologias.

● Existem variações e diferentes referências sobre os papeis no XP. Estes papeis até podem ser acumulados por mais de uma pessoa dentro do time, porém deve se tomar cuidado.

Page 8: Extreme programming   (xp)

Papeis no XP

● Dono do ouro: É o cliente que paga pelo desenvolvimento do projeto;

● Usuário ou cliente: Define os requisitos, executam os testes de aceitação e usam o produto final.

● Gerente: Gerencia e acompanha o planejamento do projeto;

● Coach: É o técnico do time , orienta e mantem a disciplina das práticas padrões da equipe;

Page 9: Extreme programming   (xp)

Papeis no XP

● Testadores: Ajudam os clientes com a definição dos testes. Realizam os testes no sistema;

● Desenvolvedores: Definem a arquitetura, realizam estimativas e implementam o código;

● Tracker: Responsável por coletar as métricas do projeto. O tracker e capaz de contar uma historia de iteração ao final da mesma, através dos apontamentos que realizou e das informações que foram coletadas;

● Analistas: Ajudam o cliente na definição dos requisitos;

Page 10: Extreme programming   (xp)

Práticas de XPO funcionamento do XP e baseado em um conjunto de valores e práticas que são

divididas em organizacionais(circulo vermelho), equipe(circulo verde) e individuais.

Page 11: Extreme programming   (xp)

Práticas de XP● Jogo do Planejamento: São criadas historias que descrevem as funcionalidades a

serem implementadas e são definidas estimativas e prioridades.

● Releases Pequenos: Devem ser o menor possível, e conter os requisitos mais importantes para o negócio.

● Metáfora: Oferece uma visão geral do sistema de forma simples, e que pode ser compartilhada por desenvolvedores e clientes.

● Projeto Simples: Esta prática enfatiza que se deve concentrar em soluções simples e bem estruturadas.

Page 12: Extreme programming   (xp)

Práticas de XP● Testes Constantes: Os teste em XP são feitos antes da programação. Existem

dois tipos de testes: teste de unidade e teste funcional.

● Refatoramento: São constantes melhorias no projeto do software visando melhorar sua capacidade de se adaptar a mudanças.

● Programação em Pares: Possibilita que todos os membros da equipe tenha conhecimento sobre diversas partes do sistema.

● Propriedade Coletiva do Código: Estimula toda a equipe a trabalhar juntos para a melhoria do código.

Page 13: Extreme programming   (xp)

Práticas de XP● Integração Continua: Novas funcionalidades implementadas devem ser integradas

varias vezes ao dia.

● Semana de Quarenta Horas: Não é uma regra porem é aconselhável que a equipe não deve trabalhar por mais de quarenta horas semanais, para não prejudicar a qualidade do código.

● Cliente no Local: Deve ser integrar a equipe uma pessoa por parte do cliente, para orientar e esclarecer duvidas sobre funcionalidades do sistema.

● Padrões de Codificação: Deve se padronizar o código, para que qualquer um possa entender e modificar o código quando necessário.

Page 14: Extreme programming   (xp)

Quando usar o método?

● Equipes com no máximo 12 integrantes;

● Clientes que estejam dispostos a se dedicar semanalmente pois requer varias reuniões com os clientes;

● Ter um espaço físico onde é possível todos os envolvidos ficarem próximos uns dos outros.

Page 15: Extreme programming   (xp)

Vantagens

● Um dos beneficios é tornar o processo ágil e mais flexível. As praticas do XP foram criadas para funcionarem juntas.

● Fornecem mais valor do que cada uma poderia fornecer individualmente.

● Analise prévia dos acontecimentos dentro do projeto, o que oferece qualidade, confiança, datas de entrega e custos promissores.

● O XP é ideal para projetos em que o cliente não sabe exatamente o que quer, pois os feedbacks constantes tornam possível as mudanças para atender os requisitos de forma rápida.

Page 16: Extreme programming   (xp)

Vantagens

● Entregas constantes de partes funcionais do software assim o cliente não precisa esperar muito para ver o software funcionando.

● O cliente esta sempre por perto, resultando em uma produto final muito próximo daquilo que ele deseja.

● Programação em dupla reduz o número de erros e aumenta a legibilidade do código o que facilita manutenções futuras.

● Erros são encontrados em um estágio inicial, pois são realizados diversos testes de diversas formas.

Page 17: Extreme programming   (xp)

Desvantagens

● O cliente deve disponibilizar uma equipe para participar de todo o processo de desenvolvimento do software.

● Existe uma perda de produtividade adotando programação em pares.

● Todos os envolvidos no projeto devem conhecer as técnicas e regras.

● Exige muito código para testes e a razão entre linhas de código de teste para linhas de código de projeto deve ser, no minimo 2:1.

Page 18: Extreme programming   (xp)

Desvantagens

● Requer varias reuniões com os clientes.

● Requer muita mudança cultural.

● A análise de requisitos informal pode não ser bem visto pelos clientes que podem se sentir inseguros.

● A falta de documentação pode ser um problema em certos projetos.

Page 19: Extreme programming   (xp)

Desvantagens

● Uma cultura na qual você e requisitado a trabalhar horas e horas para provar seu “comprometimento com a empresa”, você não conseguira executar o XP se estiver cansado.

● O espaço físico deve permitir a organização da equipe XP de modo que todos fiquem próximos uns aos outros.

Page 20: Extreme programming   (xp)

Ferramentas de Apoio

Para apoiar a adoção de princípios e práticas do XP existem uma serie de ferramentas que podem ser adotas nos projetos de software:

● Temos Hard Tools que são ferramentas mais simples relacionadas com o ambiente.

● Temos Soft Tools que são ferramentas de software que apoiam as práticas.

Page 21: Extreme programming   (xp)

Ambiente e Hard ToolsO ambiente é essencial para apoiar as práticas, para isso e necessário adequá-lo.

Podem ser utilizados uma série de gráficos de acompanhamento, murais e quadros tornando o ambiente informativo.

Page 22: Extreme programming   (xp)

Ambiente e Hard ToolsUm time ágil utiliza quadros para execução e acompanhamento do time. Neste quadro é

possível acompanhar o trabalho que está planejado, o que está em andamento e os que já estão prontos. São conhecidos como quadros de Kanban. Existem variações de quadros de acordo com a necessidade do time.

Page 23: Extreme programming   (xp)

Soft ToolsExistem também inúmeros softwares para apoiar as praticas XP. Abaixo uma lista de

ferramentas práticas que são apoiadas, licença e o endereço do fornecedor.

Page 24: Extreme programming   (xp)

Conclusão

Com base nos dados apresentados é necessário avaliar se é viável ou não a utilização do XP. Muitas vezes o processo de adoção é lento e complicado, mas com dedicação e disciplina pode-se atingir resultados satisfatórios.