extreme programming (xp)
Post on 06-Aug-2015
91 Views
Preview:
TRANSCRIPT
Extreme Programming (XP)
João Carlos Ottobboni
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.
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.
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
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.
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.
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.
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;
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;
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
top related