# Scrum

Aplicações do Scrum em Diferentes Setores
O Scrum (pronunciado [skɻʌm]) é um framework de gerenciamento de projetos (conjunto de técnicas/processos de gerenciamento não linear de projetos em equipe), da etapa da organização ao desenvolvimento ágil de produtos complexos e adaptativos buscando o valor máximo, criado na década de 1990. No State of Agile Report de 2021, o scrum era a metodologia ágil mais utilizada, sendo adotada por 66% dos participantes do relatório.
Embora muito utilizado por equipes de desenvolvimento de software, os princípios desse conjunto podem ser aplicados a todos os tipos de trabalhos em equipe.
Em função de não ser linear, pode empregar vários outros processos ou técnicas, de modo que você possa melhorá-los. Também não é um processo prescritivo, ou seja, não descreve o que fazer em cada situação, pois em trabalhos complexos é impossível predizer tudo o que irá ocorrer. É um conjunto de valores, princípios e práticas que fornecem a base para que a sua organização adicione suas práticas particulares de engenharia e gestão e que sejam relevantes para a realidade da sua empresa. O resultado será uma versão de Scrum que é exclusivamente sua.
Scrum possui seu foco no gerenciamento e projeto da organização onde é difícil planejar à frente. Mecanismos do Controle de Processo Empírico, onde ciclos de feedback constituem o núcleo da técnica de gerenciamento que são usadas em oposição ao tradicional gerenciamento de comando e controle. É uma forma de planear e gerenciar projetos trazendo a autoridade da tomada de decisão a níveis de propriedade de operação e certeza.
Apesar da palavra não ser um acrônimo, algumas empresas que implementam o processo a soletram com letras maiúsculas como SCRUM. Isto pode ser devido aos primeiros artigos de Ken Schwaber que capitalizava SCRUM no título.
Apesar de ser criado para gerenciamento de projetos de software, também pode ser utilizado em equipes de manutenção de software ou como uma abordagem geral de gerenciamento de projetos/programas.
Atualmente, as técnicas de DevOps são utilizados por programadores no desenvolvimento de software em conjunto com técnicas de gestão e desenvolvimento ágil de software, como o Scrum.

## História

Inicialmente, o Scrum foi concebido como um estilo de gerenciamento de produtos em empresas de fabricação de automóveis e produtos de consumo, por Takeuchi e Nonaka no artigo "The New Product Development Game" (Harvard Business Review, Janeiro-Fevereiro 1986). Eles notaram que projetos usando equipes pequenas e multidisciplinares cross-functional produziram os melhores resultados, e associaram estas equipes altamente eficazes à formação Scrum do Rugby - utilizada para reinício do jogo em certos casos. Jeff Sutherland, John Scumniotales e Jeff McKenna conceberam, documentaram e implementaram o Scrum, conforme descrito abaixo, na empresa Easel Corporation em 1993, incorporando os estilos de gerenciamento observados por Takeuchi e Nonaka.
Ken Schwaber e Jeff Sutherland fizeram a primeira co-apresentação do Scrum na conferência OOPSLA de 1995. Esta apresentação essencialmente documentou o aprendizado que Ken e Jeff tiveram ao longo dos anos anteriores na aplicação do Scrum e ajudaram a implantá-lo no desenvolvimento de softwares em todo o mundo.
Scrum junta conceitos de Lean, desenvolvimento iterativo e do estudo de Hirotaka Takeuchi e Ikujiro Nonaka.
A função primária do Scrum é ser utilizado para o gerenciamento de projetos de desenvolvimento de software. Ele tem sido usado com sucesso para isso, assim como Extreme Programming e outras metodologias de desenvolvimento. Porém, teoricamente pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum, como iniciar uma escola pequena, projetos de pesquisa científica, ou até mesmo o planeamento de um casamento.
Mesmo que idealizado para ser utilizado em gestão de projetos de desenvolvimento de software ele também pode ser usado para a gerência de equipes de manutenção, ou como uma abordagem para gestão de programas: Scrum de Scrums.

### O Guia do Scrum

O Guia do Scrum é o documento oficial que documenta o Scrum, suas regras e definições conforme desenvolvido e sustentado por mais de 20 anos por Jeff Sutherland e Ken Schwaber.
O documento é mantido por duas instituições, a Scrum.org e seus Professional Scrum Trainers (PSTs) e a Scrum Alliance. Ambas oferecem o cursos preparatórios para certificações relacionadas ao Scrum.

