Transcript
Page 1: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

O XP não é contra Design

Paulo Caroli

Café Ágil em Recife

Maio de 2010

© ThoughtWorks 2008

O XP não é contra Design

Paulo Caroli

Café Ágil em Recife

Maio de 2010

© ThoughtWorks 2008

Page 2: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design

• O XP é contra design?

Page 3: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Sobre mim

Page 4: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Sobre mim

Certified Architect

Page 5: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Sobre mim

Agile Coach

Page 6: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Agenda

Page 7: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Agenda• XP• Métodos tradicionais e XP• XP e Design

• Simple Design• Testing• Refactoring• Continuous Integration

• Conclusão• Q&A

Page 8: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

eXtreme Programming

Page 9: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP

• Lightweight methodology• Kent Beck, late 90s• 4 Values and 12 Practices (1st

edition)• Focused on the developers

Page 10: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Valores de XP

• Courage• Simplicity• Communication• Feedback

Page 11: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Práticas de XP

• The Planning Game• Whole Team• Testing• Short Releases • Continuous Integration• Collective Code

Ownership

• Coding Standard

• Metaphor• Sustainable

Pace• Pair

Programming• Refactoring• Simple Design

Page 12: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Métodos Tradicionais

Page 13: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Page 14: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fix / Integrate $

Test

Code

Design

Analysis

RequirementsDesign

Page 15: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Projeto de XP Típico

Page 16: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

Page 17: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

Mas cadê a fase de design?

Page 18: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

$

Inception

$

$

$

Design acontece do início ao fim!

Page 19: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Métodos Tradicionais e XP

Page 20: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

$

Inception

$

$

$

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Design

Page 21: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design

Page 22: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Práticas do XP

• The Planning Game• Whole Team• Testing• Short Releases • Continuous Integration• Collective Code

Ownership

• Coding Standard

• Metaphor• Sustainable

Pace• Pair

Programming• Refactoring• Simple Design

Page 23: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team

•Testing• Short Releases

•Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming

•Refactoring•Simple

Design

Page 24: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team• Testing• Short Releases • Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming• Refactoring

•Simple Design

Page 25: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

"Things should be made as simple as possible,

but not any simpler."

XP Simple Design

Page 26: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Não tente resolver os grandes problemas de uma só vez...

XP e Design

Page 27: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Resolva pequenos problemas; um de cada vez.

XP e Design

Page 28: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Crie artefatos simples que podem ser utilizados de forma flexível...

XP e Design

Page 29: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Ao invés de artefatos complexos que visam incorporar todas as possibilidades.

XP e Design

Page 30: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Não adicione funcionalidades antes do tempo...

XP e Design

Page 31: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Pense no amanhã, mas faça design, testes e código para as funcionalidades de hoje!

XP e Design

Page 32: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Faça a solução funcional da forma mais simples.

XP e Design

Page 33: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Um design simples leva menos tempo para terminar...

XP e Design

Page 34: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

E uma futura mudança não terá um grande impacto.

XP e Design

Page 35: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team

•Testing• Short Releases • Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming• Refactoring• Simple Design

Page 36: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

1. Desenvolvimento baseado em testes

2. Testes de aceitação

3. Automação de testes

Testes e XP

Test Fail Test Pass

Page 37: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

A suíte de testes automatizados fornece um feedback do sistema.

XP e Design

Page 38: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Testes do cliente e testes de desenvolvimento.

XP e Design

Page 39: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Testes não servem apenas para detecção de defeitos...

XP e Design

Page 40: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

E sim para evitar defeitos!

XP e Design

Page 41: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Testes de aceitação verificam os requisitos apresentados pelo cliente.

XP e Design

Page 42: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Por que não usar os testes de aceitação como requisitos?

XP e Design

Page 43: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Você pode estar incerto se o sistema faz o que seu cliente espera dele...

XP e Design

Page 44: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Os testes de aceitação eliminam essa incerteza.

XP e Design

Page 45: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Test Fail Test Pass

2. write code

1. write test

Test-Driven Development

Page 46: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Satisfaz os requisitos atuais,

XP e Design

Page 47: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Produz código testável,

XP e Design

Page 48: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

E sustenta a evolução do design.

XP e Design

Page 49: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team• Testing• Short Releases • Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming

•Refactoring

• Simple Design

Page 50: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Refactoring é uma prática de desenvolvimento para a reestruturação de um código existente, alterando a sua estrutura interna para torná-lo mais simples, sem alterar seu comportamento externo.

Refactoring

Page 51: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Test Fail Test Pass

2. write code

1. write test

3. refactor

Um passo muito importante!

Page 52: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Quando o design fica complicado...

XP e Design

Page 53: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Refatore para que fique simples novamente.

XP e Design

Page 54: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Limpe o código (teste e funcional).

XP e Design

Page 55: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Certifique-se que o código expressa a sua intenção.

XP e Design

Page 56: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Repense o design.

XP e Design

Page 57: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Evite Broken Windows!

XP e Design

Page 58: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team• Testing• Short Releases

•Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming• Refactoring• Simple Design

Page 59: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Continuous IntegrationA prática de desenvolvimento de software onde os membros de uma equipe de integram seu trabalho com frequência.

Page 60: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

O trabalho não está completo até que a suíte de testes esteja passando.

XP e Design

Page 61: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Os testes automatizados garantem que sua implementação não quebre o design.

XP e Design

Page 62: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Todos serão alertados quando design mudar.

XP e Design

Page 63: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Os testes são uma documentação detalhada de sistema.

XP e Design

Page 64: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Conclusão

Page 65: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design• The Planning Game• Whole Team

•Testing• Short Releases

•Continuous Integration• Collective Code Ownership

• Coding Standard• Metaphor• Sustainable Pace• Pair Programming

•Refactoring•Simple

Design

Page 66: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 67: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 68: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 69: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 70: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 71: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

Fun

cion

alid

ade

Qualidade Interna

Entregando com Qualidade

Page 72: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP e Design

Page 73: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP and Design

• O XP é contra design?

Page 74: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

XP and Design• O design é tão importante que o

fazemos todos os dias!

Page 75: O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

O XP não é contra Design

Paulo Caroli

Café Ágil em Recife

Maio de 2010

© ThoughtWorks 2008

O XP não é contra Design

Q & A

Obrigado!

Paulo [email protected]

om

www.caroli.org

Café Ágil em Recife

Maio de 2010

© ThoughtWorks 2008


Top Related