Metodologia Ágil - Scrum

O que é Scrum?

Scrum é um framework ágil usado para gerenciar projetos complexos, permitindo que equipes se auto-organizem e entreguem valor continuamente.

  • O trabalho é dividido em Sprints, que podem ter duração de 1 a 4 semanas, e cada sprint resulta em um incremento funcional do produto.
  • A metodologia scrum permite inspeção e ajustes constantes, garantindo entregas ágeis e de qualidade.
  • Em resumo, ao invés da equipe desenvolver todo um sistema de uma vez, ela entrega pequenas funcionalidades a cada Sprint, e isso possibilita que as equipes assumam o próprio gerenciamento, aprendam com as experiências passadas e ajustem seu trabalho diante de mudanças.

Artefatos do Scrum

As equipes Scrum utilizam os chamados artefatos Scrum para organizar projetos e solucionar problemas. Esses artefatos oferecem informações importantes sobre planejamento e tarefas para a equipe e para as partes interessadas. Existem três artefatos principais:

Product Backlog

  • Lista dinâmica de funcionalidades, melhorias e correções do projeto.
  • Mantida pelo PO, que atualiza prioridades e adiciona ou remove itens conforme as necessidades do cliente e do mercado.

Sprint Backlog

  • Lista dos itens do Product Backlog que a equipe trabalhará na Sprint atual.
  • Flexível e pode ser ajustada durante a Sprint.

Incremento

  • Produto final utilizável ao final da Sprint.
  • Representa o progresso em direção à meta, que deve ser mantida durante toda a Sprint.

Boas práticas:

  • Manter o Product Backlog atualizado constantemente.
  • Garantir que o Incremento esteja testado e utilizável antes da Review.

Papéis no Scrum

👤 Product Owner (PO)

  • Tem o papel de garantir que a equipe entregue o maior valor possível para o negócio.
  • Entende as necessidades dos clientes e usuários e decide o que é prioridade.
  • Fornece à equipe uma orientação clara sobre os recursos que devem ser desenvolvidos primeiro.
  • Faz a ponte entre as expectativas da empresa e o entendimento da equipe.
  • Decide quando e com que frequência os resultados devem ser apresentados.

🧑‍🏫 Scrum Master

  • Atua como facilitador, garantindo que a equipe siga os princípios e práticas do Scrum.
  • Ajuda a remover obstáculos que atrapalham o andamento do trabalho.
  • Planeja os recursos necessários para cada Sprint e organiza reuniões e eventos do Scrum.
  • Promove treinamentos e orienta a equipe na adoção de novas tecnologias.
  • Comunica-se com outros grupos ou áreas da empresa para resolver problemas que afetam a equipe.

👥 Time de Desenvolvimento

  • Composta por desenvolvedores, testadores, designers, especialistas em UX e engenheiros de operações.
  • Cada membro possui habilidades diferentes, e todos treinam uns aos outros para que ninguém se torne um gargalo.
  • Trabalham de forma colaborativa e auto-organizada, garantindo que as tarefas da Sprint sejam concluídas.
  • Participam do planejamento e estimativa do trabalho que podem realizar em cada Sprint.
  • Seguem práticas de desenvolvimento sustentável.
  • Jeff Bezos, fundador da Amazon, recomenda a regra de duas pizzas para decidir o tamanho da equipe: a equipe deve ser pequena o bastante para dividir duas pizzas.

Eventos do Scrum

🏁 Sprint

  • Duração: 1 a 4 semanas.
  • Objetivo: Entregar um incremento funcional do produto.
  • Características:
    • Começa com a Sprint Planning e termina com a Retrospective.
    • A Meta da Sprint não deve ser alterada durante o ciclo.

📅 Sprint Planning

  • Objetivo: Definir o que será feito na Sprint e como será feito.
  • Atividades:
    • PO apresenta itens do Product Backlog.
    • Time seleciona os itens que podem ser concluídos.
    • Define-se a Meta da Sprint.

☀️ Daily Scrum

  • Duração: Máximo 15 minutos.
  • Formato: Cada membro responde:
    1. O que fez ontem?
    2. O que fará hoje?
    3. Existe algum impedimento?
  • Objetivo: Sincronizar o time, identificar problemas e ajustar o trabalho rapidamente.

🎬 Sprint Review

  • Objetivo: Inspecionar o incremento e coletar feedback dos stakeholders.
  • Atividades:
    • Time apresenta funcionalidades concluídas.
    • PO e stakeholders dão feedback.
    • Ajustes são feitos no Product Backlog conforme necessário.

🔍 Sprint Retrospective

  • Objetivo: Melhorar continuamente o processo e a colaboração do time.
  • Perguntas fundamentais:
    • O que funcionou bem?
    • O que não funcionou?
    • O que podemos melhorar na próxima Sprint?

Por que o Scrum é importante no desenvolvimento de software?

Manutenção da qualidade:

  • As verificações de qualidade são integradas ao Scrum. O feedback constante do Product Owner e as revisões da Sprint garantem que os requisitos permaneçam relevantes e o produto seja continuamente aprimorado.

Aumento do retorno sobre o investimento:

  • O Scrum prioriza os requisitos de maior valor para o cliente, foca em entregar rapidamente um produto funcional e reduz custos com defeitos e retrabalho.

Equipes mais felizes e produtivas:

  • Estruturas autogerenciadas permitem criatividade, aprendizado mútuo e maior motivação, criando um ambiente de confiança e colaboração.

Métricas para melhorar estimativas:

  • A equipe define suas métricas e estimativas de prazos, orçamento e qualidade, recebendo feedback constante das partes interessadas para manter o projeto no caminho certo.