Introdução aos Métodos Ágeis de Desenvolvimento de Software  Jaime Schettini Silvana Rossy
Objetivos do curso "Quais questões você gostaria que o curso respondesse?"
Dinâmica 1 1 - Somente o pai, a mãe e o policial sabem pilotar o barco; 2 - A mãe não pode ficar sozinha com os filhos; 3 ...
Dinâmica 2 1 – Não pode haver mais canibais do que missionários, senão os missionários são devorados; 2 – Só duas pessoas ...
Dinâmica 3 Se ficarem sozinhos, o lobo come a ovelha, e a ovelha come o repolho.
Reflexões <ul><li>O problema é muito grande para o tempo?
É fácil gerenciar pessoas?
O que acontece quando alguém importante sai da equipe?
E se o problema muda? </li></ul>
A grande questão Como ganhar dinheiro resolvendo problemas que você não conhece, com pessoas desconhecidas, em um tempo cu...
Metodologias de desenvolvimento <ul><li>Metodologias rigorosas </li></ul><ul><li>Metodologias ágeis </li></ul>
Metodologias rigorosas <ul><li>Enfatizam o rigor em suas propostas
Valoriam bastante a documentação
Implementadas em grupos grandes
Metodologias pesadas: muitos processos, atividades, documentos </li></ul><ul><li>Estratégia de previsibilidade </li></ul><...
Por que usar métodos ágeis? Fracasso de projetos: <ul><li>Não entrega o projeto
Entrega com poucas funcionalidades úteis
Entrega com muitas funcionalidades inúteis
Entrega com atrasos </li></ul>Porque isso acontece?
Fracasso de projetos - Chaos Report 1. Falta de envolvimento do usuario 2. Especificações e requisitos incompletos 3. Muda...
Por que usar métodos ágeis? Mercado de software: <ul><li>Crescente demanda por software
Prazos cada vez menores </li></ul>
Princípios ágeis Importante: <ul><li>Processos e ferramentas
Documentação detalhada
Negociação de contrato
Seguir um plano </li></ul>Mais importante: <ul><li>Pessoas e interações
Software funcionando
Colaboração com o cliente
Adaptação à mudanças </li></ul>Optam pela adaptabilidade
Metodologias ágeis Início : metodologias leves para contrastar com as metodologias rigorosas/pesadas. Agilidade : “habilid...
Principais metodologias ágeis <ul><li>XP – desenvolvimento </li></ul><ul><li>Scrum – gerência e coordenação de projeto </l...
Scrum Planejamento  –  relativamente curto. Sprint  –  período de 1 a 6 semanas com objetivos traçados. Backlog  –   lista...
Equipes <ul><li>Geralmente equipes pequenas: até 10 pessoas </li></ul><ul><li>Casos com equipes maiores: scrum hierárquico...
Scrum
Quanto falta?
Exemplo real
XP – Programação eXtrema A XP é uma maneira leve, eficiente, de baixo risco, flexível, previsível, científica e divertida ...
Programação eXtrema Visão tradicional  da engenharia de software Custo das modificações Momento em que a funcionalidade é ...
Programação eXtrema Custo das modificações Momento em que a funcionalidade é adicionada O que queremos
Entendendo XP <ul><ul><li>Valores
Princípios
Práticas </li></ul></ul>
Atividades básicas do desenvolvimento <ul><li>Codificar </li></ul><ul><li>Testar </li></ul><ul><li>Ouvir </li></ul><ul><li...
Práticas <ul><li>Jogo do planejamento
Entregas frequentes
Metáfora
Projeto simples
Testes
Refatoração </li></ul><ul><li>Padrões de codificação </li></ul><ul><li>Programação em pares
Propriedade coletiva
Integração contínua
Semana de 40 horas
Cliente presente </li></ul>
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Metáforas
Upcoming SlideShare
Loading in …5
×

Workshop - Introdução aos métodos ágeis de desenvolvimento de software

3,615 views

Published on

Workshop ministrado por mim e por Silvana Rossy, no IESAM, em abril de 2007.
--
Workshop about agile methodologies presented by me and Silvana Rossy in april 2007 at IESAM. Belém-PA, Brazil.

Published in: Technology, Business
  • Be the first to comment

