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 é queprojetos 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íveise inchados
• É um conjunto de metodologias.
• As metodologias possuem modelos (framework) de trabalho.
• Ser ágil é ser eficiente, consequentementepode-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 direta
Altamente rígida eburocrática
Transparência É clara a atitude a ser tomada diante a algum evento
Não se preocupa emesclarecer procedimentos
Gerenciamento de Riscos Avalia riscos negativos e positivos
Avalia apenas riscos negativos
Documentação É feita sempre que for necessária, e de forma planejada
Para todo projeto são feitos documentações pré-definidas
Métricas Excessivas e mal-formuladas
Equipe Colaborativa Competitiva
Liderança Autoconfiante
ExageroAgilidade
• Processo de desenvolvimento cíclico
• Cada iteração (ciclo) gera uma entrega
• As entregas são feitas incrementando suas partes, até formar o todo
Planejamento
Análise e
Arquitetura Implementação
Implantação
AvaliaçãoRevisão e Mudanças
Modelo
Visão
Controle
Servidor de Banco de Dados
Banco de Dados
Modelo
Visão
Controle
Servidor de Banco de Dados
Banco de Dados
Pode tornar-se desnecessário
Desenvolvimento Monolítico(ex.: Mod. Desenv. Em Cascata)
Desenvolvimento Iterativo e Incremental
Equipe
GP
Equipe
EquipeEquipe
EquipeGP
Equipe
EquipeEquipe
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 desenvolvidose serem executados
Projetos que lide com altos riscosou 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 organizacional
6%
Falta conhecimento
tec.7%
Mudança de requisitos
18%
Requisitos incompletos
12%
Requisitos errados
15%
Outros42%
Falhas em projetos
• SCRUM
• Extreme Programming (XP)
• Feature Driven Development (FDD)
• Test Driven Development (TDD)
• Crystal
• Dynamic Systems Development Method(DSDM)
Scrum49%
Scrum & XP22%
XP8%
Outros21%
Métodos ágeis usados.
Ref.:3rd Annual ”State of Agile Development” Survey June-July 20083061 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)
Recommended