SCRUM e XP
 desenvolvimento ágil de software
experiências e relatos do dia a dia
        de uma pequena empresa




                   Paulo César M. Jeveaux
                               @jeveaux
Paulo César Machado Jeveaux
@jeveaux                                                                  jevô
            (jéve, jêve, jevô, jevú, jevax, já foi, já vou, já vai ...)




    que
 vergonha
o processo tradicional
Inspirado em outras
                           engenharias




Quase sempre a civil
Inspirado em outras
                           engenharias




Quase sempre a civil
mas...
... na verdade
code and fix!
Dá pra afastar um pouquinho?
Custo de mudanças
algo de errado
não está certo!


 precisamos
  melhorar
Motivação
“A	
  experiência	
  de	
  décadas	
  seguindo	
  pesadas	
  prá4cas	
  prescri4vas	
  tornou	
  
evidente	
  que:
  ➡       Os	
  clientes	
  ou	
  usuários	
  não	
  tem	
  certeza	
  do	
  que	
  eles	
  querem.
  ➡       Eles	
  tem	
  dificuldade	
  de	
  expressar	
  tudo	
  o	
  que	
  querem	
  e	
  pensam.
  ➡       Muitos	
  detalhes	
  do	
  que	
  eles	
  querem	
  só	
  serão	
  revelados	
  durante	
  o	
  
          desenvolvimento.
  ➡       Os	
  detalhes	
  são	
  complexos	
  para	
  as	
  pessoas.
  ➡       Na	
  medida	
  em	
  que	
  elas	
  vêem	
  o	
  produto	
  sendo	
  construído,	
  elas	
  mudam	
  
          de	
  idéia.
  ➡       Forças	
  externas	
  trazem	
  mudanças	
  ou	
  melhorias	
  nos	
  requisitos.”


                 Source: Agile and Iterative Development: A Manager's Guide by Craig Larman
Manifesto Ágil
      Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós
      mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar:

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.

           Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn,Ward Cunningham, Martin Fowler, James
          Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor,
                                        Ken Schwaber, Jeff Sutherland, Dave Thomas


                                                                                                        ©2001, Autores acima citados.
        Esta declaração pode ser livremente copiada, sob qualquer forma,mas apenas na sua totalidade através do presente aviso.
Utilização de
funcionalidades de software
          Frequentemente   Às vezes
               13%           16%

        Sempre
          7%



                                      Raramente
                                         19%



           Nunca
            45%
desperdício
            Raramente
               19%



    Nunca
     45%
Pareto
        Frequentemente
             13%

      Sempre
        7%




20% das funcionalidades
  geram 80% do valor
SCRUM?
framework
framework
     iterativo
framework
      iterativo
  incremental
framework
         me nto
     ncia quer
 gere qual        ade
             tivid

                 iterativo
   de     ua
      to o lexa
produ omp
       c




             incremental
Checklist: SCRUM
•   Gerenciamento empírico e controle de processos.
•   Baseado no feedback das iteracões.
•   Usado para gerenciar projetos complexos desde
    1990.
•   Equipes multi-funcionais e auto-gerenciadas.
•   Escalável para projetos grandes, longos e
    distribuídos.
•   Comunicação como fator crítico.
Organizações
    e papéis
product owner
visão                  datas
         prioriza
                       conteúdo
ROI         releases
        product owner
visão                  datas
         prioriza
                       conteúdo
ROI         releases
        product owner
             aceita
               ou
             rejeita
time
auto-gerenciado
                  comprometido
              time

  multi-          comunicação
disciplinar        constante
Autoridade!
auto-gerenciado
                  comprometido
              time

  multi-          comunicação
disciplinar        constante
scrum master
protetor         aplica as regras
  resolve          do SCRUM
 problemas               Autoridade


        scrum master

mantém o foco
no sprint goal
protetor         aplica as regras
  resolve          do SCRUM
 problemas               Autoridade


        scrum master

mantém o foco
no sprint goal   Facilitador!
time
boxed
tudo!
Tem um tempo pré-
   determinado
daily meeting: 15 minutos
                         sprint planning: ~4 horas
  sprint: 2 a 4 semanas


       Tem um tempo pré-
          determinado
      o trabalho deve ser planejado para caber
             no sprint e não o contrário
scrum flow
product backlog
desejos do PO

  cresce com
   o projeto

   iterativo
 comece pelo
mais importante
desejos do PO

        cresce com
         o projeto

         iterativo
ROI    comece pelo
      mais importante
sprint planning
time + scrum master
 PO prioriza itens              + product owner
  para o sprint
                             time tira dúvidas



             sprint planning
time converte as funcionalidades
      em tarefas técnicas
