Cafe agil em Recife - Agile and Design

Preview:

Citation preview

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

XP e Design• O XP é contra design?

Sobre mim

Sobre mim

Certified Architect

Sobre mim

Agile Coach

Agenda

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

• Simple Design• Testing• Refactoring• Continuous Integration

• Conclus oã• Q&A

eXtreme Programming

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

• Focused on the developers

Valores de XP • Courage• Simplicity• Communication• Feedback

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

M todos Tradicionaisé

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Fix / Integrate $

Test

Code

Design

Analysis

RequirementsDesign

Projeto de XP T picoí

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

$Release 1

Inception

$Release 2

$Release 3

Release 4 $

Mas cadê a fase de design?

$

Inception

$

$

$

Design acontece do início ao fim!

M todos Tradicionais e XPé

$

Inception

$

$

$

Fix / Integrate $

Test

Code

Design

Analysis

Requirements

Design

XP e 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

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

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

"Things should be made as simple as possible,

but not any simpler."

XP Simple Design

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

XP e Design

Resolva pequenos problemas; um de cada vez.

XP e Design

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

XP e Design

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

XP e Design

Não adicione funcionalidades antes do tempo...

XP e Design

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

XP e Design

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

XP e Design

Um design simples leva menos tempo para terminar...

XP e Design

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

XP e 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

1. Desenvolvimento baseado em testes

2. Testes de aceitação

3. Automação de testes

Testes e XP

Test Fail Test Pass

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

XP e Design

Testes do cliente e testes de desenvolvimento.

XP e Design

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

XP e Design

E sim para evitar defeitos!

XP e Design

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

XP e Design

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

XP e Design

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

XP e Design

Os testes de aceitação eliminam essa incerteza.

XP e Design

Test Fail Test Pass

2. write code

1. write test

Test-Driven Development

Satisfaz os requisitos atuais,

XP e Design

Produz código testável,

XP e Design

E sustenta a evolução do design.

XP e 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

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

Test Fail Test Pass

2. write code

1. write test

3. refactor

Um passo muito importante!

Quando o design fica complicado...

XP e Design

Refatore para que fique simples novamente.

XP e Design

Limpe o código (teste e funcional).

XP e Design

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

XP e Design

Repense o design.

XP e Design

Evite Broken Windows!

XP e 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

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

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

XP e Design

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

XP e Design

Todos serão alertados quando design mudar.

XP e Design

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

XP e Design

Conclus oã

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

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Funcionalidade

Qualidade Interna

Entregando com Qualidade

Funcionalidade

Qualidade Interna

Entregando com Qualidade

XP e Design

XP and Design• O XP é contra design?

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

fazemos todos os dias!

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 Carolipcaroli@thoughtworks.com

www.caroli.orgCafé Ágil em Recife

Maio de 2010

© ThoughtWorks 2008