XP

eXtreme Programming

Created by Psycho Mantys / @psycho_mantys

Dielson Sales de Carvalho

Priscylla Silva

Vinícius dos Santos Oliveira

Logo XP

  • 1997, surgiu o Extreme Programing
  • 2001/02, em Utah foi criado o Manifesto Ágil

Manifesto Ágil

O manifesto estabelece um conjunto de valores que são adotados nos projetos ágeis:

  • Indivíduos e interações ao invés de processos e ferramentas
  • Software funcionando ao invés de documentação abrangente
  • Colaboração com o cliente ao invés de negociação de contratos
  • Responder a mudanças ao invés de seguir um plano

Iterativo e Incremental

Logo XP

Visão geral quanto ao tempo

  • Releases
  • Levam meses, são compostas de iterações

  • Iterações
  • São periodos de poucas semanas(tipicamente, de 1 a 4 semanas), são compostas de tarefas

  • Tarefas
  • São atividades basicas, devem durar idealmente 1 dia de trabalho, mas normalmente duram mais

Visão geral quanto ao tempo

Visão geral quanto ao tempo

Releases

Releases

Ciclo Releases
  • Refletir sobre o problemas, identificar e/ou propor soluções
  • Cliente e equipe se reúnem para definir os temas
  • Cliente controla o escopo, decidindo o que fazer ou adiar
  • Normalmente, 3 meses

Iterações

Ciclo Iterações
  • Incremento projetado, programado, testado e entregue
  • Ponto de avaliação, re-avaliação, feedback, interação com a satisfação do cliente e mudanças
  • Esse codigo vai ser aprimorado nas proximas iterações, mas é codigo funcional
  • No inicio, Jogo do planejamento
  • No final, o cliente tem a oportunidade de utilizar e avaliar o que foi produzido
  • Normalmente, 1 semana

Final da Iteração

  • Testes de aceitação
  • Entrega de software para o cliente
  • Cliente tem oportunidade de testar e avaliar

Com base nos resultados, reúne-se novamente com a equipe e estabelece novas prioridades de acordo com o que acabou de aprender com o software e com aquilo que já imaginava ser necessário produzir ao longo do restante do projeto

Tarefas

  • Compomente basico
  • É a implementação de uma User story pelo par de programadores
  • Testes!
  • Executada de acordo com os valores e Práticas do XP

Ciclo geral de tarefas, exemplo

Exemplo de ciclo

Valores

São o conjunto de valores que a equipe deve seguir, praticar e se comportar em grupo para usar o XP

  • Comunicação
  • Simplicidade
  • Feedback
  • Coragem
  • Respeito

Comunicação

Simplicidade

Frequencia de funcionalidades usadas
  • Tanto os clientes e desenvolvedores não sabem sobre as funcionalidades futuras
  • Concentrar-se em fazer bem feito as funcionalidades prioritarias da iteração atual
  • Desenvolvimento é uma tarefa complexa, melhor seguir um metodo menos complexo que a tarefa

Feedback

Coragem

Não fazer...

Respeito

Práticas do XP

  • Cliente Presente
  • Jogo do Planejamento
  • Stand Up Meeting
  • Programação em Pares
  • Código Coletivo
  • Código Padronizado
  • Design Simples
  • Desenvolvimento Orientado a Testes
  • Refatoração
  • Releases Curtos
  • Metáfora
  • Ritmo Sustentável

Cliente Presente

  • Parte da equipe
  • Controla as tarefas de cada release baseadas no valor de negócio
  • Feedback imediato

Jogo do Planejamento

  • Mais importante primeiro
  • Necessidades concretas
  • Software funcionando em primeiro lugar

Jogo do Planejamento

O Cliente

  • Define as histórias(User Story)
  • Decide qual o valor de negócio de cada história
  • Decide que histórias serão construídas no release


Os Programadores

  • Estimam quanto tempo será necessário para construir cada história, com base em experiencias passadas
  • Advertem o cliente sobre riscos técnicos significativos
  • Medem o progresso da equipe para fornecer um orçamento geral para o cliente

Standup Meeting

  • Resumir o que todos fizeram
  • Definir a atividade do dia

Programação em Par

  • Menos erros
  • Força o uso dos padrões
  • Melhores soluções
  • Evita "ilhas de conhecimento"

Código Coletivo

  • Todos têm acesso a tudo
  • Ninguém é "dono do código"
  • Revezamento de pares

Código Padronizado

  • Fácil de entender
  • Fácil de modificar
  • Pressão do par

Design Simples

  • Desejos do usuário:
    • Fazer a coisa certa
    • Funcionar
    • Fácil de usar
    • Possa ser modificado
  • Revisão durante as iterações
  • Não tenta prever o futuro
  • Menos complexidade

Desenvolvimento Orientado a Testes

  • Defeitos custam caro
  • Testes são feitos antes da imprelentação
  • Testes são rodados sempre que o código é modificado
  • Quanto mais cedo um erro é identificado, melhor
  • Precisa sempre passar no teste de aceitação
  • Resolver, depois limpar

Refatoração

  • Mudanças deterioram o projeto
  • Evitar código duplicado
  • Objetivo:
    • Simplicidade
    • Clareza
    • Adequação ao objetivo
    • Ausência de repetição
    • Ausência de funcionalidades extras (ex: que foram removidas)

Releases Curtos

  • Maior retorno do investimento no início
  • Bom para o cliente (melhores tomadas de decisões)
  • Bom para os desenvolvedores (verificam se o desejo do cliente realmente é atendido)

Metáfora

  • Uma só ideia
  • Integridade conceitual de todo o projeto

Ritmo Sustentável

  • Prazos cumpridos
  • Não sobrecarregar o programador

Casos de uso

Companhias que Utilizam o XP

Brasileiras:

  • Improve It (RJ)
  • Globo (RJ)
  • BrasilTelecom (DF)
  • Embrapa Informática (SP)

Internacionais:

  • Blizzard
  • Sabre Airline Solutions
  • Arshin
  • Motorola, inc.

THE END

By Psycho Mantys / @psycho_mantys

Begin