time define o objetivo
 do sprint (sprint goal)
                              documentação!
planning poker
sprint planning 2
eventualmente o scrum master
                                  negocia com o PO
o time decide até onde
pode se comprometer


            sprint planning 2
 time conversa sobre a
parte técnica das tarefas               design
                                      arquitetura
Sprint backlog
    tarefas que o time se
comprometeu a fazer no sprint


  atualizado constantemente

  scrum master gerencia as
 atividades em andamento e
          concluídas
daily meeting
verifica-se o que foi
                          reunião em pé!
feito no dia anterior

                        há impedimentos?


             daily meeting
define-se o que será        todos os dias
    feito no dia          no mesmo lugar
                         no mesmo horário
                        comprometa-se!
burndown chart
•            •

burndown chart
sprint review
retrospectiva
retrospectiva
Custo de mudança
Custo de mudança
XP
Extreme Progamming
O que é XP?
Extreme Programming
 É um conjunto de princípios, valores e práticas
Onde...

... os princípios conectam
os valores às práticas
comunicação, coragem,
valores   feedback, respeito e
          simplicidade
comunicação, coragem,
valores      feedback, respeito e
             simplicidade
             auto semelhança, melhoria, benefício
             mútuo, oportunidade, diversidade, passos
princípios   de bebê, economia, qualidade, falha,
             redundância, fluidez, reflexão, humanismo,
             responsabilidade
comunicação, coragem,
valores      feedback, respeito e
             simplicidade
             auto semelhança, melhoria, benefício
             mútuo, oportunidade, diversidade, passos
princípios   de bebê, economia, qualidade, falha,
             redundância, fluidez, reflexão, humanismo,
             responsabilidade


             ambiente informativo, equipe integral,

práticas
             build de 10 minutos, folga, ciclo semanal,
             histórias, integração contínua, TDD,
             programação em par, design incremental,
             sentar-se junto, trabalho energizado
• O XP é uma metodologia rigorosa e
  disciplinada que requer o cumprimento
  de suas práticas para o sucesso na adoção.

• O XP pode ser usado com CMM e UPs.
• A preocupação não é com qualidade (que
  deve natural) e sim com a saúde do
  sistema (segundo Kent Beck).

                                        [Cristiano Milfont]
adapte-se
teste tudo antes - TDD
Coragem




loucura             confiança
Programação em par
•   Todo código é escrito em par
•   Um digita, enquanto o outro revisa, corrige e
    sugere
•   Redução drástica de bugs
•   Disseminação de conhecimento
•   Pressão do par
•   Simplicidade
•   Velocidade
Velocidade
SCRUM resolve!?
product owner
 3
papéis
          scrum master
              time
product owner
               3
              papéis
                        scrum master
                            time

             sprint planning
   3
cerimônias
              daily meeting
              sprint review
product owner
               3
              papéis
                          scrum master
                              time

             sprint planning
   3
cerimônias
              daily meeting
              sprint review

                         product backlog
               3
             artefatos
                          sprint backlog
                         burn down chart
SCRUM sem <?> é uma
casca oca para desenvolver
         software
XP



 SCRUM sem <?> é uma
casca oca para desenvolver
         software
XP



 SCRUM sem <?> é uma    FDD


casca oca para desenvolver
         software
XP



 SCRUM sem <?> é uma          FDD


casca oca para desenvolver
                engenharia!


         software
e XP, resolve!?
Semelhanças: SCRUM e XP

     Sprint        Iteraction

                    Iteraction
 Sprint Planning
                     Planning

                    Stand-up
 Daily SCRUM        Meeting

 Retrospective     Reflection

  SCRUM               XP
SCRUM e XP
 Não os confunda. SCRUM e XP se
complementam muito bem, mas são
           diferentes.
não há bala de prata
obrigado!

       Paulo César M. Jeveaux
                   @jeveaux
Referências
•   Fotos
    •   ImproveIt - http://www.improveit.com.br
    •   Jorge Falcão - http://www.flickr.com/photos/68667282@N00/
    •   Tlaukkanen - http://www.flickr.com/photos/tlaukkanen/
    •   Evandro Flores - http://www.flickr.com/photos/evandroflores/
    •   Bardusco - http://www.flickr.com/photos/bardusco/
    •   Luiz Aguiar - http://www.flickr.com/photos/laguiar
    •   Cuba Gallery - http://www.flickr.com/photos/cubagallery/
