Metodologias Ágeis

Preview:

DESCRIPTION

Metodologias Ágeis. Visão Geral. 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. Introdução. - PowerPoint PPT Presentation

Citation preview

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