Microsoft TechDay – Sorocaba – 19/05/2012


 Desenvolvimento Ágil
   com SCRUM e Team
Foundation Server “11”
@IgorAbade
blog.lambda3.com.br/L3/IgorAbade
Agenda
3



    •   Introdução
    •   Priorização
    •   Planejamento
    •   Execução
    •   Respondendo às
        Perguntas
Típico Projeto de Software
           “Precisamos nos adequar aos novos requisitos”

      “Nossa equipe de desenvolvimento não se comunica”

      “Não conseguimos garantir a qualidade das soluções”

       “Nossa equipe não produz o quanto gostaríamos”

             “Nosso cronograma está atrasado”
Típico Projeto de Software
                                              Taxa de Sucesso nos projetos de software
  100%
  90%
  80%
  70%
  60%
  50%                                                                                                                      Sem sucesso
                                                                                                                           Com desafios
  40%                                                                                                                      Bem-sucedido
  30%
  20%
  10%
   0%
                  1996                     1998                     2000                     2002            2004   2006

     Fonte: Standish Group, Relatório da Pesquisa do Terceiro Trimestre 2006, Resultados da CHAOS Research
Desafios: Problemas comuns
• Requisitos de negócios não são gerenciados
  de forma efetiva
• Ferramentas e dados dispersos
• Testes não alinhados aos objetivos de
  negócios
• Falta de orientações e processos definidos
• Problemas de comunicação entre os
  membros da equipe
• Visibilidade limitada do status do projeto
  para tomada de decisões
O Manifesto Ágil
•   Indivíduos e interação entre eles mais que processos e ferramentas
•   Software em funcionamento mais que documentação abrangente
•   Colaboração com o cliente mais que negociação de contratos
•   Responder a mudanças mais que seguir um plano

                    Ou seja, mesmo havendo valor nos itens à
                  direita, valorizamos mais os itens à esquerda.

                         www.manifestoagil.com.br
Práticas Ágeis
                    Otimizar todo o fluxo
                    Foco na otimização de todo o processo de
        Lean        negócios

                               Cultura ágil, mindset e práticas
        Agile                  Eliminar desperdício
                               Respeitar as pessoas, foco
                               principalmente em P&D
        Scrum
                              Framework de gestão ágil de projetos
                              Papéis e cerimônias, melhoria contínua
                              dos times, entrega rápida, limitar
                              trabalho à capacidade
         XP      Práticas de engenharia
                 Trazer qualidade para dentro do desenvolvimento –
                 Automação, integração contínua, revisão por pares
                 etc.
Scrum
• Iterativo
• Comunicação
• Auto-organizado

• Define
   – Papéis
   – Artefatos
   – Eventos
Elementos do Scrum   Scrum Master

                     Product Owner

                     Team
Office


                Version Control          Test Case Management

           Requirements                            Build Automation
           Management

         Project                                            Reporting
         Management



                                  Extensibility
Priorização
Priorização   Planejamento   Execução   Respostas
Cuidando do Backlog
           Product Backlog
            3
            8

            5
Priority




            3

            8
            1

            5
Cuidando do Backlog
 Product Backlog
  3
  8

  5
  3

  5
  8

  1
Critério de Aceitação
 Product Backlog

                   Critério de Aceitação
                   • Eu posso pesquisar por ….
                   • Eu posso pagar com ….
                   • Eu posso ver e editar …
Priorização
Planejamento
Priorização   Planejamento   Execução   Respostas
Planejamento
 Product Backlog   Sprint Backlog
  5
  3
  8

  5
Planejamento
 Product Backlog   Sprint Backlog
  5
  8

  5
Planejamento
 Product Backlog   Sprint Backlog
Planejamento
 Product Backlog              Sprint Backlog




                   TOO BIG!
Planejamento
 Product Backlog   Sprint Backlog
Planejamento
 Product Backlog             Sprint Backlog




                   COMMIT!
Planejamento
Execução
Priorização   Planejamento   Execução   Respostas
Execução
Product Backlog   Sprint Backlog
XP: Extreme Programming




                          31
Integração Contínua
• Integração Contínua é
  uma prática
• Integrar código cedo e
  com frequência, para
  evitar “Integration Hell"
• Objetivo final é “parar e
  consertar” o mais cedo
  possível
Princípios
• Automatize o Build e o mantenha rápido
• Crie um Build “auto-testável”
• Todo mundo faz check-in diariamente
• Todo check-in deve ser compilado
• Testes numa cópia do ambiente de
  produção
• Facilite o acesso aos últimos entregáveis
• Todo mundo pode ver os resultados do
  último build
