Formação BackEnd

Metodologias Ágeis e Scrum para Desenvolvedores

Módulo: JavaScript Backend

Prof. Tiago Segato

Logo Bolsa Futuro Digital

Visão Geral da Aula

Nesta aula, exploraremos os conceitos fundamentais das Metodologias Ágeis, com foco no framework Scrum, essencial para o desenvolvimento de software moderno.

Tópicos Abordados:

  • O que são metodologias Ágeis
  • Intro - Scrum
  • Quem é o Product Owner?
  • Responsabilidades do Product Owner
  • Quem é o Scrum Master?
  • Responsabilidades do Scrum Master
  • O que o Scrum Master não é
  • Dev Team e Scrum Team
  • Ciclo de vida Scrum
  • Product Backlog
  • Product Backlog priorizado
  • Sprint Planning
  • Sprint Backlog
  • Daily Scrum
  • Sprint Review
  • Sprint Retrospective
"Agilidade é a capacidade de criar e responder à mudança para lucrar em um ambiente incerto e turbulento."

O que são Metodologias Ágeis?

Metodologias Ágeis são abordagens iterativas e incrementais para o desenvolvimento de software, focadas na entrega contínua de valor e na adaptação a mudanças.

Valores do Manifesto Ágil:

  • Indivíduos e interações mais que processos e ferramentas
  • Software em funcionamento mais que documentação abrangente
  • Colaboração com o cliente mais que negociação de contratos
  • Responder a mudanças mais que seguir um plano

Princípios do Manifesto Ágil:

  • Nossa maior prioridade é satisfazer o cliente através da entrega contínua e antecipada de software de valor.
  • Aceitar mudanças nos requisitos, mesmo no fim do desenvolvimento. Processos ágeis tiram vantagem das mudanças para dar vantagem competitiva ao cliente.
  • Entregar software funcionando frequentemente, de algumas semanas a alguns meses, com preferência a prazos mais curtos.
  • Pessoas de negócio e desenvolvedores devem trabalhar juntos diariamente durante todo o projeto.
  • Construir projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte de que precisam e confie neles para fazer o trabalho.
  • O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é a conversa face a face.
  • Software funcionando é a medida primária de progresso.
  • Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente.
  • A atenção contínua à excelência técnica e bom design aumenta a agilidade.
  • Simplicidade – a arte de maximizar a quantidade de trabalho não feito – é essencial.
  • As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis.
  • Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então ajusta e otimiza seu comportamento de acordo.

Introdução ao Scrum

Scrum é um framework ágil para gerenciar projetos complexos, especialmente no desenvolvimento de software. Ele promove a colaboração, a auto-organização e a entrega iterativa.

Pilares do Scrum:

  • Transparência: Todos os aspectos do processo devem ser visíveis para todos os envolvidos.
  • Inspeção: O progresso e os artefatos devem ser inspecionados frequentemente para detectar desvios indesejados.
  • Adaptação: Se um desvio for detectado, o processo ou o produto deve ser ajustado o mais rápido possível.

Valores do Scrum:

  • Comprometimento: Pessoas se comprometem pessoalmente a atingir os objetivos da equipe.
  • Foco: Todos se concentram no trabalho da Sprint e nos objetivos da equipe.
  • Abertura: A equipe e os stakeholders são abertos sobre o trabalho e os desafios.
  • Respeito: Os membros da equipe se respeitam como indivíduos capazes e independentes.
  • Coragem: Ter a coragem de fazer a coisa certa e trabalhar em problemas difíceis.

O Papel do Product Owner

O Product Owner (PO) é o responsável por maximizar o valor do produto resultante do trabalho do Time de Desenvolvimento.

