Ágeis Metodologias Light: Problemas, Princípios, e Práticas Gerência de Processos Francilene Garcia Domínios de Problemas: Investigação vs. Exploração Investigação (descoberta do conhecimento) Produção (apropriação do conhecimento) O caminho do futuro Inovação radical Desenvolvimento exploratório Colaboração Mudanças rotineiras “Radical innovation is the competitive advantage for the new millenium” – Gary Hamel, Leading the Revolution O desafio do desenvolvimento moderno de software Obter rapidamente a conclusão de projetos de software caracterizados como inovadores e críticos em ambientes turbulentos de negócios e tecnologias, implica em lidar com: funcionalidades atrativas entrega rápida alta qualidade muitas mudanças Survey conduzido pelo Cutter IT Amostra da pesquisa 40 empresas 37 projetos por empresa Importância 9 (20%) e-Projects por empresa 31% do orçamento gasto com e-Projects Tendência 20 novos e-Projects sendo iniciados a cada ano Survey conduzido pelo Cutter IT Tamanho do e-Project 11 meses (em média) 40 pessoas (staff técnico) Três atividades centrais suportadas 60% serviço ao cliente 42% MIS/DSS (gestão conhecimento, data mining, CRM, etc) 40% solicitação/fechamento serviço Estudos da Harvard Business School 4 práticas de desenvolvimento de software sinalizam sucesso: liberação rápida de uma versão do produto ao cliente incorporação diária de novo código e feedback sobre mudanças no projeto um time com ampla bagagem na condução de múltiplos projetos foco no projeto da arquitetura do produto “Product-Development Practices that Work: How Internet Companies Build Software” MIT Sloan Management Review, Winter 2001. “Now there is proof that the evolutionary approach to software development results in a speedier process and higher-quality products” Survey HBS Maior número de versões – produzir versões com menor número de funcionalidades resulta em ganhos significativos de desempenho Abordagem evolucionária reduz riscos Quanto mais rápido o feedback (horas) maior a qualidade Incertezas ditam projetos menores – reduzir o nível de funcionalidades Projetos agéis/pesados – Qual? HBS – Estudo Sistemas ERP – Rob Austin Histórias de terror Grandes produtores – US$ 175 a 300 M Dell – acima US$ 200 M Características muito grande muito arriscado – técnico, organizacional, negócio “The old projects approaches do not work in this new space” – Rob Austin HBS – Estudo Sistemas ERP – Características de sucesso Eles são iterativos? Eles dependem de ciclos rápidos e insistem na entrega frequente? Eles coletam funcionalidades diretamente dos usuários em etapas iniciais do projeto? Eles fazem uso de alguma análise de ROI do projeto como um todo? Soluções emergentes Extreme Programming – Kent Beck Crystal Methods – Alistar Cockburn Lean Development – Bob Charette SCRUM-K – Schwaber Adaptive Software Dev – Jim Highsmith “I predict that Kent Beck and his XP movement will as much a symbol of our times as Watts Humphry and CMM were a symbol of the ’80 and ’90.” Tom DeMarco Manifesto por desenvolvimento ágil Valores Indivíduos e interações na frente de processos e tools Produto operacional é melhor que documentação Colaboração do cliente é mehor que negociação de contrato Responder as mudanças ao invés de seguir planos Princípios chaves das metodologias agéis Gerar valor para o cliente – foco em resultados Capacidades individuais – focar na experiência de cada indivíduo Colaboração – foco em inovação via interação entre grupos Adaptação – foco em feedback & mudanças Minimalismo – foco na simplicidade Imaginar-Explorar, ao invés de Planejar Mission driven Feature driven Iterativo (exploratório) Timeboxed Risk driven Tolerante a mudanças ESPECULAR-Colaborar-Aprender A - Início B – Resultado planejado C – Resultado desejado Num ambiente extremo, seguir um plano irá produzir um produto que você projetou, porém este produto poderá não ser o que você (mercado) necessita. Pessoas vs. colaboração Deliverables Decisões Conhecimento Interpessoal Cultural Estrutural “O ato de colaboração é um ato de compartilhar criação e/ou descobertas” – Michael Schrage, No More Teams COLABORAÇÃO cultural Comando -- Controle Liderança -- Colaboração Comandar Controlar é muito lento: A informação não circula na velocidade necessária As decisões não são tomadas no momento oportuno Regrinhas simples – Dee Hock “Simple, clear purpose and principles give rise to complex, intelligent behavior” “Complex rules and regulations give rise to simple, stupid behavior” Metodologias agéis procuram identificar algumas práticas chaves (regras) e então deixá-las alcançar soluções para problemas específicos através de feedbacks individuais e de grupo. Liderança - Colaboração Estabelce uma visão e propósito Define condições aceitáveis para os limites Encoraja a inovação e colaboração Poder compartilhado (tomada de decisão) líderes motivam times times motivam líderes Macro gestão sim, micro gestão não Principais Metodologias Agéis Um Overview As novas metodologias Paper do Martin Fowler (www.martinfowler.com) foco em condutas adaptativas foco nas pessoas e não no processo Foco naquilo que funciona na prática e não no que deveria funcionar Foco em práticas chaves e não em TODAS as práticas Veja também www.crystalmethodologies.com As principais metodologias agéis Home-made, sem nome no mercado Crystal methods SCRUM DSDM Lean development Feature-drives development XP Adaptive software development Crystal Methods Proposto por Alistar Cockburn Referências www.crystalmethodologies.com members.aol.com/acockburn/ Surviving OO Practices, Addison-Wesley, 1998 Writting Effective Use Cases, Addison-Wesley, 2000 Software Development as a Cooperative Game, Addison-Wesley, 2002 Como selecionar uma metodologia Criticalidade (dfeitos causam perdas de ...) Priorizar responsabilidade legal Priorizar produtividade e tolerância Vida útel (V) V6 V20 V40 V100 V200 V500 V1000 E1000 $$ Essencial (E) E6 E20 E40 E100 E200 E500 $$ sem Restrições (R) R6 R20 R40 R100 R200 R500 R1000 Conforto (C) C6 C20 C40 C100 C200 C500 C1000 1-6 -20 -40 -100 -200 -500 -1000 Número de pessoas envolvidas (± 20%) Família de Metodologias Crystal Prioridades alta produtividade, alta tolerância Filosofia comum forte em comunicação, light nos deliverables O desenv. de s/w é um jogo cooperativo Práticas chaves: canais de comunicação rápidos, simples e informais versões frequentes c/ poucas funcionalidades motiva as pessoas fazerem uso de suas habilidades naturais (argumentação, comunicação) e estarem alertas aos defeitos (pouca disciplina, baixa cautela) V6 V20 V40 V80 E6 E20 E40 E80 R6 R20 R40 R80 C6 C20 C40 C80 Clear Yellow Orange Red SCRUM Proposto por Ken Schwaber Diferencia processos definidos e empíricos Baseado na teoria da complexidade Foco em projetos: Cujo ambiente de negócios apresenta crescente complexidade e é repleto de incertezas A gestão do projeto procura maximizar a flexibilidade e capacidade de entregar bons produtos Referências www.controlchaos.com http://jeffsutherland.com Existe um livro a caminho... Overview do Processo SCRUM Gráfico de sucesso/complexidade do SCRUM Resposta flexível às incertezas melhora p(sucesso) numa relação de complexidade 0,9 Probabilidade (sucesso) 0,5 Probabilidade crescente (sucesso) Caos 0,1 baixa média complexidade alta Feature-driven development (FDD) Proposto por Peter Coad Capítulo 6 do livro Java Modeling in Color with UML: Enterprise Component and Process, de Peter Coad (1999) Processo minimalista (5 passos) www.togethersoft.com FDD Overview Projetar uma Projetar funcionaliuma Projetar funcionaliuma dade Desenvolver um modelo genérico Listar as funcionalidades Um modelo Funcionalidades chaves objeto Mais forma, menos detalhes Planejar funcionalidades Plano de desenvolvimento dade funcionalidade Diagrama de sequência Mais detalhes, menos formas Construir uma Construir funcionaliuma Construir funcionaliuma dade dade funcionalidade Funcionalidade avalida pelo cliente Tradicionais vs. Agéis Documentação não significa entendimento (tácito) Documentação típica: 15% completa, 7% correta (Elemer Magaziner) Formalidade não é disciplina Alta qualidade requer disciplina Processo não significa competência Muitas mudanças derrubam qq processo Competência, disciplina, entendimento Debate continua X Alta Metodologia ágil típica Adaptação X Metodologia rigorosa típica Baixa Leve Densa Otimização Processo, documentação, formalidade Por quê metodologias agéis? Inovação Radical “Companies fail to create the future not because the fail to predict it but because they fail to imagine it.” Gary Hamel Comunidade “People and relationships are the new bottom line of business, not simply for humanistic reasons, but as a way to promote adaptability and business sucess”. Roger Lewin