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 Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave 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?
Yes
69%
No
31%
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

42906.ppt

  • 1.
    Ciro Coelho 1/37 MetodologiasÁgeis Metodologias Ágeis Visão Geral
  • 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”
  • 9.
    Ciro Coelho 9/37 MetodologiasÁgeis Metolodogias Ágeis - Exemplos eXtreme Programming (XP) Scrum FDD Agile Modeling Lean Development ASD Crystal Clear OpenUP ...
  • 10.
    Ciro Coelho 10/37 MetodologiasÁgeis Classificação
  • 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
  • 19.
    Ciro Coelho 19/37 MetodologiasÁgeis Metodologias Ágeis Motivação
  • 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
  • 35.
    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
  • 36.
    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
  • 37.
    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