Responsabilidades do Product Owner:

  • Gerenciamento do Product Backlog: Criar, refinar e priorizar os itens do Product Backlog.
  • Visão do Produto: Articular claramente a visão do produto e garantir que todos a compreendam.
  • Stakeholders: Ser a ponte entre o Time de Desenvolvimento e os stakeholders (clientes, usuários, gerência).
  • Disponibilidade: Estar disponível para o Time de Desenvolvimento para esclarecer dúvidas sobre os itens do Product Backlog.
  • Aceitação: Decidir se o trabalho entregue pelo Time de Desenvolvimento é aceitável.
"O Product Owner é a voz do cliente e do negócio dentro do Time Scrum."

O Papel do Scrum Master

O Scrum Master é um líder-servidor para o Time Scrum e para a organização. Ele ajuda a todos a entender a teoria, práticas, regras e valores do Scrum.

Responsabilidades do Scrum Master:

  • Facilitador: Facilita os eventos Scrum e ajuda a equipe a manter o foco.
  • Removedor de Impedimentos: Identifica e remove obstáculos que impedem o progresso da equipe.
  • Coach: Orienta o Time de Desenvolvimento e o Product Owner sobre as melhores práticas do Scrum.
  • Guardião do Processo: Garante que o Scrum seja compreendido e aplicado corretamente.
  • Promotor da Auto-organização: Ajuda a equipe a se tornar auto-organizada e multifuncional.
"O Scrum Master é o guardião do Scrum, garantindo que o framework seja seguido e que a equipe possa entregar valor."

O que o Scrum Master Não É

É comum haver equívocos sobre o papel do Scrum Master. Ele não é:

  • Gerente de Projeto Tradicional: Não gerencia pessoas ou o escopo do projeto de forma tradicional.
  • Secretário: Não é responsável por registrar todas as decisões ou atas de reunião.
  • Líder Técnico: Não toma decisões técnicas pela equipe.
  • Pessoa de Suporte: Embora remova impedimentos, não é um suporte técnico direto.
  • Ditador: Não impõe regras ou decisões à equipe.
"O Scrum Master empodera a equipe, não a controla."

Dev Team e Scrum Team

Time de Desenvolvimento (Dev Team)

  • Profissionais que entregam um Incremento "Pronto" a cada Sprint.
  • Auto-organizado e multifuncional.
  • Não há hierarquias internas.
  • Responsável por como o trabalho é feito.

Time Scrum

Composto por:

  • Product Owner
  • Scrum Master
  • Time de Desenvolvimento

É uma unidade coesa de profissionais focada em um objetivo comum: entregar um produto de valor.

"O Time Scrum é a unidade fundamental do Scrum, trabalhando em conjunto para alcançar o objetivo da Sprint."

Ciclo de Vida do Scrum

O Scrum opera em ciclos de tempo fixo chamados Sprints, geralmente de 1 a 4 semanas.

Etapas Principais:

  1. Sprint Planning: O Time Scrum planeja o trabalho a ser realizado na Sprint.
  2. Daily Scrum: Reunião diária de 15 minutos para sincronização e planejamento do dia.
  3. Desenvolvimento: O Time de Desenvolvimento trabalha nos itens do Sprint Backlog.
  4. Sprint Review: O Time Scrum e os stakeholders inspecionam o Incremento e adaptam o Product Backlog.
  5. Sprint Retrospective: O Time Scrum inspeciona a si mesmo e cria um plano para melhorias na próxima Sprint.
"O ciclo de vida do Scrum é um loop contínuo de planejamento, execução, inspeção e adaptação."

Product Backlog e Product Backlog Priorizado

Product Backlog

  • Lista ordenada de tudo o que é conhecido por ser necessário no produto.
  • É dinâmico e evolui constantemente.
  • Contém funcionalidades, requisitos, melhorias e correções.
  • É de responsabilidade do Product Owner.

Product Backlog Priorizado

  • O Product Backlog é continuamente refinado e priorizado pelo Product Owner.
  • A priorização é baseada em valor, risco, dependências e esforço.
  • Os itens de maior prioridade são mais detalhados e prontos para serem trabalhados nas Sprints.
