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

470 views
441 views

Published on

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.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
470
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Here’s our typical waterfall project
  • Here’s our typical waterfall project
  • With iterative and incremental development .. We build our software in chunks
  • But where did the design go?
  • Design is built into each step of the process
  • Here we can compare the two processes
  • Test-Driven Development (TDD) is a design approach where you start by documenting requirements in the form of tests
  • Refactoring is the application of design on a daily basis
  • O XP não é contra Design com Paulo Caroli, Café Ágil em Recife

    1. 1. 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
    2. 2. XP e Design <ul><li>O XP é contra d esign? </li></ul>
    3. 3. Sobre mim
    4. 4. Sobre mim Certified Architect
    5. 5. Sobre mim Agile Coach
    6. 6. Agenda
    7. 7. Agenda <ul><li>XP </li></ul><ul><li>Métodos tradicionais e XP </li></ul><ul><li>XP e Design </li></ul><ul><ul><li>Simple Design </li></ul></ul><ul><ul><li>Testing </li></ul></ul><ul><ul><li>Refactoring </li></ul></ul><ul><ul><li>Continuous Integration </li></ul></ul><ul><li>Conclusão </li></ul><ul><li>Q&A </li></ul>
    8. 8. eXtreme Programming
    9. 9. XP <ul><li>Lightweight methodology </li></ul><ul><li>Kent Beck, late 90s </li></ul><ul><li>4 Values and 12 Practices (1 st edition) </li></ul><ul><li>Focused on the developers </li></ul>
    10. 10. Valores de XP <ul><li>Courage </li></ul><ul><li>Simplicity </li></ul><ul><li>Communication </li></ul><ul><li>Feedback </li></ul>
    11. 11. Práticas de XP <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    12. 12. Métodos Tradicionais
    13. 13. Fix / Integrate $ Test Code Design Analysis Requirements
    14. 14. Design Fix / Integrate $ Test Code Design Analysis Requirements
    15. 15. Projeto de XP Típico
    16. 16. $ Release 1 Inception $ Release 2 $ Release 3 Release 4 $
    17. 17. Mas cadê a fase de design? $ Release 1 Inception $ Release 2 $ Release 3 Release 4 $
    18. 18. Design acontece do início ao fim! $ Inception $ $ $
    19. 19. Métodos Tradicionais e XP
    20. 20. Design $ Inception $ $ $ Fix / Integrate $ Test Code Design Analysis Requirements
    21. 21. XP e Design
    22. 22. Práticas do XP <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    23. 23. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    24. 24. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    25. 25. &quot; Things should be made as simple as possible, but not any simpler. &quot; XP Simple Design
    26. 26. Não tente resolver os grandes problemas de uma só vez... XP e Design
    27. 27. Resolva pequenos problemas; um de cada vez. XP e Design
    28. 28. Crie artefatos simples que podem ser utilizados de forma flexível... XP e Design
    29. 29. Ao invés de artefatos complexos que visam incorporar todas as possibilidades. XP e Design
    30. 30. Não adicione funcionalidades antes do tempo... XP e Design
    31. 31. Pense no amanhã, mas faça design, testes e código para as funcionalidades de hoje! XP e Design
    32. 32. Faça a solução funcional da forma mais simples. XP e Design
    33. 33. Um design simples leva menos tempo para terminar... XP e Design
    34. 34. E uma futura mudança não terá um grande impacto. XP e Design
    35. 35. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    36. 36. <ul><li>Desenvolvimento baseado em testes </li></ul><ul><li>Testes de aceitação </li></ul><ul><li>Automação de testes </li></ul>Testes e XP Test Fail Test Pass
    37. 37. A suíte de testes automatizados fornece um feedback do sistema. XP e Design
    38. 38. Testes do cliente e testes de desenvolvimento. XP e Design
    39. 39. Testes não servem apenas para detecção de defeitos... XP e Design
    40. 40. E sim para evitar defeitos! XP e Design
    41. 41. Testes de aceitação verificam os requisitos apresentados pelo cliente. XP e Design
    42. 42. Por que não usar os testes de aceitação como requisitos? XP e Design
    43. 43. Você pode estar incerto se o sistema faz o que seu cliente espera dele... XP e Design
    44. 44. Os testes de aceitação eliminam essa incerteza. XP e Design
    45. 45. Test-Driven Development Test Fail Test Pass 2. write code 1. write test
    46. 46. Satisfaz os requisitos atuais, XP e Design
    47. 47. Produz código testável, XP e Design
    48. 48. E sustenta a evolução do design. XP e Design
    49. 49. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    50. 50. 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
    51. 51. Um passo muito importante! Test Fail Test Pass 2. write code 1. write test 3. refactor
    52. 52. Quando o design fica complicado... XP e Design
    53. 53. Refatore para que fique simples novamente. XP e Design
    54. 54. Limpe o código (teste e funcional). XP e Design
    55. 55. Certifique-se que o código expressa a sua intenção. XP e Design
    56. 56. Repense o design. XP e Design
    57. 57. Evite Broken Windows ! XP e Design
    58. 58. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    59. 59. Continuous Integration A prática de desenvolvimento de software onde os membros de uma equipe de integram seu trabalho com frequência.
    60. 60. O trabalho não está completo até que a suíte de testes esteja passando. XP e Design
    61. 61. Os testes automatizados garantem que sua implementação não quebre o design. XP e Design
    62. 62. Todos serão alertados quando design mudar. XP e Design
    63. 63. Os testes são uma documentação detalhada de sistema. XP e Design
    64. 64. Conclusão
    65. 65. XP e Design <ul><li>The Planning Game </li></ul><ul><li>Whole Team </li></ul><ul><li>Testing </li></ul><ul><li>Short Releases </li></ul><ul><li>Continuous Integration </li></ul><ul><li>Collective Code Ownership </li></ul><ul><li>Coding Standard </li></ul><ul><li>Metaphor </li></ul><ul><li>Sustainable Pace </li></ul><ul><li>Pair Programming </li></ul><ul><li>Refactoring </li></ul><ul><li>Simple Design </li></ul>
    66. 66. Funcionalidade Qualidade Interna Entregando com Qualidade
    67. 67. Funcionalidade Qualidade Interna Entregando com Qualidade
    68. 68. Funcionalidade Qualidade Interna Entregando com Qualidade
    69. 69. Funcionalidade Qualidade Interna Entregando com Qualidade
    70. 70. Funcionalidade Qualidade Interna Entregando com Qualidade
    71. 71. Funcionalidade Qualidade Interna Entregando com Qualidade
    72. 72. XP e Design
    73. 73. XP and Design <ul><li>O XP é contra d esign? </li></ul>
    74. 74. XP and Design <ul><li>O design é tão importante que o fazemos todos os dias! </li></ul>
    75. 75. 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 Caroli [email_address] www.caroli.org Café Ágil em Recife Maio de 2010 © ThoughtWorks 2008

    ×