www.institutomaturi.com.br
• Pós-graduação em Gerenciamento de Projetos
  pelo Senac;
• Graduação em Análise de Sistemas pela
  Unilins;
• Habilitação em Desenvolvimento de Sistemas
  Web pelo Colégio Salesiano;
• Diretor de Projetos do Instituto Maturi.
Desenvolvimento Ágil
Por que é que
projetos falham?
Falta de envolvimento do usuário final
Falha no levantamento de requisitos
Cronogramas irreais
Falta de gerenciamento de
controle de mudanças
Falta de testes
Processos inflexíveis
e inchados
• É um conjunto de metodologias.
• As metodologias possuem modelos
  (framework) de trabalho.
• Ser ágil é ser eficiente, consequentemente
  pode-se ganhar tempo.
• Indivíduos e interações 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
• ... é necessário se adequar e abrir mão de
  algumas formas de lidar com problemas.
• Responda: o que ocorreria onde você trabalha
  caso:
  – Alguma das entregas não forem feitas no prazo?
  – A meta de orçamento do mês não for atingida?
  – O desenvolvedor faz uma entrega cujo resultado
    desagrade o cliente?
Ágil                        Não ágil
Estrutura organizacional   Comunicação simples e       Altamente rígida e
                           direta                      burocrática
Transparência              É clara a atitude a ser     Não se preocupa em
                           tomada diante a algum       esclarecer procedimentos
                           evento
Gerenciamento de Riscos    Avalia riscos negativos e   Avalia apenas riscos
                           positivos                   negativos
Documentação               É feita sempre que for      Para todo projeto são feitos
                           necessária, e de forma      documentações pré-
                           planejada                   definidas
Métricas                                               Excessivas e mal-
                                                       formuladas
Equipe                     Colaborativa                Competitiva
Liderança                                              Autoconfiante
Exagero
          Agilidade
• Processo de desenvolvimento cíclico
• Cada iteração (ciclo) gera uma entrega
• As entregas são feitas incrementando suas
  partes, até formar o todo
Análise
                     e
                 Arquitetura   Implementação
Planejamento




                                               Implantação




          Revisão e Mudanças   Avaliação
Visão                         Visão

           Controle                     Controle

                                                          Pode tornar-se
           Modelo                        Modelo
                                                          desnecessário
                                   Servidor de Banco de
  Servidor de Banco de Dados
                                          Dados

       Banco de Dados                Banco de Dados


 Desenvolvimento Monolítico
                                 Desenvolvimento Iterativo e Incremental
(ex.: Mod. Desenv. Em Cascata)
Equipe
                           GP       Equipe




Equipe   GP       Equipe   Equipe            Equipe




         Equipe                     Equipe
Desenvolvimento Ágil NÃO é a bala de prata!
Quando pode não ser adequado?
Equipe com mais de 20 desenvolvedores
As pessoas envolvidas não inspirar confiança
Projetos que levam
muito tempo para
serem desenvolvidos
e serem executados
Projetos que lide com altos riscos
           ou alta complexidade
Ambiente que não facilite a comunicação
entre stakeholders
Companhias com uma cultura
de processos engessados
Cultura que procura a ordem
•   Equipe pequena e competente;
•   Equipe que consegue se auto-gerenciar;
•   Menor quantidade de desenvolvedores Junior;
•   Projetos que possam usar frameworks e
    componentes já existentes;
•   Projetos onde as iterações não passem de 4
    semanas;
•   Alta mudança nos requisitos;
•   Liberdade de comunicação;
•   Cultura que tem sucesso no caos.
• Modelagem
• Programação
• Gerenciamento de projetos
Desenvolvimento Ágil
• Descrição do que o sistema
  deverá ser capaz de fazer em
  um formato de texto
  descritivo;
• Feito pelo cliente, podendo
  ser auxiliado por um analista
  de sistemas;
• Deve ser detalhado o quanto
  for necessário.
• Criado para usar a cognição de
  reconhecimento através de cores
• Aplicável a Diagrama de Classes e de Objetos,
  ou ainda em DER/DED, caso não use UML;

       Papel (atuação)     Momento, intervalo

         Descrição          Partido, lugar, coisa
• Levantamento de todas as funcionalidades do
  sistema (features);
• Guia os programadores nas entregas iterativas
  e incrementais;
• Facilita criar diagrama de Use Case, caso for
  necessário;
• Contribui com as métricas do projeto.
Desenvolvimento Ágil
• Programação de alto nível;
• Possua algum framework que acelere o
  desenvolvimento;
• Possua componentes de uso trivial;
• Que haja entre os desenvolvedores quem
  conheça bem a linguagem escolhida;
