Transcript Apresentação do PowerPoint - fa7-trabalhos
Ciro Coelho
Metodologias Ágeis
Metodologias Ágeis Visão Geral
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
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
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
6/37
Ciro Coelho
Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith
Metodologias Ágeis
A “Aliança Ágil” Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas Ciro Coelho
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”
8/37
Ciro Coelho
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 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
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
17/37
Ciro Coelho
Metodologias ágeis Projetos pouco críticos Equipe experiente Com mudanças constantes Pequena equipe ( ≤ 10 ) Equipe co-localizada Cultura de adaptação
Metodologias Ágeis
Quando usar o quê?
Metodologias preditivas Projetos altamente críticos Equipe iniciante Com poucas mudanças Equipes maiores ( ≥ 20) Equipe distribuída Cultura de controle
18/37
Ciro Coelho
Ciro Coelho
Metodologias Ágeis
Metodologias Ágeis Motivação
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% 9% 12% <3 Months > 24 Months 3-6 Months Never 6-12 Months Don' Know 12-24 Months Ciro Coelho
22/37
Metodologias Ágeis
Números, números, números Adoção de técnicas ágeis Don't Know When Never > 24 Months 12-24 Months Within Year Currently Doing Agile 28 22 21 57 105 0 100 200 300 400 500 539 600 Ciro Coelho
23/37
Metodologias Ágeis
Números, números, números Qual a metodologia ágil adotada?
Other Scrum FDD XP DSDM Crystal Clear AUP Agile MSF 26 91 171 216 191 460 502 954 Ciro Coelho
24/37
Metodologias Ágeis
Números, números, números % de sucesso de projetos ágeis 5% 6% 12% 44% 33% 90%+ 75-90% 50-74% 25-49% >25% Ciro Coelho
25/37
Metodologias Ágeis
Números, números, números % de sucesso de projetos ágeis (por distribuição da equipe) >25% 25-49% 50-74% 75-90% 90%+ 0 9,2 24,6 9,5 12,1 21,5 27,7 18,5 20,1 32,7 33,1 10 All 20 Co-Located 30 40 Not Co-Located 44,8 51,7 50 Offshoring 60 Ciro Coelho
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%
28/37
Ciro Coelho
Metodologias Ágeis
Números, números, números Como as metodologias ágeis afetaram a qualidade?
21% 32% Much Lower Somewhat Lower No Change Somewhat Higher Much Higher Don't Know 32% Ciro Coelho 13%
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%
30/37
Ciro Coelho
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?
35% Ciro Coelho 11% 27% 25% Much Lower Somewhat Lower No Change Somewhat Higher Much Higher Don't Know
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%
34/37
Ciro Coelho
Metodologias Ágeis
Números, números, números Tamanho das iterações (em %) No Iterations > 8 Weeks 7-8 Weeks 5-6 Weeks 4 Weeks 3 Weeks 2 Weeks 1 Week < 1 Week 1,4 1,9 1,9 5 6,6 12,5 17 21 Ciro Coelho 32,6
35/37
Metodologias Ágeis
Números, números, números Tamanho das equipes 200+ 101 to 200 51-100 21 to 50 11 to 20 6 to 10 1 to 5 2 5 3 6 6 11 30 41 0 50 Ciro Coelho 73 90 144 135 135 165 100 Attempt Success 150 200
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