#### Manutenção e evolução do Guia do Scrum

Os criadores do Scrum Ken Schwaber e Jeff Sutherland são os responsáveis primários por toda e qualquer alteração direta ao documento do Guia do Scrum. Além disso os Professional Scrum Trainers, ou PST's, também atuam na evolução do Framework Scrum e no fornecimento de sugestões de melhorias para o documento e sua aplicação no mundo real. Sua atuação em empresas e com a comunidade é imprescindível para a evolução dos métodos, processos e ferramentas ágeis e no uso e adoção do Scrum.
O Professional Scrum Trainer (PST) é um título concedido pela Scrum.org a profissionais que demonstram profundos conhecimentos práticos e teóricos sobre o Framework Scrum e que são aprovados em um rigoroso e extenso processo seletivo para tal. O título de PST representa a mais alta honraria e reconhecimento dentro da comunidade Scrum e seus portadores são reconhecidos como verdadeiras autoridades na adoção, implementação e uso do Scrum e suas práticas complementares em empresas, governos e organizações.
Atualmente existem 6 diferentes tipos de PST, cada um com uma diferente especialidade dentro do universo Scrum. Um PST pode ter uma ou mais especialidades e ser reconhecido por elas, que são:
* Professional Scrum Master: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
* Professional Scrum Product Owner: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
* Professional Scrum Developer: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
* Scaled Professional Scrum: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
* Professional Scrum with Kanban: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;
* Professional Agile Leadership: PST especializado nos processos e ferramentas relacionados ao papel de Scrum Master;

## Características do Scrum

* Clientes tornam-se parte da equipe de desenvolvimento (os clientes devem estar genuinamente interessados na saída);
* Entregas frequentes e intermediárias de funcionalidades 100% desenvolvidas;
* Planos frequentes de mitigação de riscos desenvolvidos pela equipe;
* Discussões diárias de status com a equipe de desenvolvimento;
* A discussão diária na qual cada membro da equipe de desenvolvimento responde às seguintes perguntas:
** O que fiz desde ontem em direção a meta?
** O que estou a pensar fazer até amanhã em direção a meta?
** Existe algo que me impede de atingir a meta?
* Transparência no planejamento e desenvolvimento;
* Reuniões frequentes com os stakeholders (partes interessadas no projeto) para monitorar o progresso;
* Problemas não são ignorados e ninguém é penalizado por reconhecer ou descrever qualquer problema não visto;
* Locais e horas de trabalho devem ser energizadas, no sentido de que "trabalhar horas extras" não necessariamente significa "produzir mais".
* Um princípio chave do Scrum é o reconhecimento de que, durante um projeto, os clientes podem mudar de ideia sobre o que eles querem e precisam (muitas vezes chamados requisitos churn), e que os desafios imprevisíveis não podem ser facilmente tratados de uma maneira preditiva ou planeada tradicional. Como tal, o Scrum adota uma abordagem empírica, aceitando que o problema não pode ser totalmente entendido ou definido, focando na maximização da habilidade da equipe para entregar rapidamente e responder às necessidades emergentes.

## Gerenciamento ágil de projetos com Scrum

Scrum não só reforçou o interesse em gerenciamento de projetos de software, mas também desafiou as ideias convencionais sobre essa gestão. Scrum é voltado para instituições de gerenciamento de projetos, onde é difícil planear o futuro com mecanismos de controle de processos empíricos, como loops de feedback, onde constituem o elemento central do desenvolvimento do produto em comparação com a gestão de comando e controle tradicionais orientado. Ela representa uma abordagem radicalmente nova para o planeamento e gerenciamento de projetos de software, trazendo poder de decisão ao nível das propriedades operação e certezas. Scrum reduz defeitos e torna o processo de desenvolvimento mais eficiente, bem como reduzindo os custos de manutenção a longo prazo.

## Sprint