• Trabalhe com MVC.
• Linguagem de programação interpretada
  multiparadigma;
• Linguagem de alto nível;
• Tipagem dinâmica e forte;
• Gerenciamento de memória automático.
• Framework livre para desenvolvimento de sites
  e aplicativos Web;
• Orientado a banco de dados;
• Baseado no padrão MVC;
• Desenvolvido em Ruby.
• Desafio anual de 48h para desenvolvimento de
  aplicação Web
• Endereço: http://r09.railsrumble.com
Desenvolvimento Ágil
Falha             Falhas em projetos       Falta
organizacional                             conhecimento
     6%                                         tec.
                                                7%
             Outros                              Mudança de
              42%                                 requisitos
                                                     18%

                         Requisitos
                          errados
                            15%
                                               Requisitos
                                              incompletos
                                                  12%
•   SCRUM
•   Extreme Programming (XP)
•   Feature Driven Development (FDD)
•   Test Driven Development (TDD)
•   Crystal
•   Dynamic Systems Development Method
    (DSDM)
Métodos ágeis usados.

           Outros
            21%
XP                                             Scrum
8%                                              49%

     Scrum & XP
         22%




                      Ref.:
                      3rd Annual ”State of Agile Development” Survey June-July 2008
                      3061 respondentes, 80 países
• Product Owner e Cliente
• Visão do produto
   – Requisitos funcionais e não funcionais
   – Restrições e User stories (prática do XP)
• Criação do product backlog (entregas)
   – Conjunto de funcionalidades do sistema
   – Priorização das funcionalidades
• Preparação da base necessária para o desenvolvimento
   – Mecanismos de comunicação e coordenação
   – Formação das equipes
Desenvolvimento Ágil
• Metodologias ágeis podem melhorar processos de
  empresas que se encaixam no perfil esperado;
• Não resolve todos os problemas, no entanto
  demonstra-se mais eficaz em relação aos
  resultados obtidos;
• Para usar metodologias ágeis faz-se necessário
  estudar e treinar a equipe de trabalho.
• O processo ágil é fácil de entender, mas não é
  simples aplicá-lo, principalmente em empresas
  com uma cultura retrograda.
•   Modelagem para Documentação Ágil (12 h)
•   Ruby on Rails (36 h)
•   SCRUM Aplicado (16 h)
•   Design Patterns (22/36 h)


    www.institutomaturi.com.br
    contato@institutomaturi.com.br

Desenvolvimento ágil

  • 3.
  • 4.
    • Pós-graduação emGerenciamento de Projetos pelo Senac; • Graduação em Análise de Sistemas pela Unilins; • Habilitação em Desenvolvimento de Sistemas Web pelo Colégio Salesiano; • Diretor de Projetos do Instituto Maturi.
  • 5.
  • 6.
    Por que éque projetos falham?
  • 7.
    Falta de envolvimentodo usuário final
  • 8.
    Falha no levantamentode requisitos
  • 9.
  • 10.
    Falta de gerenciamentode controle de mudanças
  • 11.
  • 12.
  • 13.
    • É umconjunto de metodologias. • As metodologias possuem modelos (framework) de trabalho. • Ser ágil é ser eficiente, consequentemente pode-se ganhar tempo.
  • 14.
    • Indivíduos einterações 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
  • 15.
    • ... énecessário se adequar e abrir mão de algumas formas de lidar com problemas.
  • 16.
    • Responda: oque ocorreria onde você trabalha caso: – Alguma das entregas não forem feitas no prazo? – A meta de orçamento do mês não for atingida? – O desenvolvedor faz uma entrega cujo resultado desagrade o cliente?
  • 17.
    Ágil Não ágil Estrutura organizacional Comunicação simples e Altamente rígida e direta burocrática Transparência É clara a atitude a ser Não se preocupa em tomada diante a algum esclarecer procedimentos evento Gerenciamento de Riscos Avalia riscos negativos e Avalia apenas riscos positivos negativos Documentação É feita sempre que for Para todo projeto são feitos necessária, e de forma documentações pré- planejada definidas Métricas Excessivas e mal- formuladas Equipe Colaborativa Competitiva Liderança Autoconfiante
  • 18.
    Exagero Agilidade
  • 21.
    • Processo dedesenvolvimento cíclico • Cada iteração (ciclo) gera uma entrega • As entregas são feitas incrementando suas partes, até formar o todo
  • 31.
    Análise e Arquitetura Implementação Planejamento Implantação Revisão e Mudanças Avaliação
  • 41.
    Visão Visão Controle Controle Pode tornar-se Modelo Modelo desnecessário Servidor de Banco de Servidor de Banco de Dados Dados Banco de Dados Banco de Dados Desenvolvimento Monolítico Desenvolvimento Iterativo e Incremental (ex.: Mod. Desenv. Em Cascata)
  • 43.
    Equipe GP Equipe Equipe GP Equipe Equipe Equipe Equipe Equipe
  • 45.
    Desenvolvimento Ágil NÃOé a bala de prata!
  • 46.
    Quando pode nãoser adequado?
  • 47.
    Equipe com maisde 20 desenvolvedores
  • 48.
    As pessoas envolvidasnão inspirar confiança
  • 49.
    Projetos que levam muitotempo para serem desenvolvidos e serem executados
  • 50.
    Projetos que lidecom altos riscos ou alta complexidade
  • 51.
    Ambiente que nãofacilite a comunicação entre stakeholders
  • 52.
    Companhias com umacultura de processos engessados
  • 53.
  • 54.
    Equipe pequena e competente; • Equipe que consegue se auto-gerenciar; • Menor quantidade de desenvolvedores Junior; • Projetos que possam usar frameworks e componentes já existentes; • Projetos onde as iterações não passem de 4 semanas; • Alta mudança nos requisitos; • Liberdade de comunicação; • Cultura que tem sucesso no caos.
  • 56.
    • Modelagem • Programação •Gerenciamento de projetos
  • 57.
  • 58.
    • Descrição doque o sistema deverá ser capaz de fazer em um formato de texto descritivo; • Feito pelo cliente, podendo ser auxiliado por um analista de sistemas; • Deve ser detalhado o quanto for necessário.
  • 59.
    • Criado parausar a cognição de reconhecimento através de cores • Aplicável a Diagrama de Classes e de Objetos, ou ainda em DER/DED, caso não use UML; Papel (atuação) Momento, intervalo Descrição Partido, lugar, coisa
  • 61.
    • Levantamento detodas as funcionalidades do sistema (features); • Guia os programadores nas entregas iterativas e incrementais; • Facilita criar diagrama de Use Case, caso for necessário; • Contribui com as métricas do projeto.
  • 62.
  • 63.
    • Programação dealto nível; • Possua algum framework que acelere o desenvolvimento; • Possua componentes de uso trivial; • Que haja entre os desenvolvedores quem conheça bem a linguagem escolhida; • Trabalhe com MVC.
  • 64.
    • Linguagem deprogramação interpretada multiparadigma; • Linguagem de alto nível; • Tipagem dinâmica e forte; • Gerenciamento de memória automático.
  • 65.
    • Framework livrepara desenvolvimento de sites e aplicativos Web; • Orientado a banco de dados; • Baseado no padrão MVC; • Desenvolvido em Ruby.
  • 67.
    • Desafio anualde 48h para desenvolvimento de aplicação Web • Endereço: http://r09.railsrumble.com
  • 71.
  • 72.
    Falha Falhas em projetos Falta organizacional conhecimento 6% tec. 7% Outros Mudança de 42% requisitos 18% Requisitos errados 15% Requisitos incompletos 12%
  • 73.
    SCRUM • Extreme Programming (XP) • Feature Driven Development (FDD) • Test Driven Development (TDD) • Crystal • Dynamic Systems Development Method (DSDM)
  • 74.
    Métodos ágeis usados. Outros 21% XP Scrum 8% 49% Scrum & XP 22% Ref.: 3rd Annual ”State of Agile Development” Survey June-July 2008 3061 respondentes, 80 países
  • 76.
    • Product Ownere Cliente • Visão do produto – Requisitos funcionais e não funcionais – Restrições e User stories (prática do XP) • Criação do product backlog (entregas) – Conjunto de funcionalidades do sistema – Priorização das funcionalidades • Preparação da base necessária para o desenvolvimento – Mecanismos de comunicação e coordenação – Formação das equipes
  • 77.
  • 78.
    • Metodologias ágeispodem melhorar processos de empresas que se encaixam no perfil esperado; • Não resolve todos os problemas, no entanto demonstra-se mais eficaz em relação aos resultados obtidos; • Para usar metodologias ágeis faz-se necessário estudar e treinar a equipe de trabalho. • O processo ágil é fácil de entender, mas não é simples aplicá-lo, principalmente em empresas com uma cultura retrograda.
  • 79.
    Modelagem para Documentação Ágil (12 h) • Ruby on Rails (36 h) • SCRUM Aplicado (16 h) • Design Patterns (22/36 h) www.institutomaturi.com.br contato@institutomaturi.com.br