TRIBUNAL DE JUSTIÇA DE PERNAMBUCO DIRETORIA DE INFORMÁTICA Scrum Visão Geral Janeiro/2010 Características Scrum – Visão geral Equipes que se auto-organizam O produto evolui em uma série de “Sprints” mensais Os requerimentos são listados em um “Product Backlog” Não há prática de engenharia prescrita (adequa-se a todas) É uma das “metodologias ágeis” TJPE.DINFO.GETEC.UMCSTI Manifesto Ágil - Valores Scrum – Visão geral Indivíduos e interações Processos e ferramentas Software que funciona Documentação abrangente Colaboração do cliente Resposta à mudanças ao invés de Negociação de contrato Seguir um plano www.agilemanifesto.org TJPE.DINFO.GETEC.UMCSTI Ciclo Scrum Scrum – Visão geral Imagem disponível em: www.mountangoatsoftware.com/scrum TJPE.DINFO.GETEC.UMCSTI Ciclo Scrum TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Sprints Scrum – Visão geral Projetos Scrum progridem em uma série de “sprints” • Similar às iterações do XP Ocorre em um período de duas a quatro semanas Um período constante leva a um melhor “ritmo” O produto é projetado, codificado e testado durante o sprint TJPE.DINFO.GETEC.UMCSTI Mudanças Scrum – Visão geral Nenhuma mudança durante o Sprint Change Planeje a duração dos sprints de acordo com o máximo tempo com o qual você pode se comprometer TJPE.DINFO.GETEC.UMCSTI Scrum Framework Scrum – Visão geral Papéis •Product Owner •Scrum Master •Equipe Cerimônia •Planejamento •Revisão •Retrospectiva •Reunião diária Artefatos •Product backlog •Sprint backlog •Burndown charts TJPE.DINFO.GETEC.UMCSTI Scrum Framework Scrum – Visão geral Papéis •Product Owner •Scrum Master •Equipe Cerimônia •Planejamento •Revisão •Retrospectiva •Reunião diária Artefatos •Product backlog •Sprint backlog •Burndown charts TJPE.DINFO.GETEC.UMCSTI Product Owner Scrum – Visão geral Define as funcionalidades do produto Decide datas de lançamento e conteúdo Responsável pela rentabilidade (ROI) Prioriza funcionalidades de acordo com o valor de mercado Ajusta funcionalidades e prioridades Aceita ou rejeita o resultado dos trabalhos TJPE.DINFO.GETEC.UMCSTI Scrum Master Scrum – Visão geral Representa a gerência para o projeto Responsável pela aplicação dos valores e práticas do Scrum Remove obstáculos Garante a plena funcionalidade e produtividade da equipe Garante a colaboração entre os diversos papéis e funções Escudo para interferências externas TJPE.DINFO.GETEC.UMCSTI Equipe Scrum – Visão geral Entre 5 e 9 pessoas Multi-funcional • Programadores, testadores, desenvolvedores de interfaces, etc. Tempo integral • Raras exceções (Ex.: Administrador de Base de Dados) Auto-organizável • Idealmente, sem títulos, ainda que possível Trocas só na mudança de Sprints TJPE.DINFO.GETEC.UMCSTI Scrum Framework Scrum – Visão geral Papéis •Product Owner •Scrum Master •Equipe Cerimônia •Planejamento •Revisão •Retrospectiva •Reunião diária Artefatos •Product backlog •Sprint backlog •Burndown charts TJPE.DINFO.GETEC.UMCSTI Planejamento da Sprint TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Planejamento da Sprint Scrum – Visão geral TIMEBOX! TJPE.DINFO.GETEC.UMCSTI Planejamento da Sprint Scrum – Visão geral Planning - 4 horas Planning 1 2 horas TJPE.DINFO.GETEC.UMCSTI Planning 2 2 horas Planning 1 Scrum – Visão geral Participam Time Scrum Master Product Owner Reunião de estratégia Definir o objetivo da Sprint Estimar e priorizar o Product Backlog Comprometimento do Time TJPE.DINFO.GETEC.UMCSTI Planning Poker Scrum – Visão geral 2 1 3 TJPE.DINFO.GETEC.UMCSTI Planning 1 TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Planning 2 Scrum – Visão geral Participam Time Scrum Master Reunião de planejamento tático Dividir as estórias em tarefas Reunião de designer de software TJPE.DINFO.GETEC.UMCSTI Resumo: Planejamento Capacidades da equipe Scrum – Visão geral Planejamento Priorização Product backlog Condições de negócio • • Objetivo Plano • Produto atual • Tecnologia • TJPE.DINFO.GETEC.UMCSTI Análise e avaliação do product backlog Objetivo do sprint Decidir como chegar ao objetivo (projeto) Cria tarefas do sprint backlog a partir dos itens do product backlog (user stories / funcionalidades) Horas no sprint backlog Sprint backlog Resumo: Planejamento Scrum – Visão geral A equipe seleciona itens do Product Backlog com os quais compromete-se a concluir O Sprint Backlog é criado • Tarefas identificadas e estimadas (1 a 16 horas) • De forma colaborativa, não apenas feito pelo ScrumMaster Planejamento de alto nível é considerado TJPE.DINFO.GETEC.UMCSTI Resumo: Planejamento Quero que os usuários do portal possam planejar suas férias, escolhendo itinerários online. TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Modelagem (8 horas) Codificar interface (4) Escrever textos (4) Codificar a classe foo (6) Atualizar testes de performance (4) Scrum diário Parâmetros Scrum – Visão geral • Diário • 15 minutos Todos em pé! Não é para a solução de problemas • Todo mundo é convidado • Apenas os membros da equipe, ScrumMaster, dono do produto podem falar Ajuda a evitar reuniões adicionais desnecessárias TJPE.DINFO.GETEC.UMCSTI Três questões, para todos Scrum – Visão geral O que fizeste ontem? O que vais fazer hoje? Há algum obstáculo? TJPE.DINFO.GETEC.UMCSTI 1 2 3 Três questões, para todos Scrum – Visão geral As respostas não são um “relatório” para o ScrumMaster Elas são COMPROMISSOS perante os pares TJPE.DINFO.GETEC.UMCSTI Revisão do Sprint Scrum – Visão geral Equipe apresenta os resultados obtidos durante o Sprint Tipicamente, demonstração de novas funcionalidades ou sua arquitetura Informal • 2 horas de duração • Sem slides Todo o time participa O cliente é convidado TJPE.DINFO.GETEC.UMCSTI Retrospectiva do Sprint Scrum – Visão geral Periodicamente, observe o que funciona e o que não funciona Tipicamente de 15 a 30 minutos Feita após cada Sprint Toda a equipe participa • • • • ScrumMaster Dono do produto Membros da equipe Clientes e outros TJPE.DINFO.GETEC.UMCSTI Inicia, Pára, Continua Scrum – Visão geral A equipe discute o que gostaria de: Iniciar a fazer Parar de fazer Esta é uma das várias maneiras de se conduzir uma retrospectiva do Sprint TJPE.DINFO.GETEC.UMCSTI Continuar fazendo Scrum Framework Scrum – Visão geral Papéis •Product Owner •Scrum Master •Equipe Cerimônia •Planejamento •Revisão •Retrospectiva •Reunião diária Artefatos •Product backlog •Sprint backlog •Burndown charts TJPE.DINFO.GETEC.UMCSTI Product Backlog Scrum – Visão geral Os requerimentos Uma lista de todo o trabalho Este é o Product Backlog TJPE.DINFO.GETEC.UMCSTI desejado no projeto Idealmente, na forma em que cada item tenha seu peso de acordo com a vontade do cliente ou usuários Priorizado pelo dono do produto Repriorizado no início de cada Sprint Exemplo de Product Backlog Scrum – Visão geral Item do Backlog Estimativa Permitir que o usuário faça uma reserva 3 Permitir que o usuário cancele a reserva 5 Permitir a troca de datas da reserva 3 Permitir que empregadod do hotel gerem relatórios de lucratividade 8 Melhorar manipulação de erros 8 ... 30 ... 50 TJPE.DINFO.GETEC.UMCSTI User Story Scrum – Visão geral Uma estória de usuário, ou user story, é um requisito de sistemas de software formulado com uma ou duas sentenças em linguagem natural. TJPE.DINFO.GETEC.UMCSTI User Story Scrum – Visão geral User stories são uma maneira rápida de lidar com requisitos do cliente TJPE.DINFO.GETEC.UMCSTI User Story Scrum – Visão geral Como “usuário do sistema” Quero “funcionalidade” Para “valor de negócio” TJPE.DINFO.GETEC.UMCSTI Mike Cohn User Story Scrum – Visão geral Exemplo de uma User Story Como Gestor, Quero que as informações pessoais dos clientes fiquem gravadas em formato criptografado no banco de dados, Para garantir a privacidade e a segurança dos dados dos meus clientes. Critérios de aceitação: - Ter os dados armazenados no banco de dados e arquivos de troca do sistema usando algoritmo de criptografia do tipo chave publica/chave privada. TJPE.DINFO.GETEC.UMCSTI Mike Cohn Objetivo da Sprint Scrum – Visão geral Breve declaração que ilustre o foco do trabalho durante o Sprint Ciências da vida Base de Dados Funcionalidades para estudos genéticos da população Fazer com que a aplicação rode no SAL Server além do PostgreSQL Serviços financeiros Criar suporte para indicadores de desempenho em tempo real TJPE.DINFO.GETEC.UMCSTI Gerenciando o Sprint Backlog Scrum – Visão geral Cada indivíduo escolhe o trabalho que fará • Trabalhos nunca são atribuídos Atualização diária da estimativa do trabalho restante Qualquer membro da equipe pode adicionar, apagar ou mudar tarefas O trabalho aparece a partir do Sprint Se uma tarefa não é clara, defina-a como um item com uma quantidade maior de tempo e subdivida-a depois Atualize as coisas a serem feitas na medida em que se tornam mais conhecidas TJPE.DINFO.GETEC.UMCSTI Sprint Backlog Tarefas Codificar interface de usuário Codificar regra de negócio Testar Scrum – Visão geral Seg Ter Qua Qui Sex 8 4 8 16 12 10 4 8 16 16 11 8 8 8 8 8 8 4 Escrever help online 12 Escrever a classe foo 8 Adicionar log de erros TJPE.DINFO.GETEC.UMCSTI Horas Burndown Chart TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Burndown Chart TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Scrum – Visão geral 50 Horas 40 30 20 10 0 TJPE.DINFO.GETEC.UMCSTI Seg Ter Qua Qui Sex Escalabilidade Scrum – Visão geral Equipe de 7 ± 2 pessoas • Escalabilidade através de equipes de equipes Fatores de escala • • • • Tipo de aplicação Tamanho da equipe Dispersão da equipe Duração do projeto Scrum é usado em projetps envolvendo mais de 500 pessoas TJPE.DINFO.GETEC.UMCSTI Scrum de Scrums TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Scrum de Scrums de Scrums Scrum – Visão geral TJPE.DINFO.GETEC.UMCSTI Dificuldades Scrum – Visão geral O que é difícil em Scrum? Detalhes podem escapar se não for gerenciado corretamente Criar e manter um Product Backlog requer trabalho TJPE.DINFO.GETEC.UMCSTI Dicas de Leitura Scrum – Visão geral Agile and Iterative Development: A Manager’s Guide by Craig Larman Agile Estimating and Planning by Mike Cohn Agile Project Management with Scrum by Ken Schwaber Agile Retrospectives by Esther Derby and Diana Larsen Agile Software Development Ecosystems by Jim Highsmith Agile Software Development with Scrum by Ken Schwaber and Mike Beedle Scrum and The Enterprise by Ken Schwaber User Stories Applied for Agile Software Development by Mike Cohn Artigos semanais em www.scrumalliance.org TJPE.DINFO.GETEC.UMCSTI Copyright TJPE.DINFO.GETEC.UMCSTI Scrum – Visão geral Autores Scrum – Visão geral Criação: • • • • Mike Cohn [email protected] www.mountaingoatsoftware.com +1 (720) 890-6110 (escritório) Tradução e adaptação: • Cesar Brod • [email protected] • www.brod.com.br Adaptação da Adaptação: • Gustavo Carvalho + Juliana Xavier • [email protected], [email protected] TJPE.DINFO.GETEC.UMCSTI Dúvidas | Sugestões Scrum – Visão geral UMCSTI: [email protected] Telefone: 3419.3649 TJPE.DINFO.GETEC.UMCSTI 50