A sprint é o principal evento do Scrum, é a unidade básica de desenvolvimento. É um período curto, que pode ir de uma semana até o máximo de quatro semanas. O mais importante é entregar um incremento de produto, algo concreto que possa ser testado, ao final da sprint, e não apenas análises teóricas, por exemplo.
Antes de começar a sprint, deve ocorrer uma reunião de planejamento, chamada de Sprint Planning (Planejamento da Sprint). Nessa reunião, são definidos os itens a serem realizados durante o ciclo, que são retirados do Product Backlog. É importante que tanto o time de desenvolvimento quanto o Product Owner estejam nessa reunião. Os itens da sprint compõem o que é chamado de Sprint Backlog. Nesse momento, estes itens devem ser refinados e expandidos pelo time de desenvolvimento, com as informações técnicas e o tempo necessários para a conclusão de cada item.
Depois da definição do Sprint Backlog, é chegado o momento da execução, que irá de uma a quatro semanas, de acordo com o tempo definido para a Sprint. Durante esse período, devem ocorrer as Scrum Daily Meetings, que são pequenas reuniões diárias do time de desenvolvimento. A não ser que o time exiga a presença do Product Owner, é importante que o time consiga se auto-organizar sozinho. Além disso, as pautas das reuniões diárias normalmente envolvem a parte mais técnica do produto, logo a presença do Product Owner é pouco relevante. Essas reuniões podem durar, em média, 15 minutos apenas, e nesse momento o time pode revisar o que fez no dia anterior e se organizar para o dia atual. Ao fim do período de execução, é importante que o time entregue um incremento de produto concreto.
Ao fim da Sprint, ocorre a Reunião de Revisão, para inspecionar o incremento e adaptar o Product Backlog com os itens concluídos. Nesse momento, pode-se colher feedbacks de partes interessadas, apresentando-lhes o que foi feito. Um erro comum é tornar essa reunião um momento de apresentar ao Product Owner o que o time de desenvolvimento fez. Na verdade, na reunião de revisão, o Product Owner já deve estar ciente de tudo que foi feito e já ter aprovado, pois ele deve acompanhar a execução da Sprint.
Há, por fim, a Retrospectiva. Enquanto a reunião de revisão tem foco no produto, a reunião de retrospectiva tem foco no processo de trabalho. Aqui, o time pode comentar e refletir sobre os pontos fortes e fracos do seu trabalho em equipe, o que foi bom e o que foi ruim durante a execução, para aprimorar na próxima sprint.

## Papéis

Scrum é um esqueleto de processos que contém grupos de práticas e papéis pré-definidos. Os três papéis definidos no Guia Scrum são:
* O Scrum Master, que mantém os processos normalmente no lugar de um gerente de projeto;
* O Dono do Produto, ou Product Owner, que representa os stakeholders e o negócio;
* A Equipe de desenvolvimento, ou DevTeam, um grupo multifuncional entre 3 a 9 pessoas e que fazem a análise, projeto, implementação, teste etc.

### Papéis principais

Os papéis principais em equipes Scrum são aqueles comprometidos com o projeto no processo do Scrum - são os que produzem o produto (objetivo do projeto).

#### Product Owner (dono do produto)

O Product Owner representa a voz do cliente e é responsável por garantir que a equipe agregue valor ao negócio. O Product Owner escreve centrado nos itens do cliente (histórias tipicamente do usuário), os prioriza e os adiciona para o product backlog. Equipes de Scrum devem ter um Product Owner, e, embora esse possa também ser um membro da equipe de desenvolvimento, recomenda-se que este papel não seja combinado com o de ScrumMaster.

#### Equipe de Desenvolvimento (Development Team)

A equipe de desenvolvimento é responsável pela entrega do produto. A equipe é tipicamente composta de 5-9 pessoas com habilidades multifuncionais que fazem o trabalho real como analisar, projetar, desenvolver, testar técnicas de comunicação, documentos e outros. Recomenda-se que a equipe seja auto-organizada e auto-conduzida, mas que muitas vezes trabalhem com alguma forma de projeto ou gestão de equipe.

#### Scrum Master

Scrum é facilitado por um Scrum Master, que é responsável pela remoção de impedimentos à capacidade da equipe para entregar o objetivo da sprint / entregas. O Scrum Master não é o líder da equipe, mas age como um tampão entre a equipe e qualquer influência ou distração. O Scrum Master garante que o processo Scrum seja usado como pretendido. O Scrum Master é o responsável pela aplicação das regras. Uma parte fundamental do papel do Scrum Master é proteger a equipe e mantê-la focada nas tarefas em mãos. O papel também tem sido referido como um líder-servo para reforçar essa dupla perspectiva.
O Scrum é facilitado por um Scrum Master, que tem como função primária remover qualquer impedimento à habilidade de uma equipe de entregar o objetivo da sprint. O Scrum Master não é o líder da equipe (já que as equipes são auto-organizadas), mas atua como um mediador entre a equipe e qualquer influência desestabilizadora. Outra função extremamente importante de um Scrum Master é o de assegurar que a equipe esteja utilizando corretamente as práticas de Scrum, motivando-os e mantendo o foco na meta da Sprint.

