O documento discute metodologias ágeis de desenvolvimento de software, apresentando: 1) as vantagens do desenvolvimento ágil em relação aos modelos tradicionais, como maior envolvimento do cliente e adaptabilidade a mudanças; 2) princípios e práticas ágeis como entregas incrementais, valorização de indivíduos e colaboração; 3) quando as metodologias ágeis podem não ser apropriadas, como em projetos muito complexos ou rígidos. O documento também oferece cursos sobre desenvolvimento ágil.
4. • 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.
13. • É um conjunto de metodologias.
• As metodologias possuem modelos
(framework) de trabalho.
• Ser ágil é ser eficiente, consequentemente
pode-se ganhar tempo.
14. • 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
15. • ... é necessário se adequar e abrir mão de
algumas formas de lidar com problemas.
16. • 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?
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
21. • Processo de desenvolvimento cíclico
• Cada iteração (ciclo) gera uma entrega
• As entregas são feitas incrementando suas
partes, até formar o todo
22.
23.
24.
25.
26.
27.
28.
29.
30.
31. Análise
e
Arquitetura Implementação
Planejamento
Implantação
Revisão e Mudanças Avaliação
32.
33.
34.
35.
36.
37.
38.
39.
40.
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)
42.
43. Equipe
GP Equipe
Equipe GP Equipe Equipe Equipe
Equipe Equipe
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.
58. • 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.
59. • 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
60.
61. • 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.
63. • 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.
64. • Linguagem de programação interpretada
multiparadigma;
• Linguagem de alto nível;
• Tipagem dinâmica e forte;
• Gerenciamento de memória automático.
65. • Framework livre para desenvolvimento de sites
e aplicativos Web;
• Orientado a banco de dados;
• Baseado no padrão MVC;
• Desenvolvido em Ruby.
66.
67. • Desafio anual de 48h para desenvolvimento de
aplicação Web
• Endereço: http://r09.railsrumble.com
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
75.
76. • 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
78. • 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.