Desenvolvimento ágil

Preview:

DESCRIPTION

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

Citation preview

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)

www.institutomaturi.com.brcontato@institutomaturi.com.br