SlideShare una empresa de Scribd logo
1 de 100
Ciclo de desenvolvimento ágil
            Uma abordagem para entrega de valor



                         Alexandre Cardoso
                                Tá Safo! Conf 2012
                                   Belém - Pará




 www.concretesolutions.com.br
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 :)
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


                                                  Teste


                                                          Implantação


                                                                    Manutenção



                                   Documentaçã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
              E
resolve 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 simples

Cobertura 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’s
Yes, 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
                       mudanças


         Repositório
Desenvolvedor




                         Falhou?
                         Corrigir



 Commit ao
    SCM
(dev branch)


                                    CI Server

                       Integrar
                       mudanças


         Repositório
Desenvolvedor




                         Falhou?
                         Corrigir



 Commit ao
    SCM
(dev branch)
                                                DEV OK?
                                                 Deploy
                                    CI Server

                       Integrar
                       mudanças


         Repositório                                      DEV Server
Desenvolvedor




                         Falhou?
                         Corrigir



 Commit ao
    SCM
(dev branch)
                                                   DEV OK?
                                                    Deploy
                                    CI Server

                       Integrar
                       mudanças
                                                    Testar
         Repositório                                         DEV Server




                                        Testador
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
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
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
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
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
Uma demonstração...
https://vimeo.com/43822385
     (Clique o link antes de avançar)
O que ganhamos?
Entregas de qualidade

Feedback ainda mais rápido

   Suporte à mudança
Pequenas ações

 Grande valor
Desenvolvimento efetivamente ágil.
Obrigado!

Más contenido relacionado

Destacado

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Destacado (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

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

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n