Download - 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
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 [email protected]
www.caroli.orgCafé Ágil em Recife
Maio de 2010
© ThoughtWorks 2008