•   Materiais
    •   Extreme Programming - http://extremeprogramming.org
    •   Igor Macaubas e Marcos Pereira - http://www.slideshare.net/macaubas/seminario-scrum-presentation
    •   ImproveIt - http://www.improveit.com.br/scrum
    •   ImproveIt - http://www.improveit.com.br/xp
    •   Manifesto Ágil - http://manifestoagil.com.br
    •   Guilherme Chapiewski - http://www.slideshare.net/gchapiewski/desenvolvimento-gil-com-xp-e-
        scrum-presentation
    •   Cristiano Milfont - http://www.slideshare.net/cmilfont/extreme-programming-148802
SCRUM e XP
 desenvolvimento ágil de software
experiências e relatos do dia a dia
        de uma pequena empresa




                   Paulo César M. Jeveaux
                               @jeveaux

SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos

  • 1.
    SCRUM e XP desenvolvimento ágil de software experiências e relatos do dia a dia de uma pequena empresa Paulo César M. Jeveaux @jeveaux
  • 2.
    Paulo César MachadoJeveaux @jeveaux jevô (jéve, jêve, jevô, jevú, jevax, já foi, já vou, já vai ...) que vergonha
  • 3.
  • 6.
    Inspirado em outras engenharias Quase sempre a civil
  • 7.
    Inspirado em outras engenharias Quase sempre a civil
  • 8.
  • 9.
  • 11.
    Dá pra afastarum pouquinho?
  • 12.
  • 13.
    algo de errado nãoestá certo! precisamos melhorar
  • 14.
    Motivação “A  experiência  de  décadas  seguindo  pesadas  prá4cas  prescri4vas  tornou   evidente  que: ➡ Os  clientes  ou  usuários  não  tem  certeza  do  que  eles  querem. ➡ Eles  tem  dificuldade  de  expressar  tudo  o  que  querem  e  pensam. ➡ Muitos  detalhes  do  que  eles  querem  só  serão  revelados  durante  o   desenvolvimento. ➡ Os  detalhes  são  complexos  para  as  pessoas. ➡ Na  medida  em  que  elas  vêem  o  produto  sendo  construído,  elas  mudam   de  idéia. ➡ Forças  externas  trazem  mudanças  ou  melhorias  nos  requisitos.” Source: Agile and Iterative Development: A Manager's Guide by Craig Larman
  • 15.
    Manifesto Ágil Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar: 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. Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn,Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas ©2001, Autores acima citados. Esta declaração pode ser livremente copiada, sob qualquer forma,mas apenas na sua totalidade através do presente aviso.
  • 16.
    Utilização de funcionalidades desoftware Frequentemente Às vezes 13% 16% Sempre 7% Raramente 19% Nunca 45%
  • 17.
    desperdício Raramente 19% Nunca 45%
  • 18.
    Pareto Frequentemente 13% Sempre 7% 20% das funcionalidades geram 80% do valor
  • 19.
  • 20.
  • 21.
    framework iterativo
  • 22.
    framework iterativo incremental
  • 23.
    framework me nto ncia quer gere qual ade tivid iterativo de ua to o lexa produ omp c incremental
  • 24.
    Checklist: SCRUM • Gerenciamento empírico e controle de processos. • Baseado no feedback das iteracões. • Usado para gerenciar projetos complexos desde 1990. • Equipes multi-funcionais e auto-gerenciadas. • Escalável para projetos grandes, longos e distribuídos. • Comunicação como fator crítico.
  • 25.
    Organizações e papéis
  • 26.
  • 27.
    visão datas prioriza conteúdo ROI releases product owner
  • 28.
    visão datas prioriza conteúdo ROI releases product owner aceita ou rejeita
  • 29.
  • 30.
    auto-gerenciado comprometido time multi- comunicação disciplinar constante
  • 31.
    Autoridade! auto-gerenciado comprometido time multi- comunicação disciplinar constante
  • 32.
  • 33.
    protetor aplica as regras resolve do SCRUM problemas Autoridade scrum master mantém o foco no sprint goal
  • 34.
    protetor aplica as regras resolve do SCRUM problemas Autoridade scrum master mantém o foco no sprint goal Facilitador!
  • 35.
  • 36.
  • 37.
    Tem um tempopré- determinado
  • 38.
    daily meeting: 15minutos sprint planning: ~4 horas sprint: 2 a 4 semanas Tem um tempo pré- determinado o trabalho deve ser planejado para caber no sprint e não o contrário
  • 39.
  • 40.
  • 41.
    desejos do PO cresce com o projeto iterativo comece pelo mais importante
  • 42.
    desejos do PO cresce com o projeto iterativo ROI comece pelo mais importante
  • 43.
  • 44.
    time + scrummaster PO prioriza itens + product owner para o sprint time tira dúvidas sprint planning time converte as funcionalidades em tarefas técnicas time define o objetivo do sprint (sprint goal) documentação!
  • 45.
  • 46.
  • 47.
    eventualmente o scrummaster negocia com o PO o time decide até onde pode se comprometer sprint planning 2 time conversa sobre a parte técnica das tarefas design arquitetura
  • 48.
    Sprint backlog tarefas que o time se comprometeu a fazer no sprint atualizado constantemente scrum master gerencia as atividades em andamento e concluídas
  • 49.
  • 50.
    verifica-se o quefoi reunião em pé! feito no dia anterior há impedimentos? daily meeting define-se o que será todos os dias feito no dia no mesmo lugar no mesmo horário comprometa-se!
  • 51.
  • 52.
    • burndown chart
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
    Extreme Programming Éum conjunto de princípios, valores e práticas
  • 61.
    Onde... ... os princípiosconectam os valores às práticas
  • 63.
    comunicação, coragem, valores feedback, respeito e simplicidade
  • 64.
    comunicação, coragem, valores feedback, respeito e simplicidade auto semelhança, melhoria, benefício mútuo, oportunidade, diversidade, passos princípios de bebê, economia, qualidade, falha, redundância, fluidez, reflexão, humanismo, responsabilidade
  • 65.
    comunicação, coragem, valores feedback, respeito e simplicidade auto semelhança, melhoria, benefício mútuo, oportunidade, diversidade, passos princípios de bebê, economia, qualidade, falha, redundância, fluidez, reflexão, humanismo, responsabilidade ambiente informativo, equipe integral, práticas build de 10 minutos, folga, ciclo semanal, histórias, integração contínua, TDD, programação em par, design incremental, sentar-se junto, trabalho energizado
  • 66.
    • O XPé uma metodologia rigorosa e disciplinada que requer o cumprimento de suas práticas para o sucesso na adoção. • O XP pode ser usado com CMM e UPs. • A preocupação não é com qualidade (que deve natural) e sim com a saúde do sistema (segundo Kent Beck). [Cristiano Milfont]
  • 67.
  • 68.
  • 69.
    Coragem loucura confiança
  • 70.
    Programação em par • Todo código é escrito em par • Um digita, enquanto o outro revisa, corrige e sugere • Redução drástica de bugs • Disseminação de conhecimento • Pressão do par • Simplicidade • Velocidade
  • 71.
  • 72.
  • 74.
    product owner 3 papéis scrum master time
  • 75.
    product owner 3 papéis scrum master time sprint planning 3 cerimônias daily meeting sprint review
  • 76.
    product owner 3 papéis scrum master time sprint planning 3 cerimônias daily meeting sprint review product backlog 3 artefatos sprint backlog burn down chart
  • 77.
    SCRUM sem <?>é uma casca oca para desenvolver software
  • 78.
    XP SCRUM sem<?> é uma casca oca para desenvolver software
  • 79.
    XP SCRUM sem<?> é uma FDD casca oca para desenvolver software
  • 80.
    XP SCRUM sem<?> é uma FDD casca oca para desenvolver engenharia! software
  • 81.
  • 82.
    Semelhanças: SCRUM eXP Sprint Iteraction Iteraction Sprint Planning Planning Stand-up Daily SCRUM Meeting Retrospective Reflection SCRUM XP
  • 83.
    SCRUM e XP Não os confunda. SCRUM e XP se complementam muito bem, mas são diferentes.
  • 84.
    não há balade prata
  • 85.
    obrigado! Paulo César M. Jeveaux @jeveaux
  • 86.
    Referências • Fotos • ImproveIt - http://www.improveit.com.br • Jorge Falcão - http://www.flickr.com/photos/68667282@N00/ • Tlaukkanen - http://www.flickr.com/photos/tlaukkanen/ • Evandro Flores - http://www.flickr.com/photos/evandroflores/ • Bardusco - http://www.flickr.com/photos/bardusco/ • Luiz Aguiar - http://www.flickr.com/photos/laguiar • Cuba Gallery - http://www.flickr.com/photos/cubagallery/ • Materiais • Extreme Programming - http://extremeprogramming.org • Igor Macaubas e Marcos Pereira - http://www.slideshare.net/macaubas/seminario-scrum-presentation • ImproveIt - http://www.improveit.com.br/scrum • ImproveIt - http://www.improveit.com.br/xp • Manifesto Ágil - http://manifestoagil.com.br • Guilherme Chapiewski - http://www.slideshare.net/gchapiewski/desenvolvimento-gil-com-xp-e- scrum-presentation • Cristiano Milfont - http://www.slideshare.net/cmilfont/extreme-programming-148802
  • 87.
    SCRUM e XP desenvolvimento ágil de software experiências e relatos do dia a dia de uma pequena empresa Paulo César M. Jeveaux @jeveaux