Introdução às Metodologias Ágeis De Desenvolvimento




                Métodos Ágeis


Jerry Medeiros
Minha avó me
     convidou para
visitá-la e almoçar
o salpicão que eu
       adoro nesse
    sábado às 13h
O que ela deve fazer?

•Ela irá acordar às 8h;
•Banho até as 8h30min;
•Café da manhã até as 9h;
•Consulta médica às 10h;
•Supermercado às 11h;
•Voltará para a casa às 12h;
• Almoço pronto às 13h.
E se...

•O ônibus atrasar?
•O médico atrasar?
•Não tiver os ingredientes no
supermercado ?
E se...

Meu netinho, você se
importa de eu fazer
uma sopinha de
legumes em vez do
salpicão ?
E se...

Meu netinho, você se
importa de eu fazer
uma sopinha de
legumes em vez do
salpicão ?
Objetivos Principais


    Reencontrar minha vovó
    Matar a fome
Escopo Variável

  •Sempre há um escopo

  •Teoricamente não será alterado
  durante o projeto, porque existe um
  contrato
  •Existe uma ilusão de previsibilidade
O cliente acredita que:


                    •O escopo é previsível;
                    •O prazo é previsível;
                    •O custo é previsível;
A equipe acredita que sabe:


               •O que tem que fazer;
               •Em quanto tempo fará;
               •Quanto vai ganhar;
               •Quais recursos vai
               precisar.
Então não há problema !!


                     Tranquilo ?
Só que.....




              “
              O Cliente sabe
              o que quer desde o início
              do projeto.
Só que.....




              “
              A equipe consegue
              estimar o tempo exato
              necessário para a
              produção.
O escopo não é fixo

                      •Variáveis do Projeto

                      •Prazo
                      •Escopo
                      •Custo
                      •Qualidade
Priorização do Escopo


                Princípio de Pareto
                se aplica:

                20% das funcionalidades
                geram 80% do valor
Funcionalidades nunca ou raramente
utilizadas




              64%
64% de desperdício de tempo e
          dinheiro
Resultado

• Projetos que falha;
• A maioria das funcionalidades nunca será
usada pelo usuário;
• Nos projetos com sucesso, apenas 42% das
funcionalidades previstas no início estavam no
produto final;
Como é feito
Como é feito
Como é feito
O Cliente precisa de Resultado




   Sempre entregar valor
Entender as Necessidades
Mudança de Paradigma
Como Mudar essa situação ?
Manifesto Ágil


Em 2001, dezessete especialistas em processos de
desenvolvimento de software estabeleceram princípios
comuns compartilhados por diferentes métodos e
criaram o Manifesto Ágil.
Como Mudar essa situação ?
Manifesto Ágil



“
       Estamos descobrindo maneiras melhores
       de desenvolver software fazendo‐o nós
       mesmos e ajudando outros a fazê‐lo.
       Através desse trabalho, passamos a
       valorizar:
Valores

  Indivíduos e
  Interações

Ferramentas e
Processos
Valores

  Software
  Funcionando

Documentação
Abrangente
Valores

  Colaboração
  com Cliente

Negociação de
contratos
Valores

  Responder
  a mudanças

Seguir um
plano
Princípios




“
    Nossa maior prioridade é satisfazer o
    cliente através da entrega adiantada e
    contínua de software de valor
Princípios




“
    Aceitar mudanças de requisitos, mesmo
    no fim do desenvolvimento. Processos
    ágeis se adéquam a mudanças para que o
    cliente possa tirar vantagens competitivas
Princípios




“
    Entregar software funcionando com
    frequência, na escala de semanas ou
    meses, com preferência aos períodos mais
    curtos
Princípios




“
    Pessoas relacionadas a negócio e
    desenvolvimento devem trabalhar em
    conjunto e diariamente, durante todo o
    curso do projeto
Princípios




“
    Construir projetos ao redor de indivíduos
    motivados dando a eles o ambiente
    necessário, e confiar que farão seu trabalho
Princípios




“
    O método mais eficiente e eficaz de
    transmitir informações para, e por dentro de
    um time de desenvolvimento, é através de
    uma conversa cara a cara
Princípios




“
    Contínua atenção à excelência técnica e
    bom design aumenta a agilidade
Princípios




