# 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