Fluxo de Integração Contínua
Developer                           Product Build                        Cross Products             Solution Integration




      • Code + Build + Unit            • Build and Package                     • End to end flows          • Pickup & Deploy
        Testing until stable           • Unit Testing                                                      • Test
      • Get latest and Merge           • Deploy and Test
      • Local Build + test + code        • Integ / Acceptance / System
        analysis …
      • Check-in                       • Code Quality Checks
                                       • Profiling
                                       • Log Analysis




                                          Relatório de Falhas
TDD – Test-driven Development
Execução
Respondendo às
Perguntas
 Responding
Priorização   Planejamento   Execução   Respostas
Planejamento
 Product Backlog   Sprint Backlog
Velocidade
 Product Backlog   Velocity

                   Sprint 1:   13

                   Sprint 2:   15

                   Sprint 3:   12

                   Sprint 4:   18
Cuidando do Backlog
           Product Backlog
Priority
Respondendo às mudanças
           Product Backlog
Priority
“Pronto!"
• Pronto (Done) define quando         • Exemplo de um DoD
  um incremento do produto é            simples:
  potencialmente entregável
                                        –   Código completo
• Definition of Done (DoD)
   – Uma lista
                                        –   Testes passando
     simples, auditável, pertencent     –   Tudo em check-in
     e ao time                          –   Critérios de aceitação
   – Pode ser influenciada por              definidos pelo PO foram
     padrões organizacionais e
     requisitos específicos do              atingidos
     produto ou da entrega
Conclusão
 Takeaways
Dez coisas para levar para pensar
• Defina o “pronto”             • Escreva testes de unidade.
• Falhe rápido                    Sempre
• Entenda a velocidade do seu   • Autonomy, mastery, purpose
  time                          • Faça a coisa certa… na hora
• Termine o que você começou      certa
• Bugs são trabalho de          • Planeje até que você precise
  verdade                         aprender
                                • Qualidade não é uma variável
www.lambda3.com.br