### Papéis auxiliares

Os papéis auxiliares em equipes Scrum são aqueles com nenhum papel formal e envolvimento frequente no processo de Scrum, mas, ainda assim, devem ser levados em conta.

#### Partes interessadas (clientes, fornecedores)

Estas são as pessoas que permitem o projeto e para quem o projeto vai produzir o acordado benefício, que justifica a sua produção. Eles só estão diretamente envolvidos no processo durante as revisões sprint.

#### Gerentes (incluindo gerentes de projeto)

Pessoas que irão configurar o ambiente para desenvolvimento de produtos.

## Artefatos oficiais do Scrum

O Scrum Guide define os seguintes artefatos obrigatórios como necessários para o sucesso de um projeto que utilize Scrum:

#### Product Backlog

O Product Backlog é mantido pelo Product Owner e é uma lista de requisitos que tipicamente vêm do cliente. O Product Backlog pode ser alterado a qualquer momento pelo Product Owner ou por decisão deste.
Um backlog é uma lista de itens priorizados a serem desenvolvidos para um software. Este artefato é a principal fonte de informação para o Planeamento de sprint (Sprint Planning). No decorrer da sprint, o Product Owner, o Scrum Master e a Equipe decidem no que a equipe irá trabalhar. O Product Owner mantém uma lista priorizada de itens de backlog, o backlog do produto, o que pode ser repriorizado durante o planeamento da sprint. A Equipe seleciona itens do topo do backlog do produto. Eles selecionam somente o quanto de trabalho eles podem executar para terminar. A Equipe então planeia a arquitetura e o design de como o backlog do produto pode ser implementado. Os itens do backlog do produto são então destrinchados em tarefas que se tornam o backlog da sprint.

#### Sprint Backlog

O Sprint Backlog é uma lista de itens selecionados do Product backlog e contém tarefas concretas que serão realizadas durante a próxima sprint para implementar tais itens selecionados.
O Sprint Backlog é uma representação em tempo real do trabalho que o Development Team planeia concluir na sprint corrente, e ele pertence unicamente ao Development Team.

## Artefatos complementares ao Scrum

Além dos artefatos oficiais estabelecidos no Scrum Guide, existem artefatos complementares que podem ser utilizados para melhorar a qualidade das entregas e a eficiência do time. Alguns deles são:

### Burndown Chart

O Burndown é um simples gráfico, com dois eixos X e Y, baseado nas atividades que não ultrapassem um dia de trabalho. O eixo Y indica o número de tarefas existentes na sprint e o eixo X os dias que representam o tamanho da sprint.

## Eventos Scrum
### Daily Scrum Meeting

Cada dia durante a sprint, uma reunião de status do projeto ocorre. Isso é chamado de scrum diário, daily scrum ou stand up meeting (reunião em pé). Esta reunião tem diretrizes específicas:
* A reunião começa precisamente no horário marcado.
* Todos são bem-vindos, mas apenas "poucos" podem falar.
* O encontro tem duração determinada (Time-Box) e dura no máximo 15 minutos.
* A reunião deve acontecer no mesmo local e mesma hora todos os dias
* Durante a reunião, cada membro da equipe responde a três perguntas:
** O que você tem feito desde ontem em direção a meta?
** O que você está planeando fazer hoje em direção a meta?
** Você tem algum problema impedindo você de realizar seu objetivo em direção a meta?
    É papel do Scrum Master facilitar a resolução desses impedimentos. Normalmente, isso deve ocorrer fora do contexto do Daily Scrum para que a reunião possa durar menos de 15 minutos.

### Reunião de planeamento da Sprint (Sprint Planning Meeting)

No início do ciclo de sprint, um Sprint Planning Meeting é realizado.
* Selecione o trabalho que está a ser feito.
* Prepare o Sprint Backlog que detalha o tempo que levará para fazer esse trabalho, com toda a equipe.
* Identificar e comunicar o quanto o trabalho é susceptível de ser feito durante a sprint atual.
* Dividida em duas partes:
** Parte 1 (Primeiras quatro horas): Team Product Owner: diálogo para priorizar o Product Backlog.
** Parte 2 (Próximas quatro horas): Team apenas: hash de um plano para a Sprint, resultando na Sprint Backlog.
No final de um ciclo de sprint, são realizadas duas reuniões: a "Sprint Review" e do "Sprint Retrospective".

