Metodologias Ágeis
Metodologias Ágeis
Visão Geral
Ciro Coelho
1/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.
Ciro Coelho
2/37
Metodologias Ágeis
Introdução
Críticas freqüentes




Ciro Coelho
Burocráticas
Não populares por imporem padrões rígidos
Não serem tão bem sucedidas como deveriam
Metodologias “heavyweight” ou pesadas
3/37
Metodologias Ágeis
Introdução
Surgimento de um novo grupo de metodologias
 Leves (“lightweight”)
 Flexíveis
 Ágeis
Ciro Coelho
4/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
Ciro Coelho
5/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
Ciro Coelho
6/37
Metodologias Ágeis
A “Aliança Ágil”
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Ciro Coelho
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
7/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”
Ciro Coelho
8/37
Metodologias Ágeis
Metolodogias Ágeis - Exemplos
eXtreme Programming (XP)
Scrum
FDD
Agile Modeling
Lean Development
ASD
Crystal Clear
OpenUP
...
Ciro Coelho
9/37
Metodologias Ágeis
Classificação
Ciro Coelho
10/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
Ciro Coelho
11/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
Ciro Coelho
12/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





Ê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
XP
Ciro Coelho
13/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
Ciro Coelho
14/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
Ciro Coelho
15/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
Ciro Coelho
16/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
Ciro Coelho
17/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
Ciro Coelho
18/37
Metodologias Ágeis
Metodologias Ágeis
Motivação
Ciro Coelho
19/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
Ciro Coelho
20/37
Metodologias Ágeis
Números, números, números
A sua organização adota uma ou mais técnicas ágeis?
No
31%
Yes
69%
Ciro Coelho
21/37
Metodologias Ágeis
Números, números, números
Só para os que não adotaram: quando pretendem adotar?
4%
8%
12%
46%
9%
12%
<3 Months
> 24 Months
Ciro Coelho
3-6 Months
Never
6-12 Months
Don' Know
9%
12-24 Months
22/37
Metodologias Ágeis
Números, números, números
Adoção de técnicas ágeis
Don't Know When
105
Never
28
> 24 Months
22
12-24 Months
21
Within Year
57
Currently Doing Agile
539
0
Ciro Coelho
100
200
300
400
500
600
23/37
Metodologias Ágeis
Números, números, números
Qual a metodologia ágil adotada?
Other
171
Scrum
460
FDD
502
XP
DSDM
Crystal Clear
AUP
Agile MSF
Ciro Coelho
954
26
91
216
191
24/37
Metodologias Ágeis
Números, números, números
% de sucesso de projetos ágeis
5%
6%
12%
44%
33%
90%+
Ciro Coelho
75-90%
50-74%
25-49%
>25%
25/37
Metodologias Ágeis
Números, números, números
% de sucesso de projetos ágeis (por distribuição da equipe)
25-49%
50-74%
21,5
9,5
12,1
18,5
75-90%
27,7
29,1
30
32,7
20,1
90%+
33,1
44,8
0
10
All
Ciro Coelho
24,6
9,2
4,8
5,7
8,5
7,2
4,1
4,7
>25%
20
Co-Located
30
40
Not Co-Located
51,7
50
60
Offshoring
26/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a produtividade?
0%4%
23%
32%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
8%
33%
Ciro Coelho
27/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a produtividade? (sem os que não souberam
responder)
12%
1% 5%
34%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
48%
Ciro Coelho
28/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a qualidade?
0%
2%
21%
32%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
13%
Ciro Coelho
32%
29/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%
19%
31%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
47%
Ciro Coelho
30/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram o custo?
2%
14%
36%
34%
Much Higher
Somewhat Higher
No Change
Somewhat Lower
Much Lower
Don't Know
1%
13%
Ciro Coelho
31/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram o custo? (sem os que não souberam
responder)
2% 3%
20%
22%
Much Higher
Somewhat Higher
No Change
Somewhat Lower
Much Lower
53%
Ciro Coelho
32/37
Metodologias Ágeis
Números, números, números
Como as metodologias ágeis afetaram a satisfação dos stakeholders?
1%
1%
25%
35%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
Don't Know
11%
Ciro Coelho
27%
33/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%
17%
39%
Much Lower
Somewhat Lower
No Change
Somewhat Higher
Much Higher
41%
Ciro Coelho
34/37
Metodologias Ágeis
Números, números, números
Tamanho das iterações (em %)
No Iterations
1,4
> 8 Weeks
1,9
7-8 Weeks
1,9
6,6
5-6 Weeks
4 Weeks
21
12,5
3 Weeks
2 Weeks
32,6
17
1 Week
< 1 Week
Ciro Coelho
5
35/37
Metodologias Ágeis
Números, números, números
Tamanho das equipes
2
5
3
6
6
200+
101 to 200
51-100
11
30
21 to 50
41
73
11 to 20
90
144
135
6 to 10
1 to 5
135
0
50
100
Attempt
Ciro Coelho
150
165
200
Success
36/37
Metodologias Ágeis
Referências
AmbySoft: www.ambysoft.com
Agile Data: www.agiledata.org
Larman, Craig. Agile and Iterative Development. Addison-Wesley, 2003
Ciro Coelho
37/37
Download

Metodologias Ágeis - fa7-trabalhos