Ciclo de desenvolvimento ágil            Uma abordagem para entrega de valor                         Alexandre Cardoso    ...
Alexandre Cardoso (@accbel)• Mais um paraense em SP (um dia eu volto)• 12 anos de batalha• Java, Ruby, Engenharia de Softw...
Desenvolvimento ágil
Do que estamos falando?
Processos?
Práticas ágeis?
Programação em par?
Planning poker?
Desenvolvimento ágil nas empresas
Algumas “facetas”
Ágil como “vantagem” comercial
“Minha empresa é ágil. Planejamos sprints...”
“Nossos profissionais são ágeis. Fazemos reuniões          diárias de 15 minutos e só!”
“Ágil”, da porta para fora
Já no lado de dentro...
Especificação               Análise                         Projeto                                    Codificação          ...
Ágil com ênfase na gestão
Planejamento em sprints
Quadros
Reunião diária
Foco no produto?
Resultado cotidiano
“Ah, o desenvolvedor não testou direito”
A “solução”                 Oi!              Precisa de               testes?
Mais do mesmo, com nova “roupagem”
Do que estamos falando mesmo?
Agilidade NÃO é ferramenta comercial
Agilidade NÃO é apenas gestão
Agilidade éEntrega de Valor!
Software que funciona              Eresolve o problema do usuário
Software preparado para a mudança
Transparecer desvios - Antecipar soluções
Lembra dos processos?
Seja qual for a abordagem escolhida
Entrega de valor é possível, sempre
Como entregar valor?
Primeiro passo:
Testes automatizados
Automatize o máximo de testes que puder
Sim, escrever testes dá trabalho
Sim, seu chefe (provavelmente) vai dizer...
“Cliente não paga por testes”
Não, não vai acabar com todos os bugs
Testes falhando > Diagramas estáticos
Testes evidenciam o impacto da mudança
“Experimente analisar a mudança olhando isso...”
Testes são como um remédio ruim
Por onde começar?
Unidade de software
Escolha a ferramenta...
E avance rumo ao topo
E avance rumo ao topo                         Você está                        preso aqui?
Segundo passo:
Promova a integração contínua...
De forma automatizada
Integrar éoportunizar a inspeção
Métricas
Medir alguma propriedade específica            de código
Quantificar o que antes era abstrato
Por onde começar?
Uma medida simplesCobertura de testes
Identifica trechos de código não executados por testes
Código coberto != código bem testado
Complexidade ciclomática
Número de caminhos independentes     na execução do código
Início                           No, it’sYes, it is!   value > 0?                            not.                Fim
Pode indicar a quantidade de casos de teste para           total cobertura do código
Complexidade alta? (> 20)
Muitas responsabilidades
Difícil de testar com qualidade          Refatorar
O que mais podemos inspecionar?
Duplicação de código? Classes gigantescas?     Code style?
Não medir é um problema
Medir demais? Também
Terceiro (não menos importante) passo:
Entregue continuamente
Juntando tudo
Uma abordagem minimalista
Desenvolvedor
Desenvolvedor Commit ao    SCM(dev branch)         Repositório
Desenvolvedor Commit ao    SCM(dev branch)                                  CI Server                       Integrar      ...
Desenvolvedor                         Falhou?                         Corrigir Commit ao    SCM(dev branch)               ...
Desenvolvedor                         Falhou?                         Corrigir Commit ao    SCM(dev branch)               ...
Desenvolvedor                         Falhou?                         Corrigir Commit ao    SCM(dev branch)               ...
Desenvolvedor                            Falhou?                            Corrigir Commit ao    SCM(dev branch)         ...
Desenvolvedor                            Falhou?                            Corrigir               QA OK?                 ...
Desenvolvedor                                     Time ágil                            Falhou?                            ...
Desenvolvedor                                     Time ágil                            Falhou?                            ...
Desenvolvedor                                     Time ágil                            Falhou?                            ...
Uma demonstração...
https://vimeo.com/43822385     (Clique o link antes de avançar)
O que ganhamos?
Entregas de qualidadeFeedback ainda mais rápido   Suporte à mudança
Pequenas ações Grande valor
Desenvolvimento efetivamente ágil.
Obrigado!
Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil
Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil
Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil
Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil
Próximos SlideShares
Carregando em…5
×

Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil

1.495 visualizações

Publicada em

Palestra realizada na conferência do Tá Safo, em Belém do Pará, em 10/06/2012. Apresentação sobre técnicas para construção e entrega de valor em projetos ágeis de software

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.495
No SlideShare
0
A partir de incorporações
0
Número de incorporações
491
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Ciclo de desenvolvimento ágil - Uma abordagem para entrega de valor - Tá Safo Conf 2012 - Belém/PA/Brazil

    1. 1. Ciclo de desenvolvimento ágil Uma abordagem para entrega de valor Alexandre Cardoso Tá Safo! Conf 2012 Belém - Pará www.concretesolutions.com.br
    2. 2. Alexandre Cardoso (@accbel)• Mais um paraense em SP (um dia eu volto)• 12 anos de batalha• Java, Ruby, Engenharia de Software, Agile• Muito a aprender e um pouco a dividir :)
    3. 3. Desenvolvimento ágil
    4. 4. Do que estamos falando?
    5. 5. Processos?
    6. 6. Práticas ágeis?
    7. 7. Programação em par?
    8. 8. Planning poker?
    9. 9. Desenvolvimento ágil nas empresas
    10. 10. Algumas “facetas”
    11. 11. Ágil como “vantagem” comercial
    12. 12. “Minha empresa é ágil. Planejamos sprints...”
    13. 13. “Nossos profissionais são ágeis. Fazemos reuniões diárias de 15 minutos e só!”
    14. 14. “Ágil”, da porta para fora
    15. 15. Já no lado de dentro...
    16. 16. Especificação Análise Projeto Codificação Teste Implantação Manutenção Documentação
    17. 17. Ágil com ênfase na gestão
    18. 18. Planejamento em sprints
    19. 19. Quadros
    20. 20. Reunião diária
    21. 21. Foco no produto?
    22. 22. Resultado cotidiano
    23. 23. “Ah, o desenvolvedor não testou direito”
    24. 24. A “solução” Oi! Precisa de testes?
    25. 25. Mais do mesmo, com nova “roupagem”
    26. 26. Do que estamos falando mesmo?
    27. 27. Agilidade NÃO é ferramenta comercial
    28. 28. Agilidade NÃO é apenas gestão
    29. 29. Agilidade éEntrega de Valor!
    30. 30. Software que funciona Eresolve o problema do usuário
    31. 31. Software preparado para a mudança
    32. 32. Transparecer desvios - Antecipar soluções
    33. 33. Lembra dos processos?
    34. 34. Seja qual for a abordagem escolhida
    35. 35. Entrega de valor é possível, sempre
    36. 36. Como entregar valor?
    37. 37. Primeiro passo:
    38. 38. Testes automatizados
    39. 39. Automatize o máximo de testes que puder
    40. 40. Sim, escrever testes dá trabalho
    41. 41. Sim, seu chefe (provavelmente) vai dizer...
    42. 42. “Cliente não paga por testes”
    43. 43. Não, não vai acabar com todos os bugs
    44. 44. Testes falhando > Diagramas estáticos
    45. 45. Testes evidenciam o impacto da mudança
    46. 46. “Experimente analisar a mudança olhando isso...”
    47. 47. Testes são como um remédio ruim
    48. 48. Por onde começar?
    49. 49. Unidade de software
    50. 50. Escolha a ferramenta...
    51. 51. E avance rumo ao topo
    52. 52. E avance rumo ao topo Você está preso aqui?
    53. 53. Segundo passo:
    54. 54. Promova a integração contínua...
    55. 55. De forma automatizada
    56. 56. Integrar éoportunizar a inspeção
    57. 57. Métricas
    58. 58. Medir alguma propriedade específica de código
    59. 59. Quantificar o que antes era abstrato
    60. 60. Por onde começar?
    61. 61. Uma medida simplesCobertura de testes
    62. 62. Identifica trechos de código não executados por testes
    63. 63. Código coberto != código bem testado
    64. 64. Complexidade ciclomática
    65. 65. Número de caminhos independentes na execução do código
    66. 66. Início No, it’sYes, it is! value > 0? not. Fim
    67. 67. Pode indicar a quantidade de casos de teste para total cobertura do código
    68. 68. Complexidade alta? (> 20)
    69. 69. Muitas responsabilidades
    70. 70. Difícil de testar com qualidade Refatorar
    71. 71. O que mais podemos inspecionar?
    72. 72. Duplicação de código? Classes gigantescas? Code style?
    73. 73. Não medir é um problema
    74. 74. Medir demais? Também
    75. 75. Terceiro (não menos importante) passo:
    76. 76. Entregue continuamente
    77. 77. Juntando tudo
    78. 78. Uma abordagem minimalista
    79. 79. Desenvolvedor
    80. 80. Desenvolvedor Commit ao SCM(dev branch) Repositório
    81. 81. Desenvolvedor Commit ao SCM(dev branch) CI Server Integrar mudanças Repositório
    82. 82. Desenvolvedor Falhou? Corrigir Commit ao SCM(dev branch) CI Server Integrar mudanças Repositório
    83. 83. Desenvolvedor Falhou? Corrigir Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Repositório DEV Server
    84. 84. Desenvolvedor Falhou? Corrigir Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Testador
    85. 85. Desenvolvedor Falhou? Corrigir Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Teste OK? Commit (QA branch) Testador
    86. 86. Desenvolvedor Falhou? Corrigir QA OK? Deploy QA Server Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Teste OK? Commit (QA branch) Testador
    87. 87. Desenvolvedor Time ágil Falhou? Corrigir QA OK? Deploy QA Server Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Teste OK? Commit (QA branch) Testador
    88. 88. Desenvolvedor Time ágil Falhou? Corrigir QA OK? Cliente Deploy QA Server Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Teste OK? Commit (QA branch) Testador
    89. 89. Desenvolvedor Time ágil Falhou? Corrigir QA OK? Cliente Deploy QA Server Commit ao SCM(dev branch) DEV OK? Deploy CI Server Integrar mudanças Testar Repositório DEV Server Teste OK? Commit (QA branch) Testador
    90. 90. Uma demonstração...
    91. 91. https://vimeo.com/43822385 (Clique o link antes de avançar)
    92. 92. O que ganhamos?
    93. 93. Entregas de qualidadeFeedback ainda mais rápido Suporte à mudança
    94. 94. Pequenas ações Grande valor
    95. 95. Desenvolvimento efetivamente ágil.
    96. 96. Obrigado!

    ×