### Reunião de Revisão da Sprint (Sprint Review)

* Rever o trabalho que foi concluído e não concluído.
* Apresentar o trabalho realizado para os stakeholders (ou "a demo"). Um trabalho incompleto não pode ser demonstrado.

### Retrospectiva da Sprint (Sprint Retrospective)

* Todos os membros da equipe refletem sobre a sprint passada.
* Faça melhorias contínuas de processos.
Duas questões principais são feitas na retrospectiva da sprint: O que correu bem durante a corrida? O que poderia ser melhorado na próxima sprint?

## Scrum Solo

Scrum é baseado em pequenas equipes e permite a comunicação entre os membros da equipe. Entretanto, há uma grande quantidade de softwares desenvolvidos por programadores solos - isto é, sozinhos, sem um time para transformar os itens do backlog em itens em desenvolvimento.
Um software sendo desenvolvido por um só programador pode ainda se beneficiar de alguns princípios do Scrum, como: um backlog de produto, um backlog de sprint, um sprint e uma retrospectiva de sprint, tendo isso em mente uma metodologia baseada no Scrum original foi elaborada com o nome de Scrum Solo.

## Ferramentas

Como outras metodologias de desenvolvimento ágil, o Scrum pode ser implementado através de uma ampla gama de ferramentas. Muitas empresas utilizam ferramentas de software universais, como planilhas para construir e manter artefatos como o backlog da sprint.
Há também pacotes de software open-source e proprietários dedicados à gestão de produtos no âmbito do processo Scrum. Outras organizações implementam o Scrum sem o uso de quaisquer ferramentas de software, e mantêm seus artefatos na forma de cópias impressas, como papel, quadros e notas.

## Desempenho da equipe e escopo de utilização

O desempenho da equipe será definido com base no histórico de entregas e conclusões de projetos anteriores, ações que iram definir o quanto em pontos a equipe consegue atingir. Através de um sistema de pontuação cada desenvolvedor atinge em média 20 pontos por sprint de duração de duas semanas.
Tal desempenho pode ser afetado por diversos fatores, os quais que devem ser trazidos para discussão na reunião de retrospectiva e planeamento. Nesta reunião, deve-se abordar a apresentação de problemas e dificuldade encontrados, buscando assim resoluções, melhorias no processo 16 de desenvolvimento de software e conseqüentemente objetivando a velocidade de conclusão dos próximos sprints.
O Scrum é uma metodologia destinada a pequenas equipes com menos de dez pessoas sugerem que a equipe seja composta de cinco a nove integrantes, se mais pessoas estiverem envolvidas no projeto, devem-se formar múltiplas Equipes Scrum.

## Aplicações do Scrum em Diferentes Setores

Originalmente desenvolvido para o gerenciamento de projetos de software, o Scrum demonstrou flexibilidade e adaptabilidade que permitiram sua adoção em diversos outros setores. No marketing, por exemplo, equipes utilizam o Scrum para planejar e executar campanhas publicitárias, garantindo entregas frequentes e ajustando estratégias com base no feedback do mercado. Na educação, professores e administradores aplicam o Scrum para desenvolver currículos e projetos escolares, promovendo uma abordagem colaborativa e iterativa no processo de ensino-aprendizagem. Até mesmo na área da saúde, o Scrum tem sido utilizado para melhorar a gestão de projetos hospitalares e a implementação de novas tecnologias médicas, resultando em processos mais eficientes e centrados no paciente. Além disso, setores como recursos humanos e financeiro também têm adotado o Scrum para otimizar processos e aumentar a eficiência operacional.

## Desafios e Limitações do Scrum

Apesar de suas inúmeras vantagens, a implementação do Scrum não está isenta de desafios. Um dos principais obstáculos é a resistência à mudança, especialmente em organizações acostumadas a métodos tradicionais de gerenciamento de projetos. A falta de experiência e treinamento adequado pode levar a uma aplicação incorreta do framework, resultando em frustração e baixa produtividade. Problemas de comunicação e a gestão de conflitos também são desafios comuns que podem comprometer o sucesso do Scrum. Para superar essas limitações, é essencial investir em capacitação contínua, promover uma cultura de transparência e adaptação, e utilizar ferramentas de comunicação que facilitem a interação entre os membros da equipe.