Scrum, conceitos básicos
Tags: scrum, performance, management
Published: 2022-07-19 20:03:41

Um resumo do que é a metodologia do desenvolvimento ágil e o Scrum, principal e mais utilizado framework de gerenciamento de projetos do mundo.

_Scrum_ é um framework de gerenciamento de projetos amplamente utilizado no mundo do desenvolvimento de software. Até 2021, era a metodologia ágil mais utilizada no mundo.

![Imagem exemplificando o fluxo do scrum](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vixglciluwjfomrjk4qu.jpg)

Antes de começarmos a falar propriamente do Scrum, vale pontuar o que seria o **desenvolvimento ágil de software**.

Desenvolvido em 1990, o Manifesto Ágil surgiu para fundamentar os princípios do desenvolvimento ágil de software. Esses princípios são baseados em valores, descritos a seguir:

- Os indivíduos e suas interações acima de procedimentos e ferramentas;
- O funcionamento do software acima de documentação abrangente;
- A colaboração com o cliente acima da negociação e contrato;
- A capacidade de resposta a mudanças acima de um plano pré-estabelecido.

O primeiro valor tem por objetivo salientar que as maiores e melhores ferramentas não terão o poder de ajudar automaticamente a melhorar processos, mas que o que vale é criar uma equipe que funcione e ela sim vai ser capaz de configurar o ambiente de acordo com a necessidade do projeto.

Já o segundo valor diz que o código não é o meio ideal para comunicar o fundamento lógico e a estrutura de um sitema. É importante manter uma documentação desses fundamentos, mas ela deve ser curta e notória, algo em torno de 10 a 20 páginas e deve manter-se por discutir tais fundamentos de forma global do projeto, somente suas estruturas de alto nível. Os dois melhores documentos para transferencia de informações para novos membros sempre serão código e equipe.

O terceiro valor diz que projetos bem sucedidos envolvem feedback regular e frequente do cliente.

E por último, a capacidade de responder a mudanças frequentemente determina o sucesso ou o fracasso de um software.

Esses valores são os responsáveis por fundamentar os **12 princípios** do desenvolvimento ágil de software, que são:

1. Quanto mais frequentes são as entregas, maior é q qualidade final do sistema.

2. Uma equipe ágil trabalha arduamente para manter a estrutura do seu software flexível, a fim de que quando os requisitos mudarem, o impacto no sistema seja mínimo.

3. Entregar software funcionando com a maior frequencia possível no menor tempo possível.

4. Para que um projeto seja ágil clientes, desenvolvedores e interessados devem ter uma interação significativa e frequente.

5. As pessoas são o fator de sucesso mais importante. Todos os outros fatores são de segunda ordem e estão sujeitos a mudança caso estejam prejudicando as pessoas.

6. O método mais eficiente e eficaz de transmitir informações para e dentro de uma equipe de desenvolvimento é a conversa face a face.

7. Software funcionando é a principal medida de progresso.

8. Os patrocinadores, desenvolvedores e usuários devem manter um ritmo constante indefinidamente. Elas trabalham em uma velocidade que lhes permite manter os padrões de qualidade mais alta durante todo o projeto.

9. Atenção contínua a excelencia técnica e ao bom projeto aumenta a agilidade. Ir rápido é mantar o software o mais limpo e robusto possível.

10. Simplicidade - a arte de maximizar o volume de trabalho que não precisou ser feito. É necessário fazer o trabalho mais simples e de qualidade mais alta hoje, confiante de que ele será mais fácil de alterar, se e quando os problemas de amanhã surgirem.

11. Uma equipe ágil é auto organizada e os membros trabalham juntos em todos os aspectos do projeto.

12. Uma equipe ágil ajusta continuamente sua organização, suas regras, suas convenções, seus relacionamentos etc.

![imagem resumindo os principios da metodologia ágil](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tv3lgwx488080wz0sqvo.png)

Agora que entendemos um pouco de como funciona a metodologia ágil, vamos ver como ela é aplicada no _Scrum_.

## Scrum

O scrum é sustentado por 3 pilares, são eles: transparencia, inspeção e adaptação.

A transparencia se refere principalmente a forma de comunicação, que deve ser clara e possuir uma linguagem comum a todos os membros da equipe.

Já a inspeção se refere a estar constantemente inspecionando seus artefatos (valor), identificando possíveis variações, no entanto é necessário tomar cuidado, elas não devem ser tão frequentes, pois podem atrapalhar a execução das tarefas.

