Aprendendo sobre Metodologia Ágil: SCRUM
Published: 2020-10-26 20:01:05

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/bc6ltapwpiazb5ofenpa.png)

__O que é Scrum e quais são as partes envolvidas__

Esta semana, li o meu primeiro livro de metodologia ágil, o Scrum: a arte de fazer o dobro do trabalho na metade do tempo de Jeff Sutherland, um dos criadores do Scrum. Hoje resolvi compartilhar um artigo sobre o que aprendi com este livro.

Scrum é um framework de gestão de projetos ágeis que permite aos times entregar, desenvolver ou melhorar um produto complexo e que surgiu como resposta ao modelo de gestão clássica em cascata. Em Scrum, as entregas acontecem em iterações chamas de Sprint, ou seja, ele quebra projetos maiores em ciclos de entregas menores, que são muito mais fáceis de controlar, gerenciar e responder às mudanças.

O Scrum Master é o responsável por ELIMINAR AS BARREIRAS que impedem o time de perfomar melhor, ou seja, ele é um facilitador do time. Ele ensina as práticas do Scrum para a equipe e toda a empresa.

O Product Owner (Dono do Produto) é a pessoa que traduz a visão em itens da lista de Pendências. Ela precisa compreender o negócio, o mercado e o cliente. Um Dono de Produto define o que precisa ser feito e por quê. A forma como a equipe vai fazer isso e quem vai fazer é ela mesmo que decide. O PO precisa estar sempre disponível para responder às perguntas e é a responsável por entregar valor, é quem detém o domínio do produto e que tem a última palavra.

O Time de Desenvolvimento é quem realizam a entrega dos itens priorizados, dá sugestões, contribuem para a melhoria de todo processo e fazem a previsão de entregas. O número ideal de membros de uma equipe Scrum é de 7 pessoas (pode ter duas pessoas a menos ou a mais). O próprio time de desenvolvimento é quem define quais tarefas vão fazer e quantas tarefas vão cada membro irá conseguir fazer em uma Sprint (de acordo com a prioridade delas).

__Backlog do Produto__

Backlog do produto é a lista de pendências do projeto/produto, ela contém todas as histórias e tarefas que precisam ser feitas pelo time de desenvolvimento. Deste Backlog, o time seleciona o que vai para o Sprint, que são as tarefas que o time irá trabalhar durante um período fixo de tempo. Durante cada Sprint, há algumas Cerimônias.

A Sprint precisa ter sempre a mesma duração (uma semana, duas semanas, etc) e a duração máxima é de 1 mês. O PO é quem vai definir, juntamente com o Scrum Master, quais são as funcionalidades prioritárias que o time irá focar (pois 20% das funcionalidades representam 80% do valor do produto), criando assim a lista de Pendências. Para estimar o tempo para realizar cada tarefa, não faça estimativas do tempo de cada tarefa usando termos absolutos (como horas), prefira utilize algum método mais visual, como o Pôquer do Planejamento. Cada pessoa tem um baralho de cartas com os números da sequência de Fibonacci (1, 3, 5, 8, 13, etc) e cada item que precisa ser estimado é levado à mesa. Todos os membros puxam a carta que acreditam representar o esforço necessário para concluí-lo e a colocam em cima da mesa, com o número voltado para baixo. Então, todos viram suas cartas ao mesmo tempo e, se todo mundo está a uma carta de diferença do outro (exemplo, um 5, dois 8 e um 13), a equipe então soma os resultados e tira a média (que será 6,6). Se os números das cartas mostrarem uma diferença superior a três, as pessoas com as cartas mais baixas e mais altas falam sobre o motivo por que acreditam que o seu número é o adequado. Então, fazemos uma nova rodada para a mesma tarefa. Caso contrário, é só fazer a média das estimativas.

__Cerimônias do Scrum__
As Cerimônias do Scrum são eventos que vão ajudar o time a manter as coisas transparentes, manter tudo alinhado com relação ao projeto e adaptar-se as mudanças. Elas são divididas em: Planejamento do Sprint, Daily Scrum, Revisão de Sprint e Retrospectiva de Sprint.

__Planejamento do Sprint:__ nesta etapa, o time se reúne e escolhe os itens que eles serão capazes de entregar durante a Sprint, pegando as tarefas mais prioritárias primeiro. Também é feito o planejamento das entregas e as estimativas. Crie post-it com todas as funcionalidades e tarefas que o projeto possui, que são divididas em três quadros (Tarefas a fazer, Tarefas sendo feitas e Tarefas realizadas).

__Daily Scrum:__ são reuniões rápidas, de até 15 minutos onde todos os membros da equipe ficam em pé e cada um precisa responder três perguntas fundamentais do Scrum:
1. O que você fez ontem?
2. O que você fará hoje?
3. Existe/existiu algum impedimento no seu caminho?
Essas reuniões servem para manter todos os membros da equipe alinhados com o andamento do projeto.

__Revisão do Sprint:__ ocorre no final de cada Sprint, é uma reunião informal para apresentar o trabalho entregue pelo time e é onde o PO faz a aprovação dos itens.

