 Desenvolvimento de Software
 Métodos Àgeis de          Tradicional
Desenvolvimento de
                           • Problemas do Desenvolvimento
     Software
                             Tradicional
                          Métodos Ágeis de Desenvolvimento
                           • Manifesto Àgil
                           • Princípios
                          Práticas Ágeis
                          XP
                          Scrum
                          Outras Metoologias



16/9/2012        ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   2
    http://www.agilcoop.org.br/curso_de_verao_2010
    http://www.scrumalliance.org/
    http://www.extremeprogramming.org/
    http://improveit.com.br/scrum
    http://visaoagil.wordpress.com/
    http://amagno.blogspot.com/
    http://www.infoq.com/br/




16/9/2012         ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   3
    Sociedade demanda
     • Grande quantidade de sistemas/aplicações
     • Software complexo, distribuído, heterogêneo
     • Requisitos mutantes(todo ano, todo mês, toda
         semana, todo dia)




    16/9/2012       ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   5
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   6
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   7
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   8
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   9
    Supõem que é possivel prever o futuro.
    Pouca interação com os clientes.
    Ênfase em burocracias.
     • (documentos, formulários, processos, controles
        rígidos, etc...)
    Avaliação do progresso baseado na evolução
     da burocracia e não do código
    Grande quantidade de erros
    Falta de flexibilidade no software
     desenvolvido
16/9/2012          ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   10
    Melhores tecnologias
     • Padrões de projeto (reutilização de idéias)
     • Componentes (reutilização de código)
     • Middleware/frameworks (aumenta a abstração)


    Melhores metodologias
     • Métodos Àgeis



16/9/2012        ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   11
    Movimento iniciado por programadores
     experientes e consultores em desenvolvimento de
     software.
    Questionam e se opõem a uma série de mitos
     práticas adotadas em abordagens tradicionais de
     Engenharia de Software e Gerência de Projetos.
    Manifesto Ágil: Assinado por 17 desenvolvedores
     em Utah em fevereiro/2001.
     • http://agilemanifesto.org

    16/9/2012      ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   13
    Indivíduos e interações são mais importantes do
     que processos e ferramentas
    Software funcionando é mais importante do que
     documentação detalhada
    Colaboração com o cliente é mais importante do
     que negociação de contratos
    Adaptação às mudanças é mais importante do que
     seguir um plano inicial

    16/9/2012    ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   14
    Prioridade máxima: satisfazer o usuário através de
     entrega rápida e contínua de software com valor.
    Receber bem requisitos mutantes, mesmo tarde no
     desenvolvimento. Processos ágeis aguentam
     mudanças para a vantagem competitiva do
     consumidor.
    Entregar software em funcionamento com
     frequência, de algumas semanas a alguns meses,
     dando preferência à menor periodicidade.

    16/9/2012    ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   15
    Pessoas de negócio e desenvolvedores devem
     trabalhar diariamente durante o projeto.

    Construa projetos em volta de indivíduos
     motivados. Dê a eles o ambiente e o suporte de que
     eles precisam, e confie que eles farão o serviço.

    O método mais eficiente de passar informação para
     e entre uma equipe de desenvolvimento é conversa
     cara-a-cara.

    16/9/2012    ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   16
    Software rodando é a principal medida de
     progresso.

    Processos ágeis precisam de desenvolvimento
     sustentável. Patrocinadores, desenvolvedores e
     usuários devem aguentar manter um ritmo
     constante indefinidamente.

    Atenção contínua à excelência técnica e bom
     projeto melhora a agilidade.
    16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   17
   Simplicidade -- a arte de maximizar a quantidade
    de trabalho não realizado -- é essencial.

   As melhores arquiteturas, requisitos e projetos
    emergem de equipes auto-organizadas.

   Em intervalos regulares, a equipe reflete sobre
    como se tornar mais eficiente, e deve ajustar seu
    comportamento de acordo.
16/9/2012      ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   18
    Comunicação
    Negociação
    Ciclo de Vida Iterativo
    Gerenciamento Ágil
    Modelagem Ágil
    Visibilidade do Projeto

16/9/2012       ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   20
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   21
    Evitar telefone sem fio
    Desenvolvedores diretamente com o cliente




    16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   22