Desenvolvimento ágil com Scrum e TFS 11 - Microsoft TechDay Sorocaba 2012

  • 1.
    Microsoft TechDay –Sorocaba – 19/05/2012 Desenvolvimento Ágil com SCRUM e Team Foundation Server “11”
  • 2.
  • 3.
    Agenda 3 • Introdução • Priorização • Planejamento • Execução • Respondendo às Perguntas
  • 4.
    Típico Projeto deSoftware “Precisamos nos adequar aos novos requisitos” “Nossa equipe de desenvolvimento não se comunica” “Não conseguimos garantir a qualidade das soluções” “Nossa equipe não produz o quanto gostaríamos” “Nosso cronograma está atrasado”
  • 5.
    Típico Projeto deSoftware Taxa de Sucesso nos projetos de software 100% 90% 80% 70% 60% 50% Sem sucesso Com desafios 40% Bem-sucedido 30% 20% 10% 0% 1996 1998 2000 2002 2004 2006 Fonte: Standish Group, Relatório da Pesquisa do Terceiro Trimestre 2006, Resultados da CHAOS Research
  • 6.
    Desafios: Problemas comuns •Requisitos de negócios não são gerenciados de forma efetiva • Ferramentas e dados dispersos • Testes não alinhados aos objetivos de negócios • Falta de orientações e processos definidos • Problemas de comunicação entre os membros da equipe • Visibilidade limitada do status do projeto para tomada de decisões
  • 7.
    O Manifesto Ágil • Indivíduos e interação entre eles mais que processos e ferramentas • Software em funcionamento mais que documentação abrangente • Colaboração com o cliente mais que negociação de contratos • Responder a mudanças mais que seguir um plano Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda. www.manifestoagil.com.br
  • 8.
    Práticas Ágeis Otimizar todo o fluxo Foco na otimização de todo o processo de Lean negócios Cultura ágil, mindset e práticas Agile Eliminar desperdício Respeitar as pessoas, foco principalmente em P&D Scrum Framework de gestão ágil de projetos Papéis e cerimônias, melhoria contínua dos times, entrega rápida, limitar trabalho à capacidade XP Práticas de engenharia Trazer qualidade para dentro do desenvolvimento – Automação, integração contínua, revisão por pares etc.
  • 9.
    Scrum • Iterativo • Comunicação •Auto-organizado • Define – Papéis – Artefatos – Eventos
  • 10.
    Elementos do Scrum Scrum Master Product Owner Team
  • 11.
    Office Version Control Test Case Management Requirements Build Automation Management Project Reporting Management Extensibility
  • 12.
  • 13.
    Priorização Planejamento Execução Respostas
  • 14.
    Cuidando do Backlog Product Backlog 3 8 5 Priority 3 8 1 5
  • 15.
    Cuidando do Backlog Product Backlog 3 8 5 3 5 8 1
  • 16.
    Critério de Aceitação Product Backlog Critério de Aceitação • Eu posso pesquisar por …. • Eu posso pagar com …. • Eu posso ver e editar …
  • 17.
  • 18.
  • 19.
    Priorização Planejamento Execução Respostas
  • 20.
    Planejamento Product Backlog Sprint Backlog 5 3 8 5
  • 21.
    Planejamento Product Backlog Sprint Backlog 5 8 5
  • 22.
  • 23.
    Planejamento Product Backlog Sprint Backlog TOO BIG!
  • 24.
  • 25.
    Planejamento Product Backlog Sprint Backlog COMMIT!
  • 26.
  • 27.
  • 28.
    Priorização Planejamento Execução Respostas
  • 29.
  • 30.
  • 31.
    Integração Contínua • IntegraçãoContínua é uma prática • Integrar código cedo e com frequência, para evitar “Integration Hell" • Objetivo final é “parar e consertar” o mais cedo possível
  • 32.
    Princípios • Automatize oBuild e o mantenha rápido • Crie um Build “auto-testável” • Todo mundo faz check-in diariamente • Todo check-in deve ser compilado • Testes numa cópia do ambiente de produção • Facilite o acesso aos últimos entregáveis • Todo mundo pode ver os resultados do último build
  • 33.
    Fluxo de IntegraçãoContínua Developer Product Build Cross Products Solution Integration • Code + Build + Unit • Build and Package • End to end flows • Pickup & Deploy Testing until stable • Unit Testing • Test • Get latest and Merge • Deploy and Test • Local Build + test + code • Integ / Acceptance / System analysis … • Check-in • Code Quality Checks • Profiling • Log Analysis Relatório de Falhas
  • 34.
  • 35.
  • 36.
  • 37.
    Priorização Planejamento Execução Respostas
  • 38.
  • 39.
    Velocidade Product Backlog Velocity Sprint 1: 13 Sprint 2: 15 Sprint 3: 12 Sprint 4: 18
  • 40.
    Cuidando do Backlog Product Backlog Priority
  • 41.
    Respondendo às mudanças Product Backlog Priority
  • 42.
    “Pronto!" • Pronto (Done)define quando • Exemplo de um DoD um incremento do produto é simples: potencialmente entregável – Código completo • Definition of Done (DoD) – Uma lista – Testes passando simples, auditável, pertencent – Tudo em check-in e ao time – Critérios de aceitação – Pode ser influenciada por definidos pelo PO foram padrões organizacionais e requisitos específicos do atingidos produto ou da entrega
  • 43.
  • 44.
    Dez coisas paralevar para pensar • Defina o “pronto” • Escreva testes de unidade. • Falhe rápido Sempre • Entenda a velocidade do seu • Autonomy, mastery, purpose time • Faça a coisa certa… na hora • Termine o que você começou certa • Bugs são trabalho de • Planeje até que você precise verdade aprender • Qualidade não é uma variável
  • 46.

Notas do Editor

  • #13 Show the breath of Visual Studio Family products across the defined ALM domain Visual Studio not only meets the definition of ALM but provides great solutions for the problems in each bucket.Build with how the family again provides solutions to the aforementioned problemswithin the ALM themesNote: Here we point out related Governance solutions (Office Family) and Operations solutions (System Center) and how we fit into other customer infrastructure investments. Some of these will be hidden slides depending on how much the customer is aware of or already invested in these solutions.[this slide is highlighting the Microsoft ALM solutions. Should we overlay any customer messaging?”Iconics: The integrated solution gives global teams unified tools to simplify project management and streamline product lifecycle processes. As a result, ICONICS expects to cut costs by 10 percent, improve product quality, and increase productivity by 100 percent.Mizuho Securities Asia Limited “Visual Studio 2010 has led to a 30% decrease in man hours so far. Our IT staff … can focus their time on tasks that add more value to the business, such as development. We are getting maximum productivity with minimum resources.” -SzeChing Chi, Head of I.T., Mizuho Securities Asia Limited
  • #46 In his new book, "Drive," Daniel Pink explores the concept of human motivation and what he calls "the surprising truth" about what motivates us."Drive" boils down true motivation into three elements: 1) autonomy, the desire to direct our own lives, 2) mastery, the desire to continually improve at something that matters, and 3) purpose, the desire to do things in service of something larger than ourselves.