Estimativas Ágeis: Planning Poker Disciplina: Métricas em Projetos de Software Professor: SÉRGIO SOARES Equipe: • Cristina Luzia Carvalho Rodrigues • Fabiano Augusto • Marília Litwak Neves Data: 08/08/2009 Agenda • Planejamento – Falhas, Motivação... • Planejamento Ágil • Metotologias Ágeis – SCRUM • Cebola do Planejamento Ágil • Planejamento Release • Planejamento Iteração • Planejamento do Dia • Estimativas: Tamanho X Tempo • Medidas de Tamanho • Técnicas • Planning Poker • Tempo a partir do Tamanho • Vantagens do Planejamento/ Estimativas Ágeis Planejamento Planejar não é fácil! Planejamento Dados de 1995, usando como base 8.380 projetos: • Apenas 16,2% dos projetos foram entregues respeitando os prazos e os custos e com todas as funcionalidades especificadas; • Aproximadamente 31% dos projetos foram cancelados antes de estarem completos; •52,7% foram entregues, porém com prazos maiores, custos maiores ou com menos funcionalidades do que especificado no início do projeto. • Dentre os projetos que não foram finalizados de acordo com os prazos e custos especificados, a média de atrasos foi de 222% a mais do que o previsto. Considerando todos os projetos que foram entregues além do prazo e com custo maior, na média, apenas 61% das funcionalidades originais foram incluídas. Planejamento: Principais falhas • Atrasos são passados para frente do cronograma • Atividades não terminam mais cedo. Lei de Parkinson (1993) • Não se leva em consideração a lista de prioridades das funcionalidades • A incerteza é ignorada, os requisitos mudam! Estimativas se tornam compromissos! • Tarefas em paralelo diminuem a produtividade Planejamento Ágil Planning is everything. Plans are nothing. Planejamento Ágil Conceitos chaves Manifesto Ágil: • Indivíduos e Interações são mais importantes do que processos e Ferramentas • Software funcionando é mais importante do que documentação detalhada • Colaboração com o cliente é mais importante do que negociação de contratos • Adaptação à mudanças é mais importante do que seguir o plano inicial. Equipe Ágil • Iterações curtas • Analisa e se adpata • Trabalho em função das prioridades de negócio • Existe UM Time Metodologias Ágeis Metodologias Ágeis • SCRUM Metodologias Ágeis: SCRUM • Metodologia ágil para gestão e planejamento de projetos de software; •No SCRUM, os projetos são dividos em ciclos (tipicamente mensais) chamados de Sprints; • O Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser executado. Metodologias Ágeis: SCRUM Características do SCRUM • Cada sprint é uma interação e entrega incremento de software pronto. • Um backlog é conjunto de requisitos, priorizado pelo Product Owner (cliente); • Breve reunião diária, ou daily scrum, em que cada participante fala sobre o progresso conseguido, o trabalho a ser realizado e/ou o que o impede de seguir avançando • Breve sessão de planejamento, na qual os itens do backlog para uma sprint (iteração) são definidos; • Retrospectiva, na qual todos os membros da equipe refletem sobre a sprint passada. Cebola do Planejamento Ágil Planejamento em Níveis: Dia, Iteração e Release Planejando Release • Listar “Estórias” que serão desenvolvidas • Selecionar as que serão da release que está sendo planejada • Estimar essas “Estórias” (Planning Poker ??!!! ) Planejando Release Estórias: Descrições breves que relatam as necessidades do Cliente. Como se tentasse explicar o que está fazendo ao Cliente. Não explicam detalhes de implementação. Épicos São histórias do usuários que falam de recursos ou de funcionalidades em um nível superior Planejando Release Modelo últil par escrever estórias: Como <uma função>, o meu objetivo é obter <o valor de negócio> Planejando Iteração • Participação de todos os envolvidos: clientes, programadores, arquitetos etc.. • Identificar tarefas de cada Estória • Estimar as tarefas • Definir tamanho da iteração. Fatores que influenciam: • Tamanho da release • Quantidade de incerteza • Durabilidade das prioridades Planejando Dia • Stand up meeting ou Scrum Daily • Poucos minutos de duração • Receber e repassar novidades Estimativas Estimar é prever, portanto toda estimativa tem um grau de incerteza. Benefícios das Estimativas • Reduz: •RISCO •INCERTEZA • Auxilia na tomada de decisões • Transmite informações • Aumenta confiança Estimativas: Tamanho x Tempo Medidas de Tamanho Por Pontos de Estória: • Mais abstrato • Estimativa relativa • Medida pura de tamanho • Discussões são dirigidas a funcionalidades • É mais rápido • A estimativa não perde a validade • Evita conversões precipitadas em horas de trabalho Pontos de Estória A idéia por trás do método de estimativas por Story Points é que o cliente e o time sejam parte fundamental das estimativas, na qual o primeiro considera o valor que cada item do Product Backlog agrega para o seu negócio, e o segundo dimensiona a complexidade de implementação de cada item baseado no contexto atual do projeto. Uma vez que todo o Product Backlog tenha sido valorado de acordo com o valor de negócio de cada item, a equipe do projeto estima a complexidade de cada um destes itens em Story Points. Para isto, podem utilizar a técnica Planning Poker Medidas de Tamanho Por dias Ideais: • mais fácil para iniciantes Dias Ideias x Dias Reais – Correção de erros – Demonstrações – Revisões – Troca de Tarefas – E-mails – Doenças – Reuniões – Treinamentos – Entrevistas – Telefonemas – Assuntos Pessoais Para estimar Técnicas: Opinião de um especialista Rápido, mas raramente em times ágeis possuem especialistas. Analogia Valores relativos, comparação com algo já construído... Desagregação Dividir para conquistar. Dividir Estórias maiores em menores. Para estimar Alternativa: Planning Poker: Técnica (método) de atribuição de estimativas colaborativo Combina Os as três técnicas de estimativas estimadores justificam suas estimativas Considera uma média das estimativas Estimativas são feitas pelo TIME Planning Poker Método foi descrito inicialmente por James Grenning em 2002 e depois popularizado por Mike Cohn no seu livro Agile Estimating and Planning, essa técnica é muito conhecido em XP e SCRUM. Planning Poker Se preparando para jogar.... Participantes: todos do TIME (programadores, analistas, designers etc.. ) e o Product Owner! Planning Poker Se preparando para jogar.... • Defina a medida que será utilizada: pontos de Estória ou dias ideias? Pontos de Estória!! • Identifique o que será estimado: Estória, tarefa? Estória! • Descrever as “Estórias” em cartões Planning Poker Se preparando para jogar.... • Definir escala • Sequência de Fibonacci: 1,2,3,5,8,13,21,34,55,89,…refletem o aumento da incerteza relacionados a maiores unidades de trabalho. Fica mais fácil você ter uma noção de separação de complexidade. Planning Poker • Ampulheta • Um conjunto de cartas para cada participante com a escala definida e as cartas especiais: Planning Poker – Regras do jogo • Estórias são apresentadas pelo Product Owner. • Inicialmente, o time identifica o item de backlog mais simples (para este item é atribuído o valor 1) que passa a ser o item de referência na estimativa dos demais. • Após uma breve discussão, o participante escolhe de suas cartas qual deve representar sua estimativa - para quanto trabalho envolve aquela estória em relação a referência pré-definida.. • Todos devem apresentar sua estimativa em um mesmo momento. Planning Poker – regras do jogo . • Após apresentação das cartas, novas discussões iniciam. • O product owner deve esclarecer quaisquer dúvidas que surjam quanto a estória ou requisito apresentado para estimativa. • Caso haja muitas divergências, o maior e o menor estimador devem apresentar as suas premissas. • Novas rodadas de estimativas devem ocorrer até que exista um consenso. Normalmente três rodadas são suficiente para um consenso. Planning Poker Ao fazer o planning poker, estamos discutindo requisitos funcionais e não funcionais, que visam a realização de um desejo do cliente, e geralmente, durate o planning poker está o Product Owner, para tirar todas as dúvidas em relação ao negócio e verificar se está sendo feito o que foi acordado. Planning Poker • Prática... Simulação do jogo com o estudo de caso “HealthWatcher”. ID Descrição da Estória Eu como Cidadão posso consultar uma guia de Saúde e obter quais especialidades de 1 uma unidade de saúde. 2 Eu como Funcionário posso logar no sistema. Eu como Funcionário posso cadastrar novo 3 funcionário. ... Planning Poker Site idealizado por Mike Cohn, e propõe uma ferramenta para que time distribuídos façam a estimativa em conjunto: "http://www.planningpoker.com/“ Estimando tempo A estimativa do esforço necessária para desenvolver o projeto é derivada a partir do tamanho estimado em Story Points considerando-se a capacidade ou VELOCIDADE de produção do time. Estimando tempo • Definir a VELOCIDADE!!! • Medida de trabalho feito • Não precisa ser estimada • Baseado no histórico • Após realizar 1 iteração Estimando tempo VELOCIDADE Estimando tempo VELOCIDADE Para ganhar os pontos designados para uma Estória, a equipe deverá concluir todas as tarefas para essa Estória dentro da iteração. • O número médio de pontos de Estória por iteração é 33. • A velocidade atual da equipe é 35 pontos de Estória. • A média das três iterações mais lentas é 30 pontos de Estória. Consideração sobre 1o planejamento Se a equipe não conseguiu cumprir todos os pontos da primeira iteração, o problema pode estar na VELOCIDADE !! Vantagens do Planejamento Ágil / Estimativas Ágeis • Replanejamentos acontecem constantemente • As prioridades são atualizadas constantemente • Estimativas podem ser refinadas • Estimativas de tamanho e duração são separadas • Planos são feitos em vários níveis • Planos são feitos baseados em funcionalidades, não em tarefas • Assumimos a incerteza e nos preparamos para ela Estimativas Ágeis: Planning Poker Disciplina: Métricas em Projetos de Software Professor: SÉRGIO SOARES Equipe: • Cristina Luzia Carvalho Rodrigues • Fabiano Augusto • Marília Litwak Neves FIM