"O Product Backlog é a única fonte de trabalho para o Time Scrum."

Sprint Planning e Sprint Backlog

Sprint Planning

  • Evento que inicia a Sprint.
  • O Time Scrum colabora para definir o Objetivo da Sprint e selecionar os itens do Product Backlog.
  • Responde a duas perguntas: O que será entregue nesta Sprint? Como o trabalho será feito?

Sprint Backlog

  • Conjunto de itens do Product Backlog selecionados para a Sprint, mais o plano para entregá-los.
  • É um plano altamente visível e em tempo real do trabalho que o Time de Desenvolvimento pretende realizar.
  • Pertence exclusivamente ao Time de Desenvolvimento.
"O Sprint Planning define o que será feito e o Sprint Backlog detalha como."

Daily Scrum

A Daily Scrum é uma reunião diária de 15 minutos para o Time de Desenvolvimento inspecionar o progresso em direção ao Objetivo da Sprint e adaptar o Sprint Backlog, se necessário.

Propósito:

  • Sincronizar as atividades e criar um plano para as próximas 24 horas.
  • Identificar impedimentos.
  • Promover a auto-organização da equipe.

Formato:

  • Realizada no mesmo horário e local todos os dias.
  • Apenas o Time de Desenvolvimento participa ativamente.
  • Cada membro responde a perguntas como: O que fiz ontem que ajudou o Time de Desenvolvimento a atingir o Objetivo da Sprint? O que farei hoje para ajudar o Time de Desenvolvimento a atingir o Objetivo da Sprint? Há algum impedimento que me impeça ou ao Time de Desenvolvimento de atingir o Objetivo da Sprint?
"A Daily Scrum é a oportunidade diária da equipe para se alinhar e planejar o caminho para o sucesso da Sprint."

Sprint Review

A Sprint Review é um evento no final da Sprint para inspecionar o Incremento e adaptar o Product Backlog, se necessário.

Propósito:

  • Demonstrar o trabalho "Pronto" realizado na Sprint.
  • Coletar feedback dos stakeholders.
  • Colaborar sobre o que fazer a seguir para otimizar o valor.

Participantes:

  • Time Scrum (Product Owner, Scrum Master, Time de Desenvolvimento)
  • Stakeholders convidados pelo Product Owner
"A Sprint Review é a oportunidade de inspecionar o produto e colaborar para o futuro."

Sprint Retrospective

A Sprint Retrospective é uma oportunidade para o Time Scrum inspecionar a si mesmo e criar um plano para melhorias que serão implementadas na próxima Sprint.

Propósito:

  • Inspecionar como a última Sprint foi em relação a indivíduos, interações, processos e ferramentas.
  • Identificar o que correu bem e o que pode ser melhorado.
  • Criar um plano de ações para implementar melhorias na próxima Sprint.

Foco:

  • Pessoas e relacionamentos.
  • Processos e ferramentas.
  • Definição de Pronto.
"A Sprint Retrospective é o motor da melhoria contínua no Scrum."

Conclusão

As Metodologias Ágeis, com o Scrum como um framework proeminente, oferecem uma abordagem flexível e eficaz para o desenvolvimento de software. Compreender os papéis, eventos e artefatos do Scrum é fundamental para equipes que buscam entregar valor de forma contínua e adaptável.

Pontos Chave:

  • Agilidade foca em indivíduos, software funcionando, colaboração e resposta a mudanças.
  • Scrum é um framework com pilares de Transparência, Inspeção e Adaptação.
  • Os papéis de Product Owner, Scrum Master e Time de Desenvolvimento são cruciais.
  • Eventos como Sprint Planning, Daily Scrum, Sprint Review e Sprint Retrospective impulsionam o ciclo.
  • Artefatos como Product Backlog e Sprint Backlog guiam o trabalho.
"Dominar as Metodologias Ágeis e o Scrum é um diferencial para qualquer desenvolvedor no mercado atual."