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

Cafe agil em Recife - Agile and Design

Embed Size (px)

Citation preview

Page 1: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

XP e Design• O XP é contra design?

Page 3: Cafe agil em Recife - Agile and Design

Sobre mim

Page 4: Cafe agil em Recife - Agile and Design

Sobre mim

Certified Architect

Page 5: Cafe agil em Recife - Agile and Design

Sobre mim

Agile Coach

Page 6: Cafe agil em Recife - Agile and Design

Agenda

Page 7: Cafe agil em Recife - Agile and Design

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

• Simple Design• Testing• Refactoring• Continuous Integration

• Conclus oã• Q&A

Page 8: Cafe agil em Recife - Agile and Design

eXtreme Programming

Page 9: Cafe agil em Recife - Agile and Design

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

• Focused on the developers

Page 10: Cafe agil em Recife - Agile and Design

Valores de XP • Courage• Simplicity• Communication• Feedback

Page 11: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

M todos Tradicionaisé

Page 13: Cafe agil em Recife - Agile and Design

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Page 14: Cafe agil em Recife - Agile and Design

Fix / Integrate $

Test

Code

Design

Analysis

RequirementsDesign

Page 15: Cafe agil em Recife - Agile and Design

Projeto de XP T picoí

Page 16: Cafe agil em Recife - Agile and Design

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

Page 17: Cafe agil em Recife - Agile and Design

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

Mas cadê a fase de design?

Page 18: Cafe agil em Recife - Agile and Design

$

Inception

$

$

$

Design acontece do início ao fim!

Page 19: Cafe agil em Recife - Agile and Design

M todos Tradicionais e XPé

Page 20: Cafe agil em Recife - Agile and Design

$

Inception

$

$

$

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Design

Page 21: Cafe agil em Recife - Agile and Design

XP e Design

Page 22: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

"Things should be made as simple as possible,

but not any simpler."

XP Simple Design

Page 26: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 27: Cafe agil em Recife - Agile and Design

Resolva pequenos problemas; um de cada vez.

XP e Design

Page 28: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 29: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 30: Cafe agil em Recife - Agile and Design

Não adicione funcionalidades antes do tempo...

XP e Design

Page 31: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 32: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 33: Cafe agil em Recife - Agile and Design

Um design simples leva menos tempo para terminar...

XP e Design

Page 34: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 35: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

1. Desenvolvimento baseado em testes

2. Testes de aceitação

3. Automação de testes

Testes e XP

Test Fail Test Pass

Page 37: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 38: Cafe agil em Recife - Agile and Design

Testes do cliente e testes de desenvolvimento.

XP e Design

Page 39: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 40: Cafe agil em Recife - Agile and Design

E sim para evitar defeitos!

XP e Design

Page 41: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 42: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 43: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 44: Cafe agil em Recife - Agile and Design

Os testes de aceitação eliminam essa incerteza.

XP e Design

Page 45: Cafe agil em Recife - Agile and Design

Test Fail Test Pass

2. write code

1. write test

Test-Driven Development

Page 46: Cafe agil em Recife - Agile and Design

Satisfaz os requisitos atuais,

XP e Design

Page 47: Cafe agil em Recife - Agile and Design

Produz código testável,

XP e Design

Page 48: Cafe agil em Recife - Agile and Design

E sustenta a evolução do design.

XP e Design

Page 49: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

Test Fail Test Pass

2. write code

1. write test

3. refactor

Um passo muito importante!

Page 52: Cafe agil em Recife - Agile and Design

Quando o design fica complicado...

XP e Design

Page 53: Cafe agil em Recife - Agile and Design

Refatore para que fique simples novamente.

XP e Design

Page 54: Cafe agil em Recife - Agile and Design

Limpe o código (teste e funcional).

XP e Design

Page 55: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 56: Cafe agil em Recife - Agile and Design

Repense o design.

XP e Design

Page 57: Cafe agil em Recife - Agile and Design

Evite Broken Windows!

XP e Design

Page 58: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

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

Page 60: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 61: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 62: Cafe agil em Recife - Agile and Design

Todos serão alertados quando design mudar.

XP e Design

Page 63: Cafe agil em Recife - Agile and Design

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

XP e Design

Page 64: Cafe agil em Recife - Agile and Design

Conclus oã

Page 65: Cafe agil em Recife - Agile and Design

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: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 67: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 68: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 69: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 70: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 71: Cafe agil em Recife - Agile and Design

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Page 72: Cafe agil em Recife - Agile and Design

XP e Design

Page 73: Cafe agil em Recife - Agile and Design

XP and Design• O XP é contra design?

Page 74: Cafe agil em Recife - Agile and Design

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

fazemos todos os dias!

Page 75: Cafe agil em Recife - Agile and Design

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]

www.caroli.orgCafé Ágil em Recife

Maio de 2010

© ThoughtWorks 2008