4 variáveis do desenvolvimento de Software


      Escop             Prazo                      Custo                    Qualidade
      o
            Fixo                                                                  Variável


                      Abordagem tradicional

16/9/2012          ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA              23
4 variáveis do desenvolvimento de Software


      Escop                 Prazo                      Custo                   Qualidade
      o
            Variável             Fixo


                                Abordagem Ágil
16/9/2012              ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA        24
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   25
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   26
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   27
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   28
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   29
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   30
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   31
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   32
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   33
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   34
http://www.extremeprogramming.org/




 http://www.scrumalliance.org/




16/9/2012           ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   35
Kent Beck Estados Unidos 1999

                                                            XP é leve
                                               XP é focado no
                                           desenvolvimento de
                                                     software
                                   XP funciona em times de
                                         qualquer tamanho
                               XP se adapta bem a requisitos
                                                     vagos e que mudam
16/9/2012
                                                                   rapidamente
            ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA         37
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   38
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   39
Ciclo Trimestral                               Releases


            Ciclo Semanal                                        Iterações




16/9/2012          ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   40
Cliente escreve estórias                          Jogo do
                                                                                        Planejamento


             Retrospectiva
                                                                          Desenvolvedores Estimam




Cliente aprova o resultado
                                                                               Cliente Prioriza as estórias




                                                              Desenvolvedores constroem
            Desenvolvedores Implementam
                                                                       tarefas


16/9/2012                ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA                   41
    Estórias exprimem o comportamento de uma
     funcionalidade geral

    Estórias são escritas na linguagem natural

    Formato: Who – What - Why

    Ex:
     • No papel de administrador do sistema eu quero
        realizar o cadastro de usuários, para armazenar
        informações de contato: nome, telefone e e-mail.
16/9/2012         ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   42
    Objetivo: Estimar custo de desenvolvimento
     das estórias.
    Características:

      Cartas
      Todos fazem estimativas para
     todas as estórias
      As estimativas são individuais
      Tempo (horas/dias)

16/9/2012       ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   43
   Responsabilidade nas mãos do cliente

   “Aguarde e Confie”

   Conceito Chave no XP

   Limite máximo


16/9/2012      ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   44
    Ex:
     • Estória: No papel de administrador do sistema eu quero
       realizar o cadastro de usuários, para armazenar
       informações de contato: nome, telefone e e-mail.

     • Tarefas:
            ▪ Modelagem do banco de dados
            ▪ Criar Interface
            ▪ Implementar cadastro



16/9/2012            ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   45
    Programação em par

     • Todo o código
     • Um digita, outro revisa
     • Redução de bugs
     • Disseminação do conhecimento
     • Pressão do par
     • Simplicidade
     • Velocidade


16/9/2012           ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   46
   Desenvolvimento dirigido a testes

     Propriedade coletiva do código

     Base de código unificada

     Sentar-se junto

     Refatoração

16/9/2012      ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   47
“Se você não tiver um ambiente razoável para trabalhar, seu projeto não terá
                                sucesso” (Kent Beck)


   Quadro(s) brancos
   Post-it
   Cadeiras giratórias
   Jogos
   Comida e café
   Folhas em branco
   Privacidade

16/9/2012               ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   48
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   49
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   50
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   51
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   52
•Comunicação
                                                       •Simplicidade
                                                       •Coragem
              Valores                                  •Feedback
                                                       •Respeito


            Princípios



              Práticas