Por fim, a adaptação é a capacidade de ajustar os processos de modo que o produto final seja entregue no tempo previsto e da forma prevista.

Dentro do scrum existem quatro eventos formais, contidos dentro dos limites da Sprint, justamente para
inspeção e adaptação:

- Reunião de planejamento da Sprint (planning);
- Reunião diária (a famosa daily);
- Reunião de revisão da Sprint;
- Retrospectiva da Sprint.

### Vamos falar do time da scrum

Ele é composto por duas peças-chave além da equipe, geralmente, de desenvolvimento. Sendo eles:

- Scrum master: responsável por garantir a aplicação do scrum, ele é o conhcedor do framework e vai garantir que ele seja entendido por todos.

- Product owner: responsável por fazer a ponte entre o cliente e os desenvolvedores. Ele também é a única pessoa responsável por gerenciar o Backlog do Produto (requisitos).

- Time de desenvolvimento: composto idealmente entre 5-7 pessoas. São multifuncioanais e auto-organizados.

### Os eventos do Scrum:

Todos os eventos no scrum tem uma quantidade de tempo definida, e não pode ser aumentada nem reduzida. Além disso eles foram planejados de modo que não haja a necessidade de outros eventos além dos listados abaixo e são sempre oportunidades de gerar inspeções e adaptações no no desenvolvimento.

- Sprint: o core do Scrum, o evento principal que dita todos os outros eventos. Ela é composta por: uma reunião de planejamento da Sprint, reuniões diárias, o trabalho de desenvolvimento, uma revisão da Sprint e a retrospectiva da Sprint. Elas tem uma duração média de 2-4 semanas. Cada Sprint tem a definição do que é para ser construído, um plano projetado e flexível que irá guiar a construção, o trabalho e o resultado do produto.

- Reunião de planejamento da sprint: consiste basicamente em responder a 3 perguntas principais que norteiam uma sprint: O que pode ser entregue nesta Sprint? Como o trabalho escolhido será entregue? Qual o objetivo ou meta da Sprint?

- Reunião diária ou daily: uma reunião diária com o time de desenvolvimento de duração média de no máximo 15 minutos que busca sincronizar a equipe a respeito do andamento da sprint através das perguntas: o que eu fiz ontem que ajudou o Time de Desenvolvimento a atender a meta da Sprint? O que eu farei hoje para ajudar o Time de Desenvolvimento atender a meta da Sprint? Eu vejo algum obstáculo que impeça a mim ou o Time de Desenvolvimento no atendimento da meta da Sprint?

- Revisão da sprint: ocorre ao final da sprint para inspecionar o incremento (a parte do produto que está sendo entregue) e adaptar o backlog (requisitos) do Produto se necessário. Durante a reunião de Revisão da Sprint o Time Scrum e as partes interessadas colaboram sobre o que foi feito na Sprint. Com base nisso e em qualquer mudança no Backlog do Produto durante a Sprint, os participantes colaboram nas próximas coisas que podem ser feitas para otimizar valor.

_No scrum a medida não é o tempo, nem quantidade, mas sim o valor que é entregue ao longo de cada sprint_

- Retrospectiva da sprint: é uma reunião que tem por finalidade fazer com que o Time Scrum inspecione a si próprio e crie um plano para melhorias a serem aplicadas na próxima Sprint.

### Artefatos do scrum:

- Backlog do produto: é uma lista ordenada de tudo que deve ser necessário no produto, ou seja, seus requisitos. O Product
Owner é responsável pelo Backlog do Produto, incluindo seu conteúdo, disponibilidade e ordenação. Ele é flexível e nunca possui uma versão final, vai se adaptando conforme as necessidades.

- Backlog da sprint: é um conjunto de itens do Backlog do Produto selecionados para a Sprint, juntamente com o plano para entregar o incremento do produto e atingir o objetivo da Sprint.

- Incremento, é a soma de tudo que ja foi entregue nas sprints anteriores e o que foi entregue na sprint atual, o equivalente as "features" do produto.

Por ser o framework mais utilizado dentro do ambiente de desenvolvimento de software e pela metodologia ágil ter sido criada com o foco na da engenharia de software, é de extrema importancia conhecer seu funcionamento e princípios, tanto para o mercado de trabalho, como também para melhorar a entrega de projetos pessoais, trabalhos de faculdade e freelas.