Definição de Scrum
O que é Scrum
- É um processo ágil que nos permite focar em entregar o maior valor de negócio no menor tempo.
- Permite inspecionar software em funcionamento mais rapidamente e repetidamente (em intervalos de duas semanas a um mês).
- O negócio define as prioridades. Times se auto organizam para determinar a melhor forma de entregar as features com mais alta prioridade.
- Em intervalos de duas semanas a um mês, qualquer um pode ver software em funcionamento e decidir fazer o release dele da forma como está ou continuar a melhorá-lo para outra sprint.
Características
- Times auto-organizados
Manifesto Ágil
- Indivíduos e interações mais do que Processos e ferramentas
- Software em funcionamento mais do que Documentação abrangente
- Colaboração com cliente mais do que Negociação de contratos
- Responder a mudanças mais do que Seguir um Plano
Componentes
- Backlog - Funcionalidades esperadas do software
- Sprint - Desenvolvimento do software, dura normalmente de uma semana à 4 semanas
- Objetivo da sprint - O que deve ser feito em uma sprint
- Incremento de produto - é o produto potencialmente entregável
- Diário
- Daily Scrum Meeting - Reunião de alinhamento
Papéis
Product Owner - PO
- Define o que será feito na sprint, representa a ponte entre o cliente e o produto
- Prioriza features de acordo com o seu valor de mercado
- Aceita ou rejeito os resultados do trabalho
Scrum Master - SM
- Representa o gereciamento para o projeto
- Responsável por propagar as práticas do Scrum
- Remove impedimentos
- Garante que a equipe esteja totalmente funcionando e produtiva
- Permite estreita cooperação entre os papéis e funções
Time Dev
- Tipicamente de 5 a 9 pessoas
- Múltiplas habilidades
- Programadores, testadores, UX designers, etc.
- Membros devem estar alocados full-time (geralmente)
- Times auto-organizáveis
- Composição do time só deve ser modificada entre sprints
Cerimônias (Eventos)
Planejamento da sprint
- Itens
- Capacidade do Time
- Backlog do produto
- Condições do negócio
- Produto atual
- Tecnologia
- Priorização da sprint
- Avalia o product backlog e define o objetivo da sprint
- Planning
- Decide como atingir o objetivo
- Criar o sprint backlog a partir do product backlog
- Definição
- Time seleciona itens com o qual podem se comprometer
- É criado o sprint backlog
- Design de alto nível é definido
Ex:
História: Eu como Viajante, quero ver fotos dos hotéis
Tarefas:
- Codificar a camada intermediária
- Codificar UI
- Corrigir bugs existentes
Daily Scrum
- Diário
- 15 minutos
- Todos em pé (para agilizar e ter a atenção dos participantes)
- Não é para resolver problemas
- Todos são convidados a participar
- Somente Time Dev, Scrum Master, Product Owner podem se manifestar
- Ajuda a evitar reuniões desnecessárias
- Todos respondem 3 questões
- O que você fez ontem?
- O que vai fazer hoje?
- Existe algo te atrapalhando?
- Não é um status para o Scrum Master
- São compromissos com os outros membros
Sprint Review
- Time apresenta o que foi concluído durante a Sprint
- Geralmente na forma de uma demonstração das novas funcionalidades ou arquitetura
- Informal
- 2 Horas
- Sem slides
- Todo o time participa
- Todos são convidados
Sprint Retrospective
- Periodicamente avaliar o que está e o que não está funcionando
- Tipicamente de 15 a 30 minutos
- Feito após cada sprint
- Todos participam
Uma das técnicas de review é o:
Começar / Parar / Continuar
- Todo o time debate sobre o que eles gostariam de:
- Começar a fazer
- Parar de fazer
- Continuar a fazer
Artefatos
Backlog do produto (Product Backlog)
- Os requisitos
- Lista com todo o trabalho desejado para o projeto
- Priorizado pelo Product Owner
- Repriorizado ao início de cada Sprint
- Escrito de forma a específicar os requisitos
Objetivo da Sprint (Sprint Goal)
- Uma declaração do foco do trabalho durante a sprint
- Pode ser algo como um Épico (Tarefa geral ou módulo)
Sprint Backlog
- Membros se comprometem com o trabalho escolhido por eles mesmos
- Trabalho nunca é delegado por alguém
- Estimativa de trabalho restante é atualizada diariamente
- Qualquer membro do time pode adicionar, deletar ou modificar o Sprint Backlog
- O trabalho da Sprint emerge
Gráfico de Sprint Burndown
- É um gráfico que demonstra a quantidade de horas restantes em cada semana da sprint
- À medida que o tempo passa, as horas diminuem
- Importante para tomar decisões críticas para o andamento do projeto
Gráfico de Tarefas Cumpridas
- É um gráfico que demonstra a quantidade de horas cumpridas, em tarefas
- Útil para reconhecer gargalos no Time Dev
Escalabilidade
- Tipicamente times de 7 +/- 2 pessoas
- Fatores importantes ao escalar
- Tipo de aplicação
- Tamanho do time
- Dispersão do time
- Duração do projeto
- Utilizando o Scrum of Scrums
- Escala em equipes de scrums as equipes de scrums utilizando os representantes de cada time como um membro da equipe maior