__Retrospectiva de Sprint:__ é uma reunião feita após a revisão, onde o time discute tudo o que deu certo na Sprint que foi concluída, o que se pode melhorar e faz toda documentação da retrospectiva.

__Anotações do livro de Scrum__

Não crie nenhuma funcionalidade pela metade, após cada sprint é necessário ter um produto funcional.

Faça certo da primeira vez, conserte os bugs assim que surgirem, evitando aumentar o tempo desnecessários para sua correção no futuro. Evite ser multitarefa, pois nós perdemos uma grande produtividade e capacidade de concentração quando intercalamos entre tarefas.

Planeje apenas o necessário, não tente projetar tudo com muita antecedência, planeje apenas o suficiente para manter as equipes ocupadas e não se apaixone pelo seu plano, pois é quase certo que ele está errado.

Pense primeiro sobre quem vai obter valor com algo, então, pense no que é e, em seguida, porque eles precisam daquilo. Os seres humanos pensam em uma estrutura narrativa, e isso vai fazer com que os objetivos sejam mais claros para toda a equipe (por exemplo, como X, eu quero Y, para conseguir Z). Crie novas coisas/funcionalidades apenas quando elas geram valor e esteja disposto a trocá-las por algo que exija um esforço equivalente. O que você poder ter acreditado ser necessário no início pode ser algo de que você, na verdade, nunca precisou.

É muito importante conhecer a velocidade da equipe. Toda equipe deve saber exatamente quanto trabalho consegue realizar a cada Sprint, além de saberem o quanto podem melhorar a própria velocidade ao trabalhar de forma mais inteligente, removendo as barreiras que os tornam mais lentos. Uma vez que você saiba com que trabalha, saberá quanto tempo levará para chegar lá (velocidade x tempo = entrega).

Defina objetivos audaciosos (mas não impossíveis), com o Scrum não é difícil dobrar a produção ou cortar o cronograma de entrega pela metade, fazendo com que o projeto seja finalizado mais rápido.
Um time mais feliz, performa melhor e ajuda mais a equipe, com o método da Métrica da Felicidade. No final dos Sprints, cada pessoa na equipe responde a estas poucas perguntas:

1. Em uma escala de 1 a 4, como você se sente em relação ao papel que desempenha na empresa?
2. Usando essa mesma escala, como você se sente em relação à empresa como um todo?
3. Por que você se sente assim?
4. O que tornaria você mais feliz no próximo Sprint?

Observe, Oriente, Decida, Aja (OODA), é necessário que se tenha uma visão completa do quadro estratégico, mas aja de forma rápida e tática. Elimine diretrizes idiotas e evite papelada inútil pois reuniões sem sentido atrapalham e atrasam o desenvolvimento de todo o time.

__Implementando o Scrum__
1. Escolha o Product Owner (Dono do Produto).
2. Escolha uma equipe que tenha todas as habilidades necessárias para pegar a visão do Dono do Produto e transformá-la em realidade. As equipes devem ser pequenas (entre 3 e 9 membros).
3. Escolha um Mestre Scrum. Essa pessoa vai orientar o restante da equipe em relação à estrutura do Scrum, além de ajudar a eliminar qualquer obstáculo que os esteja deixando mais lentos.
4. Crie e priorize uma lista de Pendências do Produto, que é uma lista detalhada de tudo que precisa ser feito ou construído para transformar a visão em realidade.
5. Aperfeiçoe e faça estimativas para as Pendências do Produto. É crucial que as pessoas que irão realmente concluir os itens da lista façam as estimativas de quanto esforço eles exigirão (use algo como o pôquer do planejamento para determinar o tempo para realizar as tarefas).
6. Planejamento do Sprint. É a primeira das reuniões Scrum, onde a equipe, o Mestre Scrum e o Dono do Produto se reúnem para planejar o Sprint. As equipes olham para as tarefas no topo das pendências e estimam o quanto podem fazer naquele Sprint. Se a equipe já está trabalhando a alguns Sprints, ela deve pegar tarefas que totalizem o mesmo número de pontos do Sprint anterior (velocidade da equipe). O Mestre Scrum e a equipe devem tentar aumentar o número de pontos a cada Sprint. Uma vez que a equipe se comprometeu com o que acredita ser capaz de fazer em um Sprint isso não pode ser alterado.
7. Torne o trabalho visível, como utilizando um Quadro Scrum de três colunas (a fazer, fazendo e feito), utilizando post-its para representar os itens que precisam ser concluídos. Ou utilize um Gráfico de Burn-Down.
8. Reuniões Diárias. Todos os dias, no mesmo horário, durante não mais do que 15 minutos, a equipe e o Mestre Scrum se reúnem para responder as três perguntas fundamentais do Scrum.
9. Revisão ou Demonstração do Sprint. É a reunião na qual a equipe mostra o que conseguiu fazer durante o Sprint, onde a equipe demostra o que consegui colocar na coluna Feito.
10. Retrospectiva do Sprint. Depois que a equipe mostrou o que conseguiu fazer no Sprint anterior, eles se reúnem e pensam no que deu certo e o que poderia ter sido melhor, e o que podem melhorar no próximo Sprint.
11. Comece imediatamente o próximo Sprint.