Skip to content

Instantly share code, notes, and snippets.

@danilobatistaqueiroz
Last active September 27, 2018 02:10
Show Gist options
  • Save danilobatistaqueiroz/26d9697fcf143490af44483259f5f743 to your computer and use it in GitHub Desktop.
Save danilobatistaqueiroz/26d9697fcf143490af44483259f5f743 to your computer and use it in GitHub Desktop.
XP (Extreme Programming)

XP

Em 1996 num projeto para a Chrysler Kent Beck criou a metodologia, a partir daí começou a refiná-la e em 1999 foi lançado o primeiro livro.

Principais características: TDD, Pair Programming, Continuous Integration, Continous Delivery, Daily Standing Meetings, Collective code ownership.

É uma metodologia de desenvolvimento de software.
Para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança.

Com XP há bastante enfoque na refatoração de código, sempre objetivando o Clean Code.

Requisitos são expressos como testes de aceitação automatizados ao invés de especificação com documentação.

Codificação é a atividade central do projeto. Testes também são código.

Procura levar ao extremo a simplicidade em muitos aspectos do desenvolvimento de software.
Também procura levar ao extremo um conjunto de boas práticas de engenharia de software.

Melhorias contínuas: Teste contínuo, Revisão contínua, Refatoramento contínuo, Integração contínua.

Com iterações curtas: Defeitos terão custo baixo, pequenas entregas e com isso rápido feedback.

Com XP a documentação tende a ser mínima, apenas o que realmente pode agregar valor para o desenvolvimento nas iterações, geralmente utiliza-se os: Épicos. Estórias de Usuário. Tarefas.
Não é muito incentivado, mas Diagramas UML e Modelos ER também podem ser utilizados.

Semana de 40 horas. O XP prega que horas extras a médio e longo prazo defasam o desempenho da equipe e o ganho do começo torna-se prejuízo com o tempo.

Metáforas

Simple Design

Coding Standards (Padrões de código)

Coding Dojo (Programação em Par).

O XP não procura adiantar as mudanças desenvolvendo algo que não foi pedido. Elas podem nunca vigorar. É um dinheiro e tempo que muitas vezes é desperdiçado.

O XP foca em adaptar a mudanças rapidamente com ciclos curtos o que dá previsibilidade, redução de riscos, simplicidade.

Jogo do planejamento:
O jogo é uma reunião que ocorre uma vez por iteração, normalmente uma vez por semana. O processo de planejamento é dividido em duas partes:

  • Planejameto de release
  • Planejamento de iteração

No planejamento da-se enfoque à priorização de funcionalidades que representem maior valor possível para o negócio. Desta forma, caso seja necessário a diminuição de escopo, as funcionalidades menos valiosas serão adiadas ou canceladas.

Mantras:

  • Escute: Conversar bastante com o cliente.
  • Planeje: Planejar o tempo todo.
  • Codifique: XP é contra a documentação que não agrega valor. Enquanto um documento não é codificado, ele é apenas um documento. O documento mais importante é o código.
  • Teste: Senão não se saberá se realmente está funcionando.
  • Refatore: Senão o código vai ficar tão ruim que será impossível dar manutenção.

Valores:

  • Comunicação: A comunicação ajuda na eliminação de documentos e favorece a comunicação face a face.
  • Simplicidade: Fazer o mais simples possível e caso necessário fazer mais complexo amanhã. Muitas vezes algo é feito de forma completa e depois nem é usado ou nem é necessário.
  • Feedback: Devemos sempre perguntar ao software e não a um documento. Isso é feito com testes automatizados.
  • Coragem: Jogar fora código ruim, protótipos, spikes.

Comparando XP e Scrum

Scrum e XP compartilham valores e princípios de desenvolvimento de software.
Eles são complementares. Podendo ser utilizados em conjunto.
Scrum é mais um framework gerencial. XP é mais técnico.
XP foca mais em práticas de engenharia de software.

Pontos fracos

Requer muita mudança cultural
Requer reuniões em intervalos muito frequentes o que é um enorme gasto para o cliente
Só funciona com desenvolvedores sêniors
Código coletivo pode acabar sendo usado de uma forma "comunista" demais, trazendo muitos prejuízos.
As práticas do XP são interdependentes, e é difícil uma empresa conseguir adotar todas, assim a metodologia pode fracassar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment