O documento fornece uma introdução às metodologias ágeis, discutindo seus primórdios, princípios e características. É destacado o surgimento de métodos leves e adaptativos em resposta às limitações dos métodos preditivos tradicionais, assim como a fundação da Aliança Ágil e o Manifesto Ágil de 2001. Exemplos de metodologias como Scrum, XP, Crystal e outras são brevemente apresentados.
2. Ciro Coelho 2/37
Metodologias Ágeis
Introdução
Primórdios do desenvolvimento de software: “code and fix”.
A primeira alternativa:
Processo disciplinado e detalhado
Desenvolvimento de software predizível e eficiente
Inspirado em outras disciplinas da área de engenharia.
3. Ciro Coelho 3/37
Metodologias Ágeis
Introdução
Críticas freqüentes
Burocráticas
Não populares por imporem padrões rígidos
Não serem tão bem sucedidas como deveriam
Metodologias “heavyweight” ou pesadas
4. Ciro Coelho 4/37
Metodologias Ágeis
Introdução
Surgimento de um novo grupo de metodologias
Leves (“lightweight”)
Flexíveis
Ágeis
5. Ciro Coelho 5/37
Metodologias Ágeis
Métodos Preditivos vs. Adaptativos
Preditivos
Enfatiza o planejamento de ações em detalhe
A equipe pode saber que funcionalidade e tarefas farão nas etapas
seguintes no processo de desenvolvimento
Mudanças podem obrigar a refazer todo o planejamento
Adaptativos
Enfatiza as mudanças e suas conseqüentes adaptações
A equipe não sabe o que irá fazer a médio e longo prazo
Problemas são encarados a medida que eles chegam
6. Ciro Coelho 6/37
Metodologias Ágeis
A “Aliança Ágil”
http://www.agilealliance.org
Organização sem fins lucrativos que ajuda indivíduos e organizações que
utilizam abordagens ágeis para desenvolvimento de software
Fundada por 17 consultores e especialistas em desenvolvimento de
software
Assinaram o “Manifesto Ágil” em 2001
7. Ciro Coelho 7/37
Metodologias Ágeis
A “Aliança Ágil”
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
8. Ciro Coelho 8/37
Metodologias Ágeis
O “Manifesto Ágil”
http://www.agilemanifesto.org
“Estamos descobrindo melhores maneiras de se desenvolver software, fazendo isto e
ajudando os outros a fazer isto. Através deste trabalho, nós passamos a valorizar:
Indivíduos e interações mais que processos e ferramentas;
Software funcionando mais que documentação abrangente;
Colaboração com o cliente mais que negociação de contratos;
Responder à mudança mais que seguir um plano.
Ou seja, apesar de existir valor nos itens à direita, valorizamos mais os itens à
esquerda”
11. Ciro Coelho 11/37
Metodologias Ágeis
Características Gerais
Ciclo de vida iterativo e incremental
Mais adequadas a pequenas equipes
Comunicação constante e informal
Planejamento de curto prazo
Práticas devem ser seguidas de forma
rigorosa
12. Ciro Coelho 12/37
Metodologias Ágeis
Características Gerais
Procuram minimizar riscos desenvolvendo software em pequenos
espaços de tempo (iterações)
Cada iteração é como um pequeno projeto
Planejamento, requisitos, projeto, codificação, testes...
Objetivo de cada iteração
Produzir componentes de software
Arquitetura vai sendo desenhada a partir da refatoração dos
componentes
Enfatizam comunicação “cara a cara” em relação à documentação
13. Ciro Coelho 13/37
Metodologias Ágeis
Características específicas
Scrum
Ênfase no gerenciamento de projetos
Times auto-gerenciáveis
Medição diária de progresso
Evita seguir passos pré-definidos
Reuniões diárias
Demonstração do sistema ao final de cada iteração
XP
Ênfase em práticas de desenvolvimento
Ênfase na colaboração
Criação de software o mais rapidamente possível
Valores: comunicação, feedback, simplicidade e coragem
12 práticas-chave
14. Ciro Coelho 14/37
Metodologias Ágeis
Características específicas
Crystal
Criado por Alistair Cockburn
Família de métodos. Escolha baseada na criticidade do sistema e
número de pessoas na equipe
Ênfase nas pessoas e comunicação entre elas
Agile Modeling
Criado por Scott Ambler
Princípios e práticas para modelagem e análise de requisitos
“Low-tech, high-touch”:modelos despojados com foco em
entendimento e comunicação, ao invés de documentação
Práticas encorajam velocidade, simplicidade e fluxo criativo
15. Ciro Coelho 15/37
Metodologias Ágeis
Características específicas
ASD - Adaptive Software Development
Criado por Jim Highsmith
Inspirado pelas área de sistemas adaptativos e RAD (Rapid
Application Development)
DSDM- Dynamic Solutions Delivery Method
Criado por 16 especialistas em RAD
Mantido por um consórcio
FDD – Feature Driven Development
Criado por Jeff De Luca, com colaboração de Peter Coad
Ênfase em requisitos
16. Ciro Coelho 16/37
Metodologias Ágeis
Características específicas
Lean Development
Criado por Mary e Tom Poppendieck
Baseado em técnicas “lean” adotadas por outras indústrias
Ênfase na redução do desperdício
Pragmatic Programming
Criado por Andy Hunt e Dave Thomas
Conjunto de práticas de desenvolvimento
OpenUP
Versão ágil e gratuita do RUP
17. Ciro Coelho 17/37
Metodologias Ágeis
Críticas
Não provê documentação necessária
Dificuldades “após o projeto”
Funciona apenas para equipes experientes
Práticas disciplinadas e rigorosas
Pouca atenção ao projeto de software (arquitetura)
Em geral, a arquitetura é definida “de baixo pra cima”
Requer uma grande mudança cultural na organização para ser adotado
Ex.1: necessidade do cliente fazer parte da equipe
Ex.2: Patrocinadores do projeto querem saber exatamente o que será
feito e quando
18. Ciro Coelho 18/37
Metodologias Ágeis
Quando usar o quê?
Metodologias ágeis Metodologias preditivas
Projetos pouco críticos Projetos altamente críticos
Equipe experiente Equipe iniciante
Com mudanças constantes Com poucas mudanças
Pequena equipe (≤ 10 ) Equipes maiores ( ≥ 20)
Equipe co-localizada Equipe distribuída
Cultura de adaptação Cultura de controle
20. Ciro Coelho 20/37
Metodologias Ágeis
Números, números, números
Pesquisas realizadas em 2006 e 2007 por Scott Ambler mostram que:
Métodos ágeis estão sendo muito utilizados
Métodos ágeis estão sendo utilizados com sucesso
21. Ciro Coelho 21/37
Metodologias Ágeis
Números, números, números
A sua organização adota uma ou mais técnicas ágeis?
Yes
69%
No
31%
22. Ciro Coelho 22/37
Metodologias Ágeis
Números, números, números
Só para os que não adotaram: quando pretendem adotar?
4% 8%
12%
9%
9%
12%
46%
<3 Months 3-6 Months 6-12 Months 12-24 Months
> 24 Months Never Don' Know
23. Ciro Coelho 23/37
Metodologias Ágeis
Números, números, números
Adoção de técnicas ágeis
539
57
21
22
28
105
0 100 200 300 400 500 600
Currently Doing Agile
Within Year
12-24 Months
> 24 Months
Never
Don't Know When
24. Ciro Coelho 24/37
Metodologias Ágeis
Números, números, números
Qual a metodologia ágil adotada?
191
216
91
26
954
502
460
171
Agile MSF
AUP
Crystal Clear
DSDM
XP
FDD
Scrum
Other
25. Ciro Coelho 25/37
Metodologias Ágeis
Números, números, números
% de sucesso de projetos ágeis
44%
33%
12%
5% 6%
90%+ 75-90% 50-74% 25-49% >25%
26. Ciro Coelho 26/37
Metodologias Ágeis
Números, números, números
% de sucesso de projetos ágeis (por distribuição da equipe)
44,8
32,7
12,1
4,7
5,7
51,7
30
9,5
4,1
4,8
33,1
29,1
21,5
7,2
9,2
20,1
18,5
27,7
8,5
24,6
0 10 20 30 40 50 60
90%+
75-90%
50-74%
25-49%
>25%
All Co-Located Not Co-Located Offshoring
27. Ciro Coelho 27/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a produtividade?
0%4%
23%
33%
8%
32%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
28. Ciro Coelho 28/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a produtividade? (sem os que não souberam
responder)
1% 5%
34%
48%
12%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
29. Ciro Coelho 29/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a qualidade?
0%
2%
21%
32%
13%
32%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
30. Ciro Coelho 30/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a qualidade? (sem os que não souberam
responder)
1%
2%
31%
47%
19%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
31. Ciro Coelho 31/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram o custo?
2%
14%
34%
13%
1%
36% Much Higher
Somewhat Higher
No Change
Somewhat Lower
Much Lower
Don't Know
32. Ciro Coelho 32/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram o custo? (sem os que não souberam
responder)
3%
22%
53%
20%
2%
Much Higher
Somewhat Higher
No Change
Somewhat Lower
Much Lower
33. Ciro Coelho 33/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a satisfação dos stakeholders?
1%
1%
25%
27%
11%
35%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
34. Ciro Coelho 34/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a satisfação dos stakeholders? (sem os que
não souberam responder)
1%
2%
39%
41%
17%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher