o xp não é contra design com paulo caroli, café Ágil em recife

75
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

Upload: paulocaroli

Post on 01-Dec-2014

1.558 views

Category:

Technology


0 download

DESCRIPTION

Nesta palestra Paulo Caroli, Agilista e protagonista da ThoughtWorks Brasil, vai falar sobre XP (eXtreme Programming) e o desentendimento de que XP não promove design. Esta palestra vai explorar design em XP, comparando com design em processos de software mais tradicionais. Você entenderá como XP promove aperfeiçoamento contínuo de design através das práticas de Design Simples, Integração Contínua, Desenvolvimento Baseado em Testes e Refactoring.

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