Ciro Coelho 1/37 Metodologias Ágeis Visão Geral. Ciro Coelho 2/37 Metodologias Ágeis Introdução...
Transcript of Ciro Coelho 1/37 Metodologias Ágeis Visão Geral. Ciro Coelho 2/37 Metodologias Ágeis Introdução...
Ciro Coelho 1/37
Metodologias Ágeis
Metodologias Ágeis
Visão Geral
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.
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
Ciro Coelho 4/37
Metodologias Ágeis
Introdução
Surgimento de um novo grupo de metodologias Leves (“lightweight”) Flexíveis Ágeis
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
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
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 HuntRon JeffriesJon KernBrian MarickRobert MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas
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”
Ciro Coelho 9/37
Metodologias Ágeis
Metolodogias Ágeis - Exemplos
eXtreme Programming (XP)
Scrum
FDD
Agile Modeling
Lean Development
ASD
Crystal Clear
OpenUP
...
Ciro Coelho 10/37
Metodologias Ágeis
Classificação
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
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
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
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
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
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
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
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
Ciro Coelho 19/37
Metodologias Ágeis
Metodologias Ágeis
Motivação
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
Ciro Coelho 21/37
Metodologias Ágeis
Números, números, números
A sua organização adota uma ou mais técnicas ágeis?
Yes69%
No31%
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
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
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
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%
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
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
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
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
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
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
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
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
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
Ciro Coelho 35/37
Metodologias Ágeis
Números, números, números
Tamanho das iterações (em %)
5
17
32,6
12,5
21
6,6
1,9
1,9
1,4
< 1 Week
1 Week
2 Weeks
3 Weeks
4 Weeks
5-6 Weeks
7-8 Weeks
> 8 Weeks
No Iterations
Ciro Coelho 36/37
Metodologias Ágeis
Números, números, números
Tamanho das equipes
135
135
90
41
11
6
5
165
144
73
30
6
3
2
0 50 100 150 200
1 to 5
6 to 10
11 to 20
21 to 50
51-100
101 to 200
200+
Attempt Success
Ciro Coelho 37/37
Metodologias Ágeis
AmbySoft: www.ambysoft.com
Agile Data: www.agiledata.org
Larman, Craig. Agile and Iterative Development. Addison-Wesley, 2003
Referências