desenvolvimento ágil

79

Upload: instituto-maturi

Post on 18-Dec-2014

644 views

Category:

Technology


10 download

DESCRIPTION

Slides utilizados na palestra sobre desenvolvimento ágil, abordando metodologias, programação e modelagem.

TRANSCRIPT

Page 1: Desenvolvimento ágil
Page 2: Desenvolvimento ágil
Page 3: Desenvolvimento ágil

www.institutomaturi.com.br

Page 4: Desenvolvimento ágil

• 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.

Page 5: Desenvolvimento ágil

Desenvolvimento Ágil

Page 6: Desenvolvimento ágil

Por que é queprojetos falham?

Page 7: Desenvolvimento ágil

Falta de envolvimento do usuário final

Page 8: Desenvolvimento ágil

Falha no levantamento de requisitos

Page 9: Desenvolvimento ágil

Cronogramas irreais

Page 10: Desenvolvimento ágil

Falta de gerenciamento de controle de mudanças

Page 11: Desenvolvimento ágil

Falta de testes

Page 12: Desenvolvimento ágil

Processos inflexíveise inchados

Page 13: Desenvolvimento ágil

• É um conjunto de metodologias.

• As metodologias possuem modelos (framework) de trabalho.

• Ser ágil é ser eficiente, consequentementepode-se ganhar tempo.

Page 14: Desenvolvimento ágil

• 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

Page 15: Desenvolvimento ágil

• ... é necessário se adequar e abrir mão de algumas formas de lidar com problemas.

Page 16: Desenvolvimento ágil

• 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?

Page 17: Desenvolvimento ágil

Á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

Page 18: Desenvolvimento ágil

ExageroAgilidade

Page 19: Desenvolvimento ágil
Page 20: Desenvolvimento ágil
Page 21: Desenvolvimento ágil

• Processo de desenvolvimento cíclico

• Cada iteração (ciclo) gera uma entrega

• As entregas são feitas incrementando suas partes, até formar o todo

Page 22: Desenvolvimento ágil
Page 23: Desenvolvimento ágil
Page 24: Desenvolvimento ágil
Page 25: Desenvolvimento ágil
Page 26: Desenvolvimento ágil
Page 27: Desenvolvimento ágil
Page 28: Desenvolvimento ágil
Page 29: Desenvolvimento ágil
Page 30: Desenvolvimento ágil
Page 31: Desenvolvimento ágil

Planejamento

Análise e

Arquitetura Implementação

Implantação

AvaliaçãoRevisão e Mudanças

Page 32: Desenvolvimento ágil
Page 33: Desenvolvimento ágil
Page 34: Desenvolvimento ágil
Page 35: Desenvolvimento ágil
Page 36: Desenvolvimento ágil
Page 37: Desenvolvimento ágil
Page 38: Desenvolvimento ágil
Page 39: Desenvolvimento ágil
Page 40: Desenvolvimento ágil
Page 41: Desenvolvimento ágil

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

Page 42: Desenvolvimento ágil
Page 43: Desenvolvimento ágil

Equipe

GP

Equipe

EquipeEquipe

EquipeGP

Equipe

EquipeEquipe

Page 44: Desenvolvimento ágil
Page 45: Desenvolvimento ágil

Desenvolvimento Ágil NÃO é a bala de prata!

Page 46: Desenvolvimento ágil

Quando pode não ser adequado?

Page 47: Desenvolvimento ágil

Equipe com mais de 20 desenvolvedores

Page 48: Desenvolvimento ágil

As pessoas envolvidas não inspirar confiança

Page 49: Desenvolvimento ágil

Projetos que levam muito tempo para serem desenvolvidose serem executados

Page 50: Desenvolvimento ágil

Projetos que lide com altos riscosou alta complexidade

Page 51: Desenvolvimento ágil

Ambiente que não facilite a comunicação entre stakeholders

Page 52: Desenvolvimento ágil

Companhias com uma cultura de processos engessados

Page 53: Desenvolvimento ágil

Cultura que procura a ordem

Page 54: Desenvolvimento ágil

• 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.

Page 55: Desenvolvimento ágil
Page 56: Desenvolvimento ágil

• Modelagem

• Programação

• Gerenciamento de projetos

Page 57: Desenvolvimento ágil

Desenvolvimento Ágil

Page 58: 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.

Page 59: Desenvolvimento ágil

• 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

Page 60: Desenvolvimento ágil
Page 61: Desenvolvimento ágil

• 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.

Page 62: Desenvolvimento ágil

Desenvolvimento Ágil

Page 63: 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.

Page 64: Desenvolvimento ágil

• Linguagem de programação interpretada multiparadigma;

• Linguagem de alto nível;

• Tipagem dinâmica e forte;

• Gerenciamento de memória automático.

Page 65: Desenvolvimento ágil

• Framework livre para desenvolvimento de sites e aplicativos Web;

• Orientado a banco de dados;

• Baseado no padrão MVC;

• Desenvolvido em Ruby.

Page 66: Desenvolvimento ágil
Page 67: Desenvolvimento ágil

• Desafio anual de 48h para desenvolvimento de aplicação Web

• Endereço: http://r09.railsrumble.com

Page 68: Desenvolvimento ágil
Page 69: Desenvolvimento ágil
Page 70: Desenvolvimento ágil
Page 71: Desenvolvimento ágil

Desenvolvimento Ágil

Page 72: Desenvolvimento ágil

Falha organizacional

6%

Falta conhecimento

tec.7%

Mudança de requisitos

18%

Requisitos incompletos

12%

Requisitos errados

15%

Outros42%

Falhas em projetos

Page 73: Desenvolvimento ágil

• SCRUM

• Extreme Programming (XP)

• Feature Driven Development (FDD)

• Test Driven Development (TDD)

• Crystal

• Dynamic Systems Development Method(DSDM)

Page 74: Desenvolvimento ágil

Scrum49%

Scrum & XP22%

XP8%

Outros21%

Métodos ágeis usados.

Ref.:3rd Annual ”State of Agile Development” Survey June-July 20083061 respondentes, 80 países

Page 75: Desenvolvimento ágil
Page 76: Desenvolvimento ágil

• 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

Page 77: Desenvolvimento ágil

Desenvolvimento Ágil

Page 78: 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.

Page 79: Desenvolvimento ágil

• Modelagem para Documentação Ágil (12 h)

• Ruby on Rails (36 h)

• SCRUM Aplicado (16 h)

• Design Patterns (22/36 h)

[email protected]