Workshop - Introdução aos métodos ágeis de desenvolvimento de software

  1. 1. Introdução aos Métodos Ágeis de Desenvolvimento de Software Jaime Schettini Silvana Rossy
  2. 2. Objetivos do curso &quot;Quais questões você gostaria que o curso respondesse?&quot;
  3. 3. Dinâmica 1 1 - Somente o pai, a mãe e o policial sabem pilotar o barco; 2 - A mãe não pode ficar sozinha com os filhos; 3 - O pai não pode ficar sozinho com as filhas; 4 - O prisioneiro não pode ficar sozinho com nenhum integrante da família; 5 - O barco só pode transportar 2 pessoas por vez. 6 - Você pode ir e vir com as pessoas quantas vezes precisar.
  4. 4. Dinâmica 2 1 – Não pode haver mais canibais do que missionários, senão os missionários são devorados; 2 – Só duas pessoas na canoa por vez; 3 – A canoa não navega sozinha; 4 – Você pode ir e vir com as pessoas quantas vezes precisar.
  5. 5. Dinâmica 3 Se ficarem sozinhos, o lobo come a ovelha, e a ovelha come o repolho.
  6. 6. Reflexões <ul><li>O problema é muito grande para o tempo?
  7. 7. É fácil gerenciar pessoas?
  8. 8. O que acontece quando alguém importante sai da equipe?
  9. 9. E se o problema muda? </li></ul>
  10. 10. A grande questão Como ganhar dinheiro resolvendo problemas que você não conhece, com pessoas desconhecidas, em um tempo curto e com poucos recursos (e se divertindo)?
  11. 11. Metodologias de desenvolvimento <ul><li>Metodologias rigorosas </li></ul><ul><li>Metodologias ágeis </li></ul>
  12. 12. Metodologias rigorosas <ul><li>Enfatizam o rigor em suas propostas
  13. 13. Valoriam bastante a documentação
  14. 14. Implementadas em grupos grandes
  15. 15. Metodologias pesadas: muitos processos, atividades, documentos </li></ul><ul><li>Estratégia de previsibilidade </li></ul><ul><li>Úteis para problemas específicos </li></ul>
  16. 16. Por que usar métodos ágeis? Fracasso de projetos: <ul><li>Não entrega o projeto
  17. 17. Entrega com poucas funcionalidades úteis
  18. 18. Entrega com muitas funcionalidades inúteis
  19. 19. Entrega com atrasos </li></ul>Porque isso acontece?
  20. 20. Fracasso de projetos - Chaos Report 1. Falta de envolvimento do usuario 2. Especificações e requisitos incompletos 3. Mudanças de especificações e requisitos 4. Falta de suporte executivo 5. Falta de competencia tecnologica 6. Falta de recursos 7. As expectativas são irreais 8. Os objetivos não estão claros 9. Os prazos são irreais 10. Novas tecnologias
  21. 21. Por que usar métodos ágeis? Mercado de software: <ul><li>Crescente demanda por software
  22. 22. Prazos cada vez menores </li></ul>
  23. 23. Princípios ágeis Importante: <ul><li>Processos e ferramentas
  24. 24. Documentação detalhada
  25. 25. Negociação de contrato
  26. 26. Seguir um plano </li></ul>Mais importante: <ul><li>Pessoas e interações
  27. 27. Software funcionando
  28. 28. Colaboração com o cliente
  29. 29. Adaptação à mudanças </li></ul>Optam pela adaptabilidade
  30. 30. Metodologias ágeis Início : metodologias leves para contrastar com as metodologias rigorosas/pesadas. Agilidade : “habilidade tanto para criar quanto para responder às mudanças, de modo a lucrar em um ambiente turbulento de negócios.” [Jim Highsmith]
  31. 31. Principais metodologias ágeis <ul><li>XP – desenvolvimento </li></ul><ul><li>Scrum – gerência e coordenação de projeto </li></ul>
  32. 32. Scrum Planejamento – relativamente curto. Sprint – período de 1 a 6 semanas com objetivos traçados. Backlog – lista das funcionalidades desejadas. Começa pelo básico, incrementando. Prioridades. Reuniões diárias – o que fez ontem e o que vai fazer hoje. Correção imediata de erros. Revisões do sprint – análise sobre o período.
  33. 33. Equipes <ul><li>Geralmente equipes pequenas: até 10 pessoas </li></ul><ul><li>Casos com equipes maiores: scrum hierárquico </li></ul>
  34. 34. Scrum
  35. 35. Quanto falta?
  36. 36. Exemplo real
  37. 37. XP – Programação eXtrema A XP é uma maneira leve, eficiente, de baixo risco, flexível, previsível, científica e divertida de desenvolver software. [Kent Beck]
  38. 38. Programação eXtrema Visão tradicional da engenharia de software Custo das modificações Momento em que a funcionalidade é adicionada
  39. 39. Programação eXtrema Custo das modificações Momento em que a funcionalidade é adicionada O que queremos
  40. 40. Entendendo XP <ul><ul><li>Valores
  41. 41. Princípios
  42. 42. Práticas </li></ul></ul>
  43. 43. Atividades básicas do desenvolvimento <ul><li>Codificar </li></ul><ul><li>Testar </li></ul><ul><li>Ouvir </li></ul><ul><li>Projetar </li></ul>
  44. 44. Práticas <ul><li>Jogo do planejamento
  45. 45. Entregas frequentes
  46. 46. Metáfora
  47. 47. Projeto simples
  48. 48. Testes
  49. 49. Refatoração </li></ul><ul><li>Padrões de codificação </li></ul><ul><li>Programação em pares
  50. 50. Propriedade coletiva
  51. 51. Integração contínua
  52. 52. Semana de 40 horas
  53. 53. Cliente presente </li></ul>
  54. 54. Metáforas
  55. 55. Metáforas
  56. 56. Metáforas
  57. 57. Metáforas
  58. 58. Metáforas
  59. 59. Metáforas
  60. 60. Metáforas
  61. 61. Metáforas
  62. 62. Metáforas
  63. 63. Metáforas
  64. 64. Metáforas
  65. 65. Metáforas
  66. 66. Metáforas
  67. 67. Metáforas
  68. 68. Metáforas
  69. 69. Metáforas
  70. 70. Metáforas
  71. 71. Metáforas
  72. 72. Metáforas
  73. 73. Metáforas
  74. 74. Metáforas
  75. 75. Metáforas
  76. 76. Metáforas
  77. 77. Metáforas
  78. 78. Metáfora “Desenvolver um software é como dirigir um carro”
  79. 79. Ambiente de trabalho <ul><li>Comunitário
  80. 80. Confortável </li></ul>...
  81. 81. Ambiente de trabalho
  82. 82. Ambiente de trabalho Escolha o seu lugar!
  83. 83. Papéis para as pessoas <ul><li>Programador
  84. 84. Cliente
  85. 85. Testador
  86. 86. Rastreador </li></ul><ul><li>Treinador
  87. 87. Consultor
  88. 88. Chefe </li></ul>
  89. 89. Regra 20-80 <ul><li>80% dos benefícios vêm de 20% do trabalho </li></ul><ul><li>20% das funcionalidades mais valiosas em produção </li></ul><ul><li>Adiar otimizações </li></ul>
  90. 90. Dificuldades da XP <ul><li>A XP é simples, mas não é fácil </li></ul><ul><li>É difícil manter as peças equilibradas </li></ul><ul><li>Depende de pessoas experientes </li></ul>
  91. 91. Quando não se deve usar a xp <ul><li>Especificação gigante antes de começar o projeto
  92. 92. Trabalho excessivo para provar o “comprometimento com a empresa”
  93. 93. Muitos programadores
  94. 94. Ambiente físico errado </li></ul>
  95. 95. Valores <ul><li>Comunicação </li></ul><ul><li>Simplicidade </li></ul><ul><li>Feedback </li></ul><ul><li>Coragem </li></ul>
  96. 96. Princícios básicos <ul><li>Feedback rápido </li></ul><ul><li>Simplicidade presumida </li></ul><ul><li>Mudanças incrementais </li></ul><ul><li>Aceitação das mudanças </li></ul><ul><li>Alta qualidade </li></ul>
  97. 97. Gerenciamento da comunicação <ul><li>Não importa o quanto a tecnologia avance, projetos são executados por pessoas </li></ul><ul><li>A maioria dos gerentes que tiveram projetos concluídos com sucesso gastou aproximadamente 90% do seu tempo envolvida em algum tipo de comunicação </li></ul><ul><li>O gerente deve saber como passar sua mensagem de forma a minimizar ou contornar os efeitos produzidos: </li></ul>“ Saber como falar” “ Estado de espírito” do emissor
  98. 98. Barreiras da comunicação <ul><li>Falta de canais de comunicação claros
  99. 99. Distância física ou temporal entre emissor e receptor
  100. 100. Uso inadequado da linguagem técnica
  101. 101. Fatores ambientais de distração (barulho, cheiro)
  102. 102. Atitudes prejudiciais (hostilidade, descrença, preconceito)
  103. 103. Informação excessiva
  104. 104. Falta de conhecimento sobre o assunto que está sendo comunicado (o campo de experiências não se sobrepoe)
  105. 105. Diferenças culturais </li></ul>
  106. 106. Canais de comunicação
  107. 107. Tipos de comunicação Verbal : oral ou escrita – mais utilizado Não-verbal : linuagem corporal. Os aspectos não-verbais da comunicação interpessoal nos projetos geralmente têm maior influência no impacto total da mensagem do que os fatores verbais. Esta dinâmica está expressa na fórmula: Impacto Total da Mensagem = Palavras (7%) + Tom de Voz (38%) + Expressões faciais (55%)
  108. 108. Início do projeto Conhecendo a equipe: <ul><li>Reunião de kick-off - festa </li></ul>
  109. 109. Conclusão Como foi?
  110. 110. Para saber mais - material [email_address]

×