“
    Simplicidade: A arte de maximizar a
    quantidade de trabalho que não precisou
    ser feito - KISS
Princípios




“
    Software funcional é a medida primária de
    progresso
Princípios




“
    Em intervalos regulares, o time reflete
    como ficar mais efetivo, então, ajustam e
    otimizam seu comportamento
Princípios




“
    As melhores arquiteturas, requisitos e
    designs emergem de times auto-
    organizáveis
Envolvimento e Comprometimento
Características de Um Time Ágil
                                         Auto-gerência
 Responsabilidade
                         Transparência
 Interdisciplinaridade                   Auto-organização
                           Motivação

                                            Adaptabilidade
         Confiança        Feedback

                         Comunicação
       Coragem                             Sem hierarquia formal

                          Respeito
      Comprometimento
Scrum




“
    É um processo para construir software
    incrementalmente em ambientes complexos,
    onde os requisitos não são claros ou mudam
    com muita frequência.
Scrum
Em Rugby, Scrum é um time de oito integrantes
que trabalham em conjunto para levar a bola
adiante no campo. Ou seja: times trabalhando
como uma unidade altamente integrada com
cada membro desempenhando um papel bem
definido e o time inteiro focando num único
objetivo.
Backlog
• Lista de todas as funcionalidades desejadas

• É gerada incrementalmente
   – Começa pelo básico, o extra aparece com o tempo


• Pode conter
   – Tarefas diretas, casos de uso e histórias


• A lista é priorizada pelo dono do projeto
   – Cliente, depto de marketing, ...
O Backlog Inicial
• Deve conter características que agreguem algum
  valor de negócio ao produto

• Novos requisitos aparecem quando o cliente vê o
  produto

• A arquitetura do sistema surge enquanto o projeto
  surge e é refatorado
Equipes
• Sem nível hierárquico nem papéis
   – Mas com várias especialidades

• Estão todos no mesmo barco

• Geralmente equipes pequenas (até 10)
   – Existem casos com equipes maiores (800 !)
   – Usa-se também Scrum hierárquico

• Comunicação é essencial
   – Encontro Scrum diário
Sprint
• Unidades básicas de tempo (até 30 dias)

• Começa com um encontro Sprint
  – Tarefas do Backlog são priorizadas
  – A equipe seleciona tarefas que podem ser completadas
    durante o próximo Sprint
  – As mesmas podem ser quebradas para o Backlog do
    Sprint
  – Cada tarefa recebe um responsável na equipe
  – Não há mudança nas tarefas durante o Sprint
Daily Scrum
• Pequenos encontros diários da equipe
  – geralmente pela manhã
  – galinhas e porcos (só os porcos falam)
  – todos os porcos devem participar

• Questões que aparecem devem ser resolvidas
  durante o dia e não na reunião

• Os encontros iniciais são geralmente mais longos
Daily Scrum
• Questões que devem ser respondidas por cada porco:
   – 1) O quê você fez ontem?
   – 2) O quê você vai fazer hoje?
   – 3) Quais os problemas encontrados?

• Ajuda a manter as promessas

• Evita: Como um projeto atrasa um ano?
   – Um dia por vez ...
   – Qualquer deslize pode ser corrigido de imediato
Local do Encontro
• Sempre o mesmo local e      • Todos devem participar
  hora                        • Galinhas ficam na
• Pode ser o local de           periferia
  desenvolvimento
                              • Pode ser em pé
• Pessoas sentadas ao
  redor de uma mesa           • Sala bem equipada,
• A sala já deve estar          quadro branco, etc.
  arrumada antes
• Punições (atrasos/faltas)
Revisão do Sprint
• No final de cada Sprint é feita uma reunião com
  todos os interessados

• Geralmente
   – Na forma de demonstração
   – Informal (preparação rápida, sem projetor,..)
   – Deve ser o resultado natural de um Sprint

• O projeto é comparado com os objetivos iniciais do
  Sprint
Scrum Master
• Faz com que a equipe viva os valores e práticas de
  Scrum

• Protege a equipe de:
  – Riscos e interferências externos
  – Excesso de otimismo

• Resolve os problemas que aparecerem
  – logísticos
  – de conhecimento/habilidade
Scrum Master
• Mantém o Backlog do Sprint
  – Tarefas completadas
  – Identifica eventuais problemas


• Mantém um gráfico de “quanto falta”
          100
           90
           80
           70
           60
           50                        horas
           40
           30
           20
           10
            0
Exemplo real
Scrum de Forma Gráfica
Dúvidas?

Introdução às Metodologias Ágeis de Desenvolvimento

  • 1.
    Introdução às MetodologiasÁgeis De Desenvolvimento Métodos Ágeis Jerry Medeiros
  • 2.
    Minha avó me convidou para visitá-la e almoçar o salpicão que eu adoro nesse sábado às 13h
  • 3.
    O que eladeve fazer? •Ela irá acordar às 8h; •Banho até as 8h30min; •Café da manhã até as 9h; •Consulta médica às 10h; •Supermercado às 11h; •Voltará para a casa às 12h; • Almoço pronto às 13h.
  • 4.
    E se... •O ônibusatrasar? •O médico atrasar? •Não tiver os ingredientes no supermercado ?
  • 5.
    E se... Meu netinho,você se importa de eu fazer uma sopinha de legumes em vez do salpicão ?
  • 6.
    E se... Meu netinho,você se importa de eu fazer uma sopinha de legumes em vez do salpicão ?
  • 7.
    Objetivos Principais Reencontrar minha vovó Matar a fome
  • 8.
    Escopo Variável •Sempre há um escopo •Teoricamente não será alterado durante o projeto, porque existe um contrato •Existe uma ilusão de previsibilidade
  • 9.
    O cliente acreditaque: •O escopo é previsível; •O prazo é previsível; •O custo é previsível;
  • 10.
    A equipe acreditaque sabe: •O que tem que fazer; •Em quanto tempo fará; •Quanto vai ganhar; •Quais recursos vai precisar.
  • 11.
    Então não háproblema !! Tranquilo ?
  • 12.
    Só que..... “ O Cliente sabe o que quer desde o início do projeto.
  • 13.
    Só que..... “ A equipe consegue estimar o tempo exato necessário para a produção.
  • 15.
    O escopo nãoé fixo •Variáveis do Projeto •Prazo •Escopo •Custo •Qualidade
  • 16.
    Priorização do Escopo Princípio de Pareto se aplica: 20% das funcionalidades geram 80% do valor
  • 17.
    Funcionalidades nunca ouraramente utilizadas 64%
  • 18.
    64% de desperdíciode tempo e dinheiro
  • 19.
    Resultado • Projetos quefalha; • A maioria das funcionalidades nunca será usada pelo usuário; • Nos projetos com sucesso, apenas 42% das funcionalidades previstas no início estavam no produto final;
  • 20.
  • 21.
  • 22.
  • 23.
    O Cliente precisade Resultado Sempre entregar valor
  • 24.
  • 25.
  • 26.
    Como Mudar essasituação ?
  • 27.
    Manifesto Ágil Em 2001,dezessete especialistas em processos de desenvolvimento de software estabeleceram princípios comuns compartilhados por diferentes métodos e criaram o Manifesto Ágil.
  • 28.
    Como Mudar essasituação ?
  • 29.
    Manifesto Ágil “ Estamos descobrindo maneiras melhores de desenvolver software fazendo‐o nós mesmos e ajudando outros a fazê‐lo. Através desse trabalho, passamos a valorizar:
  • 30.
    Valores Indivíduose Interações Ferramentas e Processos
  • 31.
    Valores Software Funcionando Documentação Abrangente
  • 32.
    Valores Colaboração com Cliente Negociação de contratos
  • 33.
    Valores Responder a mudanças Seguir um plano
  • 34.
    Princípios “ Nossa maior prioridade é satisfazer o cliente através da entrega adiantada e contínua de software de valor
  • 35.
    Princípios “ Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adéquam a mudanças para que o cliente possa tirar vantagens competitivas
  • 36.
    Princípios “ Entregar software funcionando com frequência, na escala de semanas ou meses, com preferência aos períodos mais curtos
  • 37.
    Princípios “ Pessoas relacionadas a negócio e desenvolvimento devem trabalhar em conjunto e diariamente, durante todo o curso do projeto
  • 38.
    Princípios “ Construir projetos ao redor de indivíduos motivados dando a eles o ambiente necessário, e confiar que farão seu trabalho
  • 39.
    Princípios “ O método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de uma conversa cara a cara
  • 40.
    Princípios “ Contínua atenção à excelência técnica e bom design aumenta a agilidade
  • 41.
    Princípios “ Simplicidade: A arte de maximizar a quantidade de trabalho que não precisou ser feito - KISS
  • 42.
    Princípios “ Software funcional é a medida primária de progresso
  • 43.
    Princípios “ Em intervalos regulares, o time reflete como ficar mais efetivo, então, ajustam e otimizam seu comportamento
  • 44.
    Princípios “ As melhores arquiteturas, requisitos e designs emergem de times auto- organizáveis
  • 45.
  • 46.
    Características de UmTime Ágil Auto-gerência Responsabilidade Transparência Interdisciplinaridade Auto-organização Motivação Adaptabilidade Confiança Feedback Comunicação Coragem Sem hierarquia formal Respeito Comprometimento
  • 47.
    Scrum “ É um processo para construir software incrementalmente em ambientes complexos, onde os requisitos não são claros ou mudam com muita frequência.
  • 48.
    Scrum Em Rugby, Scrumé um time de oito integrantes que trabalham em conjunto para levar a bola adiante no campo. Ou seja: times trabalhando como uma unidade altamente integrada com cada membro desempenhando um papel bem definido e o time inteiro focando num único objetivo.
  • 49.
    Backlog • Lista detodas as funcionalidades desejadas • É gerada incrementalmente – Começa pelo básico, o extra aparece com o tempo • Pode conter – Tarefas diretas, casos de uso e histórias • A lista é priorizada pelo dono do projeto – Cliente, depto de marketing, ...
  • 50.
    O Backlog Inicial •Deve conter características que agreguem algum valor de negócio ao produto • Novos requisitos aparecem quando o cliente vê o produto • A arquitetura do sistema surge enquanto o projeto surge e é refatorado
  • 51.
    Equipes • Sem nívelhierárquico nem papéis – Mas com várias especialidades • Estão todos no mesmo barco • Geralmente equipes pequenas (até 10) – Existem casos com equipes maiores (800 !) – Usa-se também Scrum hierárquico • Comunicação é essencial – Encontro Scrum diário
  • 52.
    Sprint • Unidades básicasde tempo (até 30 dias) • Começa com um encontro Sprint – Tarefas do Backlog são priorizadas – A equipe seleciona tarefas que podem ser completadas durante o próximo Sprint – As mesmas podem ser quebradas para o Backlog do Sprint – Cada tarefa recebe um responsável na equipe – Não há mudança nas tarefas durante o Sprint
  • 53.
    Daily Scrum • Pequenosencontros diários da equipe – geralmente pela manhã – galinhas e porcos (só os porcos falam) – todos os porcos devem participar • Questões que aparecem devem ser resolvidas durante o dia e não na reunião • Os encontros iniciais são geralmente mais longos
  • 54.
    Daily Scrum • Questõesque devem ser respondidas por cada porco: – 1) O quê você fez ontem? – 2) O quê você vai fazer hoje? – 3) Quais os problemas encontrados? • Ajuda a manter as promessas • Evita: Como um projeto atrasa um ano? – Um dia por vez ... – Qualquer deslize pode ser corrigido de imediato
  • 55.
    Local do Encontro •Sempre o mesmo local e • Todos devem participar hora • Galinhas ficam na • Pode ser o local de periferia desenvolvimento • Pode ser em pé • Pessoas sentadas ao redor de uma mesa • Sala bem equipada, • A sala já deve estar quadro branco, etc. arrumada antes • Punições (atrasos/faltas)
  • 56.
    Revisão do Sprint •No final de cada Sprint é feita uma reunião com todos os interessados • Geralmente – Na forma de demonstração – Informal (preparação rápida, sem projetor,..) – Deve ser o resultado natural de um Sprint • O projeto é comparado com os objetivos iniciais do Sprint
  • 57.
    Scrum Master • Fazcom que a equipe viva os valores e práticas de Scrum • Protege a equipe de: – Riscos e interferências externos – Excesso de otimismo • Resolve os problemas que aparecerem – logísticos – de conhecimento/habilidade
  • 58.
    Scrum Master • Mantémo Backlog do Sprint – Tarefas completadas – Identifica eventuais problemas • Mantém um gráfico de “quanto falta” 100 90 80 70 60 50 horas 40 30 20 10 0
  • 59.
  • 60.
  • 61.