16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   53
•Auto-semelhança (Self-Similarity)
                                               • Benefício Mútuo (Mutal Benefit)
             Valores                           •Diversidade (Diversity)
                                               •Economia (Economics)
                                               • Falha (Failure)
                                               • Fluidez (Flow)
                                               • Humanismo (Humanity)
            Princípios                         • Melhoria (Improvement)
                                               •Oportunidade (Opportunity)
                                               •Passos de Bebê (Baby Steps)
                                               •Qualidade (Quality)
                                               • Redundância (Redundancy)
             Práticas                          • Reflexão (Reflection)
                                               •Responsabilidade Aceita (Accepted Responsa


16/9/2012               ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   54
Práticas Primárias
                                            •Ambiente Informativo (Informative workspace)
             Valores                        •Build de dez minutos (Ten-MinuteBuild)
                                            •Ciclo Semanal (Weekly Cycle)
                                            •Ciclo Trimestral (Quarterly Cycle)
                                            •Desenvolvimento Orientado a Testes
                                            (Test-First Programming)
            Princípios                      •Design Incremental (Incremental Desing)
                                            •Equipe Integral (Whole Team)
                                            •Folga (Slack)
                                            •Histórias (Stories)
                                            •Integração Contínua (Continuous Integration)
            Práticas                        •Programação em Par (Pair Programming)
                                            •Sentar-se junto (Sit together)
                                            •Trabalho Energizado (Energized Work)

16/9/2012              ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA    55
Práticas Corolárias
                                            • Análise da Raiz do Problema (Root-Cause Analysis)
                                            • Base de Código Unificada (Single Code Base)
             Valores                        • Código Coletivo (Shared Code)
                                            • Código e testes (Code and Tests)
                                            • Continuidade da equipe (Team Continuity)
                                            • Contrato de Escopo Negociável
                                            (Negotiated12 Scope Contract)
            Princípios                      • Envolvimento do cliente Real
                                            (Real Custumer Involvement)
                                            • Equipes que encolhem (Shrinking Teams)
                                            • Implantação diária (Daily Deployment)
                                            • Implantação incremental (Incremental Deployment)
            Práticas                        • Pagar por uso (Pay-Per-Use)




16/9/2012              ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA          56
• Pequenos ciclos de pedidos
       • Escopo limitado
       • Implementação das características prioritárias ao
            negócio primeiro




16/9/2012           ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   58
• XP pede ao cliente que escolha a funcionalidade
            que faça maior diferença economicamente.




16/9/2012           ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   59
• Muitos testes são feitos
         ▪ Desenvolvedores testam função por função
         ▪ Clientes testam funcionalidade por funcionalidade




16/9/2012          ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   60
• O cliente vira parte integral do time




16/9/2012         ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   61
• Implementação em ciclos




16/9/2012       ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   62
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   64
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   65
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   66
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   67
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   68
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   69
   FDD – Feature Driven Development
    Crystal Family
    DSDM (Dynamic Systems Development
     Method)
    ASD (Adaptative Software Development)




16/9/2012     ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   71
    Estória 0:
       No papel de administrador do sistema eu quero realizar o cadastro de
            usuários, para armazenar informações de contato: nome, telefone e
            e-mail.

     Estória 1:
      • O sistema deverá permitir aos usuários cadastrarem notícias. A
            notícia deve ter manchete, descrição e conteúdo. O sistema deverá
            listar todas as notícias.

     Estória 2:
      • A partir da listagem das notícias, o sistema deverá permitir ao usuário
            enviar uma notícia para o e-mail de um usuário cadastrado.



16/9/2012               ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   73
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   74
    Seus princípios e práticas proporcionam um
     equilíbrio entre as filosofias tradicionais e as
     mais extremas, proporcionando uma
     transição mais suave para organizações mais
     conservadoras, e a retomada da
     responsabilidade para as organizações que se
     desiludiram com as propostas mais radicais.


16/9/2012       ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   76
  1997-1998, Singapura
  Contexto: Desenvolvimento de um grande sistema de
  empréstimos para um banco internacional
 Anteriormente, após 2 anos de consultoria, 3.500
  páginas de casos de (in)uso e um modelo de objetos
  com centenas de classes, foi avaliado como
  impossível
 Decisão: Implantação das metodologias de OOAD de
  Peter Coad e de gerência de projetos de Jeff De Luca
 Resultado: 15 meses após a contratação da dupla,
  2.000 features entregues por uma equipe de 50
  pessoas
16/9/2012    ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   77
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   78
   Característica ou funcionalidade
   Pequena o suficiente para ser implementada no
    máximo em 2 semanas
   Oferece valor para o cliente
   Mapeia passos em uma atividade de negócio
     Pode ser um passo de um caso de uso
     Às vezes pode ser o próprio caso de uso
 Conceito muito próximo ao de um requisito
  funcional
 Modelo: <ação> <resultado> <objeto>
     Calcular o total de uma venda
     Autorizar uma transação com cartão de um cliente
16/9/2012        ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   79
   Desenvolver um Modelo Abrangente
     Modelagem dos Processos de Negócio (BPM)
     Análise Orientada por Objetos (OOA)
   Construir a Lista de Features
      Decomposição Funcional
   Planejar por Feature
     Plano de Desenvolvimento
     Prioridade, Dependência, Distribuição de Trabalho
   Detalhar por Feature
     Projeto OO (OOD), Estudo Detalhado
   Construir por Feature
     Programação OO (OOP)
     Inspeção, Testes, Integração

                  ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   80
©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   81
©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   82
©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   83
©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   84
©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   85
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   86
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   87
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   88
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   89
16/9/2012   ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA   90

Aula - Metodologias Ágeis

  • 2.
     Desenvolvimento deSoftware Métodos Àgeis de Tradicional Desenvolvimento de • Problemas do Desenvolvimento Software Tradicional  Métodos Ágeis de Desenvolvimento • Manifesto Àgil • Princípios  Práticas Ágeis  XP  Scrum  Outras Metoologias 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 2
  • 3.
    http://www.agilcoop.org.br/curso_de_verao_2010  http://www.scrumalliance.org/  http://www.extremeprogramming.org/  http://improveit.com.br/scrum  http://visaoagil.wordpress.com/  http://amagno.blogspot.com/  http://www.infoq.com/br/ 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 3
  • 5.
    Sociedade demanda • Grande quantidade de sistemas/aplicações • Software complexo, distribuído, heterogêneo • Requisitos mutantes(todo ano, todo mês, toda semana, todo dia) 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 5
  • 6.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 6
  • 7.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 7
  • 8.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 8
  • 9.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 9
  • 10.
    Supõem que é possivel prever o futuro.  Pouca interação com os clientes.  Ênfase em burocracias. • (documentos, formulários, processos, controles rígidos, etc...)  Avaliação do progresso baseado na evolução da burocracia e não do código  Grande quantidade de erros  Falta de flexibilidade no software desenvolvido 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 10
  • 11.
    Melhores tecnologias • Padrões de projeto (reutilização de idéias) • Componentes (reutilização de código) • Middleware/frameworks (aumenta a abstração)  Melhores metodologias • Métodos Àgeis 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 11
  • 13.
    Movimento iniciado por programadores experientes e consultores em desenvolvimento de software.  Questionam e se opõem a uma série de mitos práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos.  Manifesto Ágil: Assinado por 17 desenvolvedores em Utah em fevereiro/2001. • http://agilemanifesto.org 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 13
  • 14.
    Indivíduos e interações são mais importantes do que processos e ferramentas  Software funcionando é mais importante do que documentação detalhada  Colaboração com o cliente é mais importante do que negociação de contratos  Adaptação às mudanças é mais importante do que seguir um plano inicial 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 14
  • 15.
    Prioridade máxima: satisfazer o usuário através de entrega rápida e contínua de software com valor.  Receber bem requisitos mutantes, mesmo tarde no desenvolvimento. Processos ágeis aguentam mudanças para a vantagem competitiva do consumidor.  Entregar software em funcionamento com frequência, de algumas semanas a alguns meses, dando preferência à menor periodicidade. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 15
  • 16.
    Pessoas de negócio e desenvolvedores devem trabalhar diariamente durante o projeto.  Construa projetos em volta de indivíduos motivados. Dê a eles o ambiente e o suporte de que eles precisam, e confie que eles farão o serviço.  O método mais eficiente de passar informação para e entre uma equipe de desenvolvimento é conversa cara-a-cara. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 16
  • 17.
    Software rodando é a principal medida de progresso.  Processos ágeis precisam de desenvolvimento sustentável. Patrocinadores, desenvolvedores e usuários devem aguentar manter um ritmo constante indefinidamente.  Atenção contínua à excelência técnica e bom projeto melhora a agilidade. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 17
  • 18.
    Simplicidade -- a arte de maximizar a quantidade de trabalho não realizado -- é essencial.  As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas.  Em intervalos regulares, a equipe reflete sobre como se tornar mais eficiente, e deve ajustar seu comportamento de acordo. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 18
  • 20.
    Comunicação  Negociação  Ciclo de Vida Iterativo  Gerenciamento Ágil  Modelagem Ágil  Visibilidade do Projeto 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 20
  • 21.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 21
  • 22.
    Evitar telefone sem fio  Desenvolvedores diretamente com o cliente 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 22
  • 23.
    4 variáveis dodesenvolvimento de Software Escop Prazo Custo Qualidade o Fixo Variável Abordagem tradicional 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 23
  • 24.
    4 variáveis dodesenvolvimento de Software Escop Prazo Custo Qualidade o Variável Fixo Abordagem Ágil 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 24
  • 25.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 25
  • 26.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 26
  • 27.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 27
  • 28.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 28
  • 29.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 29
  • 30.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 30
  • 31.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 31
  • 32.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 32
  • 33.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 33
  • 34.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 34
  • 35.
  • 37.
    Kent Beck EstadosUnidos 1999 XP é leve XP é focado no desenvolvimento de software XP funciona em times de qualquer tamanho XP se adapta bem a requisitos vagos e que mudam 16/9/2012 rapidamente ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 37
  • 38.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 38
  • 39.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 39
  • 40.
    Ciclo Trimestral Releases Ciclo Semanal Iterações 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 40
  • 41.
    Cliente escreve estórias Jogo do Planejamento Retrospectiva Desenvolvedores Estimam Cliente aprova o resultado Cliente Prioriza as estórias Desenvolvedores constroem Desenvolvedores Implementam tarefas 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 41
  • 42.
    Estórias exprimem o comportamento de uma funcionalidade geral  Estórias são escritas na linguagem natural  Formato: Who – What - Why  Ex: • No papel de administrador do sistema eu quero realizar o cadastro de usuários, para armazenar informações de contato: nome, telefone e e-mail. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 42
  • 43.
    Objetivo: Estimar custo de desenvolvimento das estórias.  Características:  Cartas  Todos fazem estimativas para todas as estórias  As estimativas são individuais  Tempo (horas/dias) 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 43
  • 44.
    Responsabilidade nas mãos do cliente  “Aguarde e Confie”  Conceito Chave no XP  Limite máximo 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 44
  • 45.
    Ex: • Estória: No papel de administrador do sistema eu quero realizar o cadastro de usuários, para armazenar informações de contato: nome, telefone e e-mail. • Tarefas: ▪ Modelagem do banco de dados ▪ Criar Interface ▪ Implementar cadastro 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 45
  • 46.
    Programação em par • Todo o código • Um digita, outro revisa • Redução de bugs • Disseminação do conhecimento • Pressão do par • Simplicidade • Velocidade 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 46
  • 47.
    Desenvolvimento dirigido a testes  Propriedade coletiva do código  Base de código unificada  Sentar-se junto  Refatoração 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 47
  • 48.
    “Se você nãotiver um ambiente razoável para trabalhar, seu projeto não terá sucesso” (Kent Beck)  Quadro(s) brancos  Post-it  Cadeiras giratórias  Jogos  Comida e café  Folhas em branco  Privacidade 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 48
  • 49.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 49
  • 50.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 50
  • 51.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 51
  • 52.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 52
  • 53.
    •Comunicação •Simplicidade •Coragem Valores •Feedback •Respeito Princípios Práticas 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 53
  • 54.
    •Auto-semelhança (Self-Similarity) • Benefício Mútuo (Mutal Benefit) Valores •Diversidade (Diversity) •Economia (Economics) • Falha (Failure) • Fluidez (Flow) • Humanismo (Humanity) Princípios • Melhoria (Improvement) •Oportunidade (Opportunity) •Passos de Bebê (Baby Steps) •Qualidade (Quality) • Redundância (Redundancy) Práticas • Reflexão (Reflection) •Responsabilidade Aceita (Accepted Responsa 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 54
  • 55.
    Práticas Primárias •Ambiente Informativo (Informative workspace) Valores •Build de dez minutos (Ten-MinuteBuild) •Ciclo Semanal (Weekly Cycle) •Ciclo Trimestral (Quarterly Cycle) •Desenvolvimento Orientado a Testes (Test-First Programming) Princípios •Design Incremental (Incremental Desing) •Equipe Integral (Whole Team) •Folga (Slack) •Histórias (Stories) •Integração Contínua (Continuous Integration) Práticas •Programação em Par (Pair Programming) •Sentar-se junto (Sit together) •Trabalho Energizado (Energized Work) 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 55
  • 56.
    Práticas Corolárias • Análise da Raiz do Problema (Root-Cause Analysis) • Base de Código Unificada (Single Code Base) Valores • Código Coletivo (Shared Code) • Código e testes (Code and Tests) • Continuidade da equipe (Team Continuity) • Contrato de Escopo Negociável (Negotiated12 Scope Contract) Princípios • Envolvimento do cliente Real (Real Custumer Involvement) • Equipes que encolhem (Shrinking Teams) • Implantação diária (Daily Deployment) • Implantação incremental (Incremental Deployment) Práticas • Pagar por uso (Pay-Per-Use) 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 56
  • 58.
    • Pequenos ciclosde pedidos • Escopo limitado • Implementação das características prioritárias ao negócio primeiro 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 58
  • 59.
    • XP pedeao cliente que escolha a funcionalidade que faça maior diferença economicamente. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 59
  • 60.
    • Muitos testessão feitos ▪ Desenvolvedores testam função por função ▪ Clientes testam funcionalidade por funcionalidade 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 60
  • 61.
    • O clientevira parte integral do time 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 61
  • 62.
    • Implementação emciclos 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 62
  • 64.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 64
  • 65.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 65
  • 66.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 66
  • 67.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 67
  • 68.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 68
  • 69.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 69
  • 71.
    FDD – Feature Driven Development  Crystal Family  DSDM (Dynamic Systems Development Method)  ASD (Adaptative Software Development) 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 71
  • 73.
    Estória 0:  No papel de administrador do sistema eu quero realizar o cadastro de usuários, para armazenar informações de contato: nome, telefone e e-mail.  Estória 1: • O sistema deverá permitir aos usuários cadastrarem notícias. A notícia deve ter manchete, descrição e conteúdo. O sistema deverá listar todas as notícias.  Estória 2: • A partir da listagem das notícias, o sistema deverá permitir ao usuário enviar uma notícia para o e-mail de um usuário cadastrado. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 73
  • 74.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 74
  • 76.
    Seus princípios e práticas proporcionam um equilíbrio entre as filosofias tradicionais e as mais extremas, proporcionando uma transição mais suave para organizações mais conservadoras, e a retomada da responsabilidade para as organizações que se desiludiram com as propostas mais radicais. 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 76
  • 77.
     1997-1998,Singapura  Contexto: Desenvolvimento de um grande sistema de empréstimos para um banco internacional  Anteriormente, após 2 anos de consultoria, 3.500 páginas de casos de (in)uso e um modelo de objetos com centenas de classes, foi avaliado como impossível  Decisão: Implantação das metodologias de OOAD de Peter Coad e de gerência de projetos de Jeff De Luca  Resultado: 15 meses após a contratação da dupla, 2.000 features entregues por uma equipe de 50 pessoas 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 77
  • 78.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 78
  • 79.
    Característica ou funcionalidade  Pequena o suficiente para ser implementada no máximo em 2 semanas  Oferece valor para o cliente  Mapeia passos em uma atividade de negócio  Pode ser um passo de um caso de uso  Às vezes pode ser o próprio caso de uso  Conceito muito próximo ao de um requisito funcional  Modelo: <ação> <resultado> <objeto>  Calcular o total de uma venda  Autorizar uma transação com cartão de um cliente 16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 79
  • 80.
    Desenvolver um Modelo Abrangente  Modelagem dos Processos de Negócio (BPM)  Análise Orientada por Objetos (OOA)  Construir a Lista de Features  Decomposição Funcional  Planejar por Feature  Plano de Desenvolvimento  Prioridade, Dependência, Distribuição de Trabalho  Detalhar por Feature  Projeto OO (OOD), Estudo Detalhado  Construir por Feature  Programação OO (OOP)  Inspeção, Testes, Integração ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 80
  • 81.
    ©2010 | MauricioCesar Santos da Purificação | Grupo DW-UFBA 81
  • 82.
    ©2010 | MauricioCesar Santos da Purificação | Grupo DW-UFBA 82
  • 83.
    ©2010 | MauricioCesar Santos da Purificação | Grupo DW-UFBA 83
  • 84.
    ©2010 | MauricioCesar Santos da Purificação | Grupo DW-UFBA 84
  • 85.
    ©2010 | MauricioCesar Santos da Purificação | Grupo DW-UFBA 85
  • 86.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 86
  • 87.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 87
  • 88.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 88
  • 89.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 89
  • 90.
    16/9/2012 ©2010 | Mauricio Cesar Santos da Purificação | Grupo DW-UFBA 90