O Scrum é uma metodologia ágil amplamente utilizada no desenvolvimento de software e em outros contextos organizacionais. Ele promove a colaboração, a flexibilidade e a entrega contínua de valor ao cliente, dividindo projetos em ciclos menores e gerenciáveis chamados sprints.
Com foco em equipes auto-organizadas, transparência e adaptação, o Scrum ajuda empresas a responderem rapidamente às mudanças e a manterem o cliente no centro do processo.
- Introdução à Agilidade e Princípios
- Agilidade
- Scrum
- Papéis no Scrum
- Cerimônias do Scrum
- Artefatos do Scrum
- Ferramentas do Scrum
- Gestão de Liberações (Release Management)
O que é?
Scrum é um framework ágil projetado para gerenciar projetos complexos e adaptativos. Ele se baseia na colaboração entre equipes multifuncionais, auto-organizadas e na entrega incremental de valor. A abordagem é altamente iterativa, com ciclos curtos chamados sprints, que garantem revisões frequentes e ajustes necessários ao longo do desenvolvimento.
Seu nome vem de uma jogada do rugby, simbolizando trabalho em equipe para alcançar um objetivo.
Historicamente, a humanidade tem se deparado com projetos que demandam soluções únicas, sejam grandes construções, desenvolvimento de produtos ou implementações tecnológicas. Cada projeto envolve um objetivo específico e recursos limitados.
Segundo o Project Management Institute (PMI), projeto é "um esforço temporário realizado para criar um produto, serviço ou resultado exclusivo". Essa definição destaca a singularidade de cada projeto e sua natureza temporária, em contraste com atividades rotineiras.
Para estruturar e unificar o conhecimento na área, o PMI criou o Project Management Body of Knowledge (PMBOK), um guia que organiza processos, ferramentas e melhores práticas para gestão de projetos.
O PMBOK aborda os 49 processos de gestão de projetos, distribuídos em 10 áreas de conhecimento e 5 grupos de processos. Essas áreas são:
- Integração: Coordenação dos elementos do projeto.
- Escopo: Garantir que o trabalho necessário seja concluído.
- Cronograma: Planejamento e controle de prazos.
- Custos: Gestão de orçamento e controle de gastos.
- Qualidade: Entrega de resultados que atendam aos padrões esperados.
- Recursos: Gerenciamento de equipe e alocação de recursos.
- Comunicações: Fluxo de informações entre stakeholders.
- Riscos: Identificação e mitigação de incertezas.
- Aquisições: Gerenciamento de contratos e fornecedores.
- Partes Interessadas: Gerir expectativas e influências dos envolvidos.
- PMI (Project Management Institute): Instituição responsável por estabelecer padrões globais de gestão de projetos.
- PMBOK (Project Management Body of Knowledge): Guia com melhores práticas para gestão de projetos.
- PMP (Project Management Professional): Certificação que valida conhecimento e experiência em gestão de projetos, baseada no PMBOK.
Scrum é mais eficaz em projetos com alta incerteza ou complexidade, onde mudanças são esperadas. Para compreender isso, é essencial conhecer o Modelo Cynefin, que categoriza problemas e ambientes em quatro domínios:
- Simples: Soluções evidentes baseadas em boas práticas.
- Exemplo: Montagem de móveis seguindo um manual.
- Complicados: Exigem análise e experiência técnica.
- Exemplo: Planejamento de uma viagem internacional.
- Complexos: Soluções emergem através de experimentação.
- Exemplo: Desenvolvimento de um novo software.
- Caóticos: Demandam ações imediatas para estabilizar a situação.
- Exemplo: Gerenciamento de crises em segurança cibernética.
O Scrum se destaca no domínio complexo, onde mudanças rápidas e colaboração constante são indispensáveis.
Agilidade é uma mentalidade que privilegia flexibilidade, adaptação e a entrega contínua de valor. Mais do que um conjunto de práticas, é um mindset que prioriza as pessoas e a colaboração em detrimento de processos rígidos.
Criado em 2001, o Manifesto Ágil é um marco na história do desenvolvimento de software. Ele afirma que:
- Indivíduos e interações são mais importantes que processos e ferramentas.
- Software funcional vale mais do que documentação extensiva.
- Colaboração com o cliente é superior à negociação de contratos.
- Responder às mudanças é mais eficaz do que seguir um plano.
- Satisfazer o cliente com entregas contínuas e rápidas.
- Aceitar mudanças, mesmo no final do projeto.
- Entregar software funcionando frequentemente.
- Colaboração diária entre negócios e desenvolvimento.
- Confiar em equipes motivadas, fornecendo suporte e autonomia.
- Comunicação face a face como a mais eficaz.
- Software funcional é a medida principal de progresso.
- Ritmos sustentáveis para patrocinadores e equipes.
- Excelência técnica aumenta a agilidade.
- Simplicidade é essencial.
- Times auto-organizáveis criam melhores soluções.
- Reflexão contínua para ajustar e melhorar.
Método visual para gerenciamento de fluxo de trabalho. Usando colunas como "A Fazer", "Em Progresso" e "Concluído", o Kanban facilita a priorização e identificação de gargalos.
- Interativo: Entregas em ciclos fixos e curtos, como sprints.
- Exemplo: Revisão semanal de progresso com stakeholders.
- Incremental: Entregas de partes funcionais do software, crescendo progressivamente.
- Exemplo: Primeiro ciclo entrega login; segundo, perfil do usuário.
Esses modelos são complementares e frequentemente usados juntos.
Inspirado nos estudos de Hirotaka Takeuchi e Ikujiro Nonaka sobre equipes de alta performance no desenvolvimento de produtos, o Scrum foi formalizado por Jeff Sutherland e Ken Schwaber na década de 1990.
O Scrum é guiado por três pilares:
- Transparência: Todos os aspectos significativos devem ser visíveis.
- Inspeção: Revisões frequentes para detectar problemas.
- Adaptação: Ajustes baseados em feedback e inspeção.
Os cinco valores do Scrum são:
- Coragem: Enfrentar desafios sem medo.
- Foco: Concentração no que é importante.
- Compromisso: Entregar o que foi prometido.
- Respeito: Valorizar pessoas e suas contribuições.
- Abertura: Aceitar feedback e mudanças.
- Scrum Master: Líder servidor que garante o funcionamento do Scrum.
- Product Owner: Representa os interesses dos stakeholders e define prioridades.
- Time de Desenvolvimento: Construtores do produto, auto-organizados e multidisciplinares.
Características do Time Scrum:
- Comunicação: Frequente e transparente.
- Tamanho Ideal: 3 a 9 membros.
- Autonomia: Decide como o trabalho será realizado.
As cerimônias se alinham ao ciclo PDCA:
- Planejamento da Sprint (Plan): Definir backlog e metas.
- Daily Scrum (Do): Reuniões diárias de alinhamento.
- Revisão da Sprint (Check): Apresentação do incremento ao cliente.
- Retrospectiva da Sprint (Act): Analisar lições aprendidas e melhorar processos.
A Sprint Planning é a primeira cerimônia do Scrum, realizada no início de cada Sprint. Seu objetivo é determinar:
- O que será feito: definição das histórias ou requisitos a serem desenvolvidos.
- Como será feito: planejamento técnico e organização das tarefas.
- Time-box: 8 horas para Sprints de 4 semanas ou 4 horas para Sprints de 2 semanas.
- Dividida em duas partes:
- Parte 1 - O que iremos fazer?
O Product Owner apresenta os itens priorizados do backlog do produto e o time seleciona o que será entregue. - Parte 2 - Como iremos fazer?
O time de desenvolvimento detalha as tarefas necessárias para concluir os itens escolhidos.
- Parte 1 - O que iremos fazer?
O Planning Poker é uma técnica para estimar o esforço necessário para cada funcionalidade, utilizando a sequência de Fibonacci (1, 2, 3, 5, 8, 13, etc.).
- Quem participa? Apenas os desenvolvedores fazem as estimativas.
- Por quê? Eles possuem o conhecimento técnico e prático para avaliar a complexidade, esforço e tempo necessários para cada funcionalidade.
- Funcionalidade de 1 ponto: simples e rápida.
- Funcionalidade de 13 pontos: complexa, demandando mais tempo e esforço.
A Daily Scrum ou Daily Meeting é uma cerimônia rápida para alinhamento da equipe.
- Duração: Máximo de 15 minutos.
- Perguntas principais:
- O que foi feito nas últimas 24 horas?
- O que será feito nas próximas 24 horas?
- Quais são os impedimentos?
- Idealmente, apenas o time de desenvolvimento.
- O Scrum Master pode estar presente para facilitar a reunião e ajudar a remover impedimentos.
A Revisão da Sprint é a penúltima cerimônia do Scrum, onde o time de desenvolvimento apresenta o incremento ao Product Owner e demais stakeholders.
- Objetivo: Validar os critérios de aceitação e receber feedback sobre o trabalho realizado.
- Time-box: 4 horas para Sprints de 4 semanas.
A Retrospectiva é a última cerimônia do Scrum, voltada à melhoria contínua.
- Objetivo: Refletir sobre a Sprint e identificar pontos de melhoria.
- Perguntas importantes:
- O que foi benéfico e deve ser mantido?
- O que foi prejudicial e precisa ser melhorado?
- Quais planos de ação serão implementados?
Lista ordenada de tudo que é necessário para o produto.
- Responsável: Product Owner.
- Conteúdo: Requisitos funcionais, não funcionais e histórias de usuários.
Lista de requisitos priorizados pelo Product Owner e selecionados para a Sprint.
- Formalizado: Durante a Sprint Planning.
- Conteúdo: Divisão detalhada das tarefas técnicas que o time irá realizar.
É o conjunto de itens concluídos na Sprint e considerados "prontos" de acordo com a definição de pronto (Definition of Done).
- Exemplo básico: Um formulário de login funcional e validado com todos os critérios implementados.
Forma de descrever requisitos ou funcionalidades do produto.
- Estruturada em:
- Ator: Quem realiza a ação.
- Ação: O que o ator deseja fazer.
- Objetivo: O motivo da ação.
Uma boa história de usuário segue o acrônimo INVEST:
- I: Independente (não depende de outras histórias).
- N: Negociável (pode ser alterada).
- V: Valiosa (agrega valor ao usuário ou cliente).
- E: Estimável (pode ser estimada).
- S: Pequena (divisível em tarefas menores).
- T: Testável (tem critérios claros de aceitação).
O Scrum conta com ferramentas que auxiliam na organização e no acompanhamento do trabalho:
- Kanban: Quadro visual para gerenciar o fluxo de trabalho.
- Burndown Chart: Gráfico que monitora o progresso do trabalho em relação ao tempo.
- Backlog Refinement: Revisão contínua dos itens do backlog para mantê-los claros e priorizados.
Release significa liberação. É o momento em que um incremento "pronto" é disponibilizado para o cliente.
- Nem todo incremento pronto precisa ser liberado imediatamente em produção.
- Baseado na entrega: Liberação após conclusão de todas as funcionalidades planejadas.
- Entregas regulares: Lançamentos em intervalos fixos (ex.: a cada 2 semanas).
- Entrega em valor: Priorização de itens de maior impacto para o cliente.
Passos para planejar uma release:
- Tamanho da Sprint: Definir a duração das Sprints (ex.: 2 semanas).
- Velocidade do Time: Medir o número médio de histórias concluídas por Sprint.
- Estratégia de Release: Escolher o tipo de liberação.
- Objetivos da Release: Identificar os resultados esperados.
- Quantidade de Sprints: Calcular o número necessário para atender os objetivos.
- Histórias a serem entregues: Selecionar requisitos priorizados.
- Burndown da Liberação (Release Burndown): Monitora o progresso do trabalho restante até a conclusão da release.
- Burndown da Sprint: Indica o trabalho restante dentro de uma Sprint.