370 likes | 576 Views
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.
E N D
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 • 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
Introdução • Surgimento de um novo grupo de metodologias • Leves (“lightweight”) • Flexíveis • Á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
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
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 A “Aliança Ágil”
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çõesmais 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”
eXtreme Programming (XP) Scrum FDD Agile Modeling Lean Development ASD Crystal Clear OpenUP ... Metolodogias Ágeis - Exemplos
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
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
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
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
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
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
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
Metodologias Ágeis Motivação
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
Números, números, números • A sua organização adota uma ou mais técnicas ágeis?
Números, números, números • Só para os que não adotaram: quando pretendem adotar?
Números, números, números • Adoção de técnicas ágeis
Números, números, números • Qual a metodologia ágil adotada?
Números, números, números • % de sucesso de projetos ágeis
Números, números, números • % de sucesso de projetos ágeis (por distribuição da equipe)
Números, números, números • Como as metodologias ágeis afetaram a produtividade?
Números, números, números • Como as metodologias ágeis afetaram a produtividade? (sem os que não souberam responder)
Números, números, números • Como as metodologias ágeis afetaram a qualidade?
Números, números, números • Como as metodologias ágeis afetaram a qualidade? (sem os que não souberam responder)
Números, números, números • Como as metodologias ágeis afetaram o custo?
Números, números, números • Como as metodologias ágeis afetaram o custo? (sem os que não souberam responder)
Números, números, números • Como as metodologias ágeis afetaram a satisfação dos stakeholders?
Números, números, números • Como as metodologias ágeis afetaram a satisfação dos stakeholders? (sem os que não souberam responder)
Números, números, números • Tamanho das iterações (em %)
Números, números, números • Tamanho das equipes
Referências • AmbySoft: www.ambysoft.com • Agile Data: www.agiledata.org • Larman, Craig. Agile and Iterative Development. Addison-Wesley, 2003