Métodos Ágeis

Métodos Ágeis

Métodos Ágeis: Introdução e Conceitos

O que são Métodos Ágeis?

  • A gravação inicia com uma introdução aos métodos ágeis, abordando princípios e características comuns que contribuem para seu sucesso no mercado.
  • Os métodos ágeis surgiram a partir do Manifesto Ágil, criado em fevereiro de 2001 por 17 especialistas em desenvolvimento de software, como resposta a problemas de atrasos e orçamentos estourados.
  • A modelagem ágil é discutida como uma prática importante dentro dos métodos ágeis, focando na compreensão do design ao invés da documentação.
  • O Extreme Programming (XP) é destacado como o método ágil mais famoso, com foco em seus valores e práticas.
  • Também será abordado o Scrum, um método utilizado para planejamento e execução de projetos de software.

Características Comuns dos Métodos Ágeis

  • Não existe uma definição única para métodos ágeis; as respostas variam entre profissionais. No entanto, algumas características são compartilhadas.
  • Desenvolvimento iterativo é um conceito central; o trabalho é guiado por listas de tarefas priorizadas.
  • O desenvolvimento "Baby Steps" permite que pequenas funcionalidades sejam implementadas gradualmente sem sobrecarregar a equipe.
  • Equipes multifuncionais e auto-organizáveis são fundamentais; os times se organizam autonomamente para atender objetivos durante iterações chamadas Sprints no Scrum.
  • A confiança entre membros da equipe e stakeholders é essencial para o sucesso dos projetos.

Entregas e Medidas de Progresso

  • As entregas devem ser prontas para produção ao final das iterações; não se entrega apenas documentação, mas código funcional.
  • A principal medida de progresso nos métodos ágeis é o código funcionando, não a documentação extensa.
  • Testes automatizados e integração contínua são práticas comuns; cada commit deve passar por testes automáticos antes da produção.

Aceitação de Mudanças

  • Os métodos ágeis aceitam mudanças constantes nos requisitos; isso requer inspeção contínua do desenvolvimento do projeto baseado em feedback regular.

Métodos Ágeis: Características e Princípios

Características dos Métodos Ágeis

  • Os métodos ágeis permitem que planos, listas de tarefas e requisitos sejam refinados e evoluídos ao longo do projeto, sem uma análise de requisitos inicial detalhada.
  • O planejamento evolutivo é fundamental; os requisitos são detalhados no momento oportuno para a implementação, evitando excessos de documentação.
  • Um dos principais desafios no desenvolvimento de software é o abismo entre clientes (que entendem o negócio) e desenvolvedores (que entendem a tecnologia). Métodos ágeis promovem acompanhamento frequente com o cliente.
  • A presença constante do cliente na equipe ajuda a esclarecer ambiguidades e foca nas funcionalidades que mais agregam valor ao produto final.
  • Todos os métodos ágeis reconhecem a necessidade de se adaptar à natureza dinâmica do processo de construção de software.

O Manifesto Ágil

  • Em fevereiro de 2001, 17 pensadores se reuniram em Utah para criar o Manifesto Ágil, visando resolver problemas comuns em projetos de software que não eram concluídos dentro do prazo ou orçamento.
  • O manifesto surgiu como resposta às dificuldades enfrentadas na entrega pontual e com qualidade nos projetos, estabelecendo diretrizes para um desenvolvimento mais eficiente.
  • O resultado foi um conjunto conhecido como Manifesto Ágil, que delineia valores e princípios fundamentais para melhorar a qualidade do desenvolvimento de software.

Valores Fundamentais do Manifesto Ágil

  • Os valores centrais incluem priorizar indivíduos e interações sobre processos e ferramentas. Isso enfatiza a importância da colaboração entre todos os envolvidos no projeto.
  • É mais importante ter software funcionando do que manter documentação abrangente. A colaboração contínua com o cliente é preferível à negociação contratual rígida.
  • Responder rapidamente às mudanças é considerado mais valioso do que seguir estritamente um plano predefinido.

Princípios do Manifesto Ágil

  • O primeiro princípio destaca a satisfação do cliente através da entrega contínua de software valioso.
  • Aceitar mudanças nos requisitos mesmo nas fases finais é crucial para garantir vantagens competitivas ao cliente.
  • Entregar software funcional frequentemente deve ser priorizado, favorecendo iterações curtas para reduzir o abismo entre clientes e desenvolvedores.
  • A colaboração diária entre executivos relacionados aos negócios e desenvolvedores é essencial durante todo o projeto para garantir alinhamento nas expectativas.

Princípios Ágeis e Modelagem

Comunicação e Sustentabilidade no Desenvolvimento

  • O primeiro princípio ágil enfatiza a importância da comunicação face a face entre os envolvidos no projeto, promovendo um ambiente colaborativo.
  • O conceito de ritmo sustentável é destacado, onde equipes devem manter um fluxo constante de trabalho sem sobrecarga, evitando burnout e garantindo produtividade a longo prazo.

Excelência Técnica e Simplicidade

  • A atenção à excelência técnica é crucial; práticas como testes automatizados e refatoração melhoram o design dos aplicativos, facilitando manutenção e expansão.
  • O décimo princípio ágil aborda a simplicidade, que envolve maximizar o trabalho que não precisa ser feito, focando em funcionalidades que realmente trazem retorno ao cliente.

Auto-organização e Reflexão Contínua

  • Times auto-organizáveis são fundamentais para emergir as melhores arquiteturas e designs, promovendo autonomia na equipe.
  • A reflexão regular permite que as equipes ajustem suas práticas com base em feedback contínuo, otimizando seu desempenho ao longo do desenvolvimento.

Modelagem Ágil: Práticas e Valores

  • Scott Ambler introduz a modelagem ágil como uma prática para entender designs sem necessidade de documentação excessiva.
  • É recomendado usar ferramentas simples para modelagem colaborativa, permitindo que várias pessoas contribuam simultaneamente para o entendimento do design.

Importância da UML e Criação Colaborativa

  • A UML cresceu significativamente nos últimos anos; no entanto, deve-se utilizar apenas os elementos necessários que agreguem valor ao projeto.
  • Os modelos devem ser criados pelos desenvolvedores para facilitar sua compreensão pessoal e comunicação com outros membros da equipe.

Diferenças entre Modelagem Ágil e Engenharia Dirigida por Modelos

  • A engenharia dirigida por modelos (MDA) difere da modelagem ágil; enquanto MDA utiliza modelos como força motriz para gerar código executável, a modelagem ágil foca na colaboração e entendimento do design.

XP: Um Método Ágil Focado em Adaptação

Introdução ao Extreme Programming (XP)

Conceitos Fundamentais do XP

  • O Extreme Programming (XP) reúne regras já conhecidas no desenvolvimento de software, mas as organiza de uma nova maneira para que funcionem em conjunto.
  • As principais variáveis de controle em projetos segundo o PMBOK são custo, tempo, qualidade e escopo; no XP, há uma ênfase especial na priorização do escopo.
  • O XP prioriza funcionalidades que trazem maior valor para o negócio; se necessário reduzir o escopo, as funcionalidades menos valiosas são adiadas ou canceladas.

Valores Centrais do XP

  • Os valores fundamentais do XP incluem comunicação diária entre todos os membros da equipe e simplicidade nas soluções propostas.
  • Feedback rápido é essencial; a entrega frequente de software permite ajustes contínuos com base nas necessidades dos usuários.
  • A coragem é um valor importante: todos devem ser transparentes sobre o progresso e as estimativas. O respeito entre todos os envolvidos também é crucial.

Regras de Planejamento no XP

  • O planejamento no XP é baseado em histórias de usuário escritas pelo cliente; liberações pequenas e frequentes são essenciais.
  • As interações começam com planejamento onde os desenvolvedores estimam esforços necessários; isso se alinha com práticas do Scrum.

Gestão e Dinâmica da Equipe

  • No XP, promove-se um ambiente de trabalho aberto e sustentável, com semanas limitadas a 40 horas sem horas extras permitidas.
  • Reuniões diárias rápidas ajudam a monitorar o progresso e identificar problemas rapidamente.

Design e Prototipagem no XP

  • O design dentro do XP busca simplicidade; utiliza-se metáforas para facilitar a compreensão entre desenvolvedores e gerentes sobre o produto final.
  • Técnicas como cartões CRC (Classe e Responsabilidade dos Colaboradores), TDD (Desenvolvimento Orientado a Testes), refatoração e Domain Driven Design são utilizadas para melhorar o design dos objetos.

Minimização de Riscos com Spikes

  • "Spikes" são protótipos funcionais criados para mitigar riscos associados a histórias de usuário complexas ou incertas.

Objetivos do XP e Refatoração

Refatoração no XP

  • A refatoração é uma parte essencial do método XP, que se baseia no conceito de desenvolvimento orientado a testes (TDD). A refatoração ocorre após a criação dos testes unitários.
  • O XP recomenda a definição de padrões de codificação desde o início do projeto para facilitar a manutenção do código. Isso garante que todos os desenvolvedores sigam as mesmas diretrizes.

Programação em Pares

  • Estudos mostram que a programação em pares pode reduzir o tempo de desenvolvimento em até 88%, enquanto a taxa de erros diminui pela metade quando comparada ao trabalho individual.
  • No XP, apenas um par integra o código por vez, promovendo integrações frequentes com testes automatizados para garantir qualidade contínua.

Integração Contínua

  • O XP utiliza integração contínua para automatizar as integrações frequentes. Um servidor dedicado é configurado para executar testes automaticamente sempre que um novo requisito é comitado.
  • O conceito de propriedade coletiva do código permite que qualquer membro da equipe altere o código, desde que todos os testes necessários sejam aprovados.

Testes no XP

Regras para Testes

  • Todo código desenvolvido sob o XP deve ter testes unitários e passar por eles antes da liberação. Novos testes são criados sempre que um bug é encontrado.
  • Os resultados dos testes são publicados frequentemente, garantindo transparência e acompanhamento das alterações realizadas no código.

Histórias de Usuário

Captura de Requisitos

  • As histórias de usuário são fundamentais no planejamento e na liberação dentro do método ágil conhecido como XP. Elas ajudam a determinar requisitos e cenários para os testes de aceitação.
  • Cada história representa um cenário específico dentro de um caso de uso mais amplo, permitindo uma abordagem focada nas necessidades reais dos usuários.

Diretrizes para Histórias

  • O acrônimo INVEST é utilizado como diretriz para criar boas histórias: Independente, Negociável, Valiosa, Estimável, Pequena e Testável.
  • As histórias devem descrever claramente os objetivos do usuário em relação ao sistema, destacando seu papel e valor esperado.

Template para Histórias de Usuário

Estrutura Proposta

  • Um template sugerido por Mike Cohn ajuda na escrita das histórias: "Como [tipo de usuário], eu quero [objetivo] para que [valor]". Esse formato facilita a clareza durante as reuniões de planejamento.

Importância das Histórias de Usuário no Desenvolvimento Ágil

Casos de Uso e o Acrônimo INVESTE

  • Bill Wake introduz o acrônimo INVESTE para guiar a escrita de histórias de usuário, enfatizando a importância da Independência entre elas.
  • As histórias devem ser negociáveis, não funcionando como contratos rígidos, permitindo flexibilidade na definição dos requisitos.
  • A história deve ter um objetivo claro e valor definido, com detalhes que podem ser explorados posteriormente conforme necessário.

Características das Histórias de Usuário

  • As histórias precisam demonstrar valor para os clientes e stakeholders, sendo essenciais para a negociação eficaz.
  • Devem ser estimáveis, apresentando detalhes suficientes para que o esforço necessário seja avaliado adequadamente.
  • O tamanho das histórias deve ser adequado; recomenda-se que sejam pequenas o suficiente para serem completadas em uma iteração (não mais que duas semanas).

Estrutura e Testabilidade das Histórias

  • As histórias podem começar em um nível alto de abstração (Epic), sendo detalhadas posteriormente conforme se aproxima do desenvolvimento.
  • É crucial que as histórias sejam testáveis, com critérios de aceitação claros e testes automatizados sempre que possível.

Exemplo Prático de História de Usuário

  • Um exemplo prático é: "Enquanto usuário registrado, eu quero poder pesquisar no catálogo online", destacando a necessidade do benefício desejado.
  • Cartões são frequentemente usados nas reuniões para indexar essas histórias, podendo incluir layouts ou narrativas sobre fluxos.

Papel do Scrum Master e Product Owner

  • Os testes de aceitação são fundamentais junto à definição pronta, ajudando a equipe a verificar se os requisitos foram atendidos corretamente durante as iterações.
  • O método ágil prescreve papéis importantes como os "porcos" (envolvidos diretamente no projeto) e "galinhas" (stakeholders interessados mas não envolvidos diariamente).

Responsabilidades do Product Owner

  • O Product Owner é responsável por gerenciar o backlog do produto e garantir o valor do trabalho desenvolvido pela equipe.

O Papel do Product Owner e da Equipe Scrum

Funções do Product Owner

  • O Product Owner é responsável pelo retorno de investimento do projeto, priorizando itens no Product Backlog.
  • Ele aceita os resultados do trabalho e deve garantir que as prioridades não atrapalhem o objetivo da equipe.

Características da Equipe Scrum

  • A equipe Scrum é multifuncional e auto-organizável, idealmente composta por 5 a 9 pessoas.
  • O time define o objetivo de cada Sprint, comprometendo-se a demonstrar os resultados ao final.

Papel do Scrum Master

  • O Scrum Master gerencia interesses entre o Product Owner e a equipe, promovendo bem-estar e produtividade.
  • Ele estimula comunicação e cooperação entre todos os membros da equipe, removendo impedimentos que afetam a produtividade.

Remoção de Impedimentos

  • É responsabilidade do Scrum Master eliminar barreiras para que a equipe trabalhe focada nos objetivos da Sprint.
  • Ele garante que os princípios e regras do Scrum sejam respeitados durante todo o processo.

Artefatos no Método Ágil

  • Os principais artefatos incluem visão do produto, product backlog, plano de liberações, sprint backlog e lista de impedimentos.

Introdução ao Método Scrum

Artefatos e Ciclo de Vida do Projeto

  • O método Scrum envolve a produção e monitoramento de artefatos simples durante o ciclo de vida do projeto.
  • É importante entender conceitos fundamentais dentro do Scrum, como o "Time Box", que ajuda a equipe a se concentrar em objetivos sem perder tempo com tarefas desnecessárias.

Conceito de Time Box

  • O "Time Box" é um pilar essencial do Scrum, permitindo que atividades sejam cronometradas para agregar valor rapidamente.
  • Reuniões diárias têm um limite máximo de 15 minutos, enquanto reuniões de planejamento de Sprint são divididas em duas partes de 4 horas cada.

Impedimentos e Definição de Pronto

  • Impedimentos são problemas enfrentados pela equipe que podem impedir o alcance dos objetivos da Sprint; devem ser reportados ao Scrum Master.
  • A definição de "pronto" é crucial no Scrum; um item só é considerado pronto quando está potencialmente implantável.

Importância da Definição de Pronto

  • No Scrum, funcionalidades não são consideradas prontas se estiverem apenas parcialmente concluídas; isso contrasta com abordagens tradicionais.
  • A funcionalidade deve estar pronta para entrar em produção assim que o Product Owner decidir, baseado na definição acordada entre a equipe.

Exemplos da Definição de Pronto

  • Exemplos incluem: análise completa da história do usuário, testes unitários realizados e documentação gerada.
  • A definição deve ser visível para todos os membros da equipe para garantir entendimento claro sobre as expectativas durante a Sprint.

Foco em Objetivos no Método Scrum

  • O método Scrum planeja, executa e reporta progresso baseado em objetivos claros, não em porcentagens ou tarefas isoladas.

Ciclo de Vida do Projeto no Scrum

  • O ciclo inclui planejamento, execução e monitoramento contínuo utilizando uma abordagem ágil iterativa e incremental.

Reunião Inicial: Planejamento da Sprint

  • A reunião inicial (Sprint Planning) tem como objetivo detalhar requisitos, priorizá-los e estimar esforços necessários.

Desenvolvimento Durante a Sprint

Ciclo de Vida do Sprint e Planejamento

Detalhamento do Product Backlog

  • O processo de grooming é essencial para o detalhamento do Product Backlog antes da reunião de planejamento do Sprint, onde as funcionalidades desenvolvidas são apresentadas ao Product Owner.
  • Funcionalidades aceitas pelo Product Owner resultam em um incremento de produto, que é considerado "potencialmente implantável", podendo ser colocado em produção imediatamente.

Reuniões no Ciclo do Sprint

  • O ciclo se repete com a reunião de planejamento, seguida pela revisão e retrospectiva do Sprint, permitindo melhorias contínuas no processo.
  • Sprints curtos são preferidos; idealmente, devem durar entre uma a quatro semanas para facilitar a aproximação com o cliente.

Iniciação do Projeto

  • A primeira reunião de planejamento deve ser precedida por um Business Case ou documento visão que delineie funcionalidades e stakeholders principais.
  • É crucial ter todos os envolvidos na criação do Product Backlog para identificar requisitos relevantes.

Estimativa e Priorização

  • O objetivo final da reunião é ter um Product Backlog priorizado e estimado, permitindo que a equipe divida as tarefas durante o Sprint.
  • Todas as histórias de usuário devem estar estimadas ao final da reunião, mesmo aquelas que não serão incluídas no Sprint atual.

Importância do Prod Backlog

  • O plano de liberação é um artefato importante que fornece previsibilidade sobre quando determinadas funcionalidades serão entregues.
  • O Prod Backlog contém características e requisitos essenciais; recomenda-se usar histórias de usuário como técnica principal para sua elaboração.

Responsabilidades no Prod Backlog

Reunião de Planejamento do Sprint no Scrum

Importância da Colaboração

  • A colaboração intensa entre todos os membros do time de desenvolvimento é essencial para a criação de um Product Backlog adequado durante a reunião de planejamento do Sprint.

Estrutura da Reunião de Planejamento

  • A reunião é dividida em duas partes: a primeira foca na criação do Product Backlog priorizado, enquanto a segunda parte define o Sprint Backlog.
  • O objetivo principal é planejar quais itens serão finalizados dentro do período do Sprint, que pode ser, por exemplo, 30 dias.

Detalhamento dos Artefatos

  • Na primeira parte, o Scrum Master e o Product Owner detalham o Product Backlog, que pode ser representado em documentos ou planilhas com todas as funcionalidades necessárias.
  • Na segunda parte, eles se reúnem para planejar o Sprint baseado no Product Backlog atualizado. O foco deve estar na ordem das tarefas e não nos prazos.

Retorno sobre Investimento

  • Durante a primeira parte da reunião, é crucial discutir o retorno sobre investimento (ROI), onde o Product Owner decide quais itens agregam mais valor ao software.

Estimativas e Tarefas

  • Na segunda parte da reunião, os desenvolvedores estimam os esforços necessários para implementar os itens selecionados do Product Backlog usando técnicas como Planning Poker.
  • É importante que cada item seja potencialmente implantável ao final do Sprint, resolvendo problemas reais dos stakeholders.

Técnicas de Estimativa

  • Para evitar influências nas estimativas individuais dentro do grupo, utiliza-se a técnica Planning Poker. Cada membro recebe cartas com números que representam suas estimativas.

Estimativas em Scrum: Técnicas e Práticas

Importância da Granularidade nas Estimativas

  • O uso de números como 13 e 21 não é recomendado, pois aumenta a dificuldade no planejamento dos sprints. Objetivos menores permitem uma gestão melhor e estimativas mais precisas.
  • Itens que não serão trabalhados no sprint atual são planejados para o futuro, utilizando cartas maiores conhecidas como temas e epics, com estimativas variando entre 20 a 100.

Processo de Estimativa com Planning Poker

  • O Product Owner não deve estar presente durante as estimativas para evitar influenciar o time de desenvolvimento. Cada membro do time utiliza suas próprias cartas para estimar o esforço necessário.
  • Os membros do time apresentam suas cartas simultaneamente, discutindo os motivos por trás das estimativas apresentadas. Isso gera um ciclo de reflexão e reavaliação até que se chegue a um consenso.

Exemplos Práticos de Estimativa

  • Um exemplo prático é a história do usuário "pesquisar catálogo", que foi estimada pelo time com um esforço de tamanho 3. A granularidade ideal é uma história de usuário conforme se desce na lista do backlog.
  • À medida que se avança no backlog, a granularidade aumenta; histórias mais complexas podem ser descritas em formato de caso de uso, enquanto histórias simples seguem o formato padrão.

Priorização e Planejamento Futuro

  • Histórias que não serão implementadas imediatamente devem ser priorizadas com cartas maiores. A equipe pode decidir quais histórias implementar baseando-se na capacidade percebida para o sprint atual.
  • As histórias devem ser detalhadas apenas quando forem priorizadas pelo Product Owner, evitando sobrecarga desnecessária no backlog.

Conceito de Estimativa Relativa

  • A técnica de estimativa relativa permite comparar esforços entre diferentes histórias. Por exemplo, se uma história tem esforço 3 e outra 1, isso indica que a primeira requer três vezes mais esforço.
  • Investir muito tempo em detalhes pode levar à diminuição da acurácia das estimativas após certo ponto. É importante encontrar um equilíbrio entre detalhamento e eficiência nas estimativas.

Conclusão sobre Planejamento Ágil

Desenvolvimento Ágil e Métricas no Scrum

Importância da Flexibilidade no Desenvolvimento de Software

  • O desenvolvimento de software é dinâmico, e tentar detalhar todos os itens do Product Backlog (PB) no início pode ser um desperdício de tempo, pois muitos itens mudam ao longo do projeto.

Conceito de Velocidade no Scrum

  • No Scrum, utilizamos métricas como a "velocidade" para garantir prazos a partir de uma lista de funcionalidades. A consistência da equipe e baixa rotatividade são essenciais para otimizar essas métricas.

Analogias com Futebol

  • A analogia com futebol ilustra que equipes que trabalham juntas por mais tempo desenvolvem um melhor ritmo e compreensão mútua, o que se traduz em maior produtividade na equipe Scrum.

Rotatividade e Multifuncionalidade da Equipe

  • Embora a rotatividade possa ocorrer entre diferentes partes do sistema, uma equipe multifuncional permite que membros assumam diversas tarefas conforme sua especialização ou conforto.

Estimativas Relativas em vez de Horas

  • As estimativas devem ser relativas (como pontos), não atreladas a unidades de tempo. Utilizamos cartas de Fibonacci para medir esforço relativo, evitando estimativas em horas.

Performance Esperada Dentro do Sprint

  • A velocidade representa a performance esperada dentro do Sprint, considerando restrições ambientais e riscos. É calculada dividindo o esforço pelo tempo necessário.

Medindo Esforço com Pontos

  • Para projetos de software, usamos pontos para medir o esforço do PB. Esses pontos representam tamanho funcional e complexidade técnica dos itens.

Planejamento das Sprints

  • Durante as primeiras Sprints, a incerteza sobre a produtividade é alta; portanto, perguntamos à equipe o que acreditam conseguir entregar até o final da Sprint.

Exemplo Prático: Previsão Inicial do Product Backlog

  • Se a velocidade estimada for 8 pontos por Sprint e houver 37 pontos totais no PB, podemos prever aproximadamente 5 Sprints para completar as histórias necessárias.

Plano de Liberação

Planejamento do Sprint e Criação do Sprint Backlog

O que é o Sprint Backlog?

  • O Sprint backlog é um artefato produzido na segunda parte da reunião de planejamento do Sprint, refletindo as histórias de usuário priorizadas e estimadas.
  • Durante a criação do Sprint backlog, o time de desenvolvimento quebra as histórias em tarefas menores, frequentemente mensuradas em horas.

Estimativas no Scrum

  • No Scrum, os itens do product backlog são estimados em Pontos de História, enquanto as tarefas resultantes no Sprint backlog são mensuradas em horas.
  • A gestão de projetos no Scrum envolve planejamento, execução, controle e avaliação. Após o planejamento, segue-se a execução e ao final do Sprint ocorre a avaliação.

Quebra das Tarefas

  • Recomenda-se que cada tarefa não ultrapasse 16 horas para facilitar o gerenciamento e obter feedback mais rápido sobre o progresso.
  • A quebra das histórias em tarefas menores ajuda a identificar problemas precocemente e facilita o trabalho em equipe.

Importância da Comunicação

  • É crucial que o time consulte o Scrum Master e o Product Owner durante a quebra das tarefas para esclarecer dúvidas.
  • O detalhamento adequado dos itens do product backlog é necessário para garantir que estejam prontos para serem trabalhados durante o Sprint.

Exemplo Prático

  • Um exemplo prático mostra como uma história de usuário pode ser subdividida em várias tarefas específicas (ex: criar página de busca).
  • A definição de "pronto" deve ser compartilhada por todos os membros da equipe para orientar a quebra das tarefas corretamente.

Início do Sprint

Ciclo Iterativo no Desenvolvimento

  • Após a reunião de planejamento, inicia-se o ciclo real do Sprint com desenvolvimento, testes e criação de testes automatizados.
  • Cada iteração (Sprint) tem um período fixo onde algo valioso deve ser demonstrado aos usuários ao final.

Duração dos Sprints

  • Sugere-se um máximo de 30 dias para um Sprint; empresas podem ter Sprints mais curtos (até um dia), mas isso pode complicar agendar reuniões necessárias.
  • Para iniciantes, recomenda-se Sprints entre duas a três semanas para entender melhor os tempos necessários para desenvolver valor.

Auto-organização da Equipe

Implementação do Scrum e Gestão de Impedimentos

Seleção e Transformação de Tarefas

  • As tarefas são selecionadas e transformadas em realidade conforme a definição de "pronto" compartilhada por todos.
  • Em caso de impedimentos, recomenda-se o uso de uma coluna no Sprint backlog para listá-los, sendo responsabilidade do Scrum Master resolver esses problemas com apoio do Product Owner.

Estrutura dos Sprints

  • O modelo Scrum é baseado em ciclos interativos chamados Sprints, que devem ter duração máxima de 30 dias.
  • Cada Sprint começa com uma reunião de planejamento onde os itens do Product Backlog são priorizados e detalhados.

Planejamento e Execução

  • Durante o planejamento, o time cria estimativas dos itens do Product Backlog e divide as histórias em tarefas menores.
  • O último dia do Sprint é dividido entre a apresentação das funcionalidades ao Product Owner e uma retrospectiva para avaliar o que funcionou ou não.

Práticas Recomendadas no Desenvolvimento Ágil

Liberdade nas Técnicas de Desenvolvimento

  • Embora o Scrum defina um ciclo de vida para gestão, ele não especifica técnicas ou práticas de desenvolvimento; as equipes têm liberdade nesse aspecto.

Integração Contínua e Testes Automatizados

  • É recomendado usar práticas como integração contínua, independentemente da ferramenta escolhida (ex: Jenkins, Cruise Control).
  • Testes automatizados são essenciais tanto para testes unitários quanto para testes funcionais durante o desenvolvimento.

Ferramentas Visuais no Scrum

Gráfico Burn Down

  • O gráfico Burn Down é utilizado pelo time para reportar o andamento do projeto, mostrando a evolução das horas restantes versus a duração do Sprint.

Interpretação do Gráfico

  • A interseção entre as horas trabalhadas e a linha azul indica se a equipe está acima ou abaixo da velocidade planejada. Se estiver acima, pode haver risco de não cumprir prazos.

Gráfico Release Burn Down

Sprint e Reuniões no Scrum

Visão de Longo Prazo e Sprints

  • A abordagem do Scrum envolve uma visão a longo prazo, com 525 pontos de história a serem cumpridos em 10 a 15 sprints. O foco do Sprint Burn é nas horas dentro de um sprint específico, destacando diferentes níveis de granularidade.
  • O término do Sprint não depende da conclusão das funcionalidades; mesmo que itens do backlog não estejam prontos, as datas devem ser respeitadas. Um Sprint fixo é crucial para medir a produtividade real da equipe.

Importância das Funcionalidades e Datas

  • É preferível perder funcionalidades do que comprometer as datas, um conceito central no Scrum. As reuniões diárias são essenciais para manter todos os envolvidos informados sobre o progresso.
  • As reuniões diárias têm duração máxima de 15 minutos e envolvem o Scrum Master, a equipe e interessados no projeto. Cada membro deve responder três perguntas básicas sobre seu trabalho.

Estrutura das Reuniões Diárias

  • A reunião diária deve ser cronometrada; durações excessivas comprometem a produtividade da equipe. Os membros devem relatar o que fizeram, o que farão e se enfrentam impedimentos.
  • Realizar as reuniões diariamente no mesmo horário promove organização e comprometimento entre os participantes.

Revisão do Sprint

  • No último dia do Sprint ocorre a revisão, onde o time apresenta software funcional ao Product Owner. Essa reunião é fundamental para demonstrar entregas potencialmente implantáveis.
  • A entrega de apenas documentos ao final do Sprint é inaceitável na filosofia Scrum; espera-se sempre um produto funcional.

Avaliação da Velocidade da Equipe

  • Se menos pontos forem entregues do que o planejado (por exemplo, 11 em vez de 12), isso pode indicar uma velocidade menor que a prevista pela equipe.
  • O backlog deve ser constantemente atualizado durante o projeto, exigindo replanejamento frequente conforme novas informações surgem.

Retrospectiva do Sprint

  • A reunião de retrospectiva é crucial para avaliar acertos e erros durante o Sprint. Foca na melhoria contínua dos processos sem rigidez.
  • Durante essa reunião, discutem-se lições aprendidas e ajustes necessários para planejar novos Sprints eficazmente.

Estrutura das Reuniões de Retrospectiva

Métodos Ágeis: Reflexões e Melhorias

Características do Scrum e Desafios Enfrentados

  • O uso do Scrum trouxe maior visibilidade na gestão, mas as reuniões de Scrum foram consideradas longas e precisam ser revisadas para otimizar o tempo.
  • Os testes unitários não atenderam às expectativas; a equipe deve refletir sobre melhorias durante o último dia do Sprint, após a entrega das funcionalidades ao cliente.

Importância da Transparência e Adaptação Contínua

  • A reunião tem como objetivo promover transparência interna no time; é crucial que o Scrum avalie os pontos apresentados e forneça recursos para mudanças necessárias.
  • A adaptação contínua é um fundamento importante em projetos críticos, sendo essencial valorizar as lições aprendidas durante o processo.

Ciclo de Vida do Sprint

  • Após a reunião de retrospectiva, haverá uma nova reunião de planejamento do Sprint para priorizar itens do backlog, detalhar e estimar tarefas.
  • O ciclo continua com práticas complementares entre Scrum e XP (Extreme Programming), destacando conceitos como retrospectivas, reuniões diárias e Burn Down Chart.

Integração entre Métodos Ágeis

  • Práticas do XP se encaixam bem nas regras do Scrum; ambos compartilham princípios fundamentais que favorecem a colaboração e eficiência nas equipes.
  • Existem diversos outros métodos ágeis além de Scrum e XP que também são utilizados no mercado, todos compartilhando características comuns.

Outros Métodos Ágeis Relevantes

  • Destacam-se métodos como XPM (versão adaptada do XP), APM, FDD (Feature Driven Development), entre outros que podem ser explorados por quem deseja aprofundar-se em agilidade.
  • É importante notar que muitos dos princípios discutidos estão presentes em outros métodos ágeis não listados aqui.

Conclusão da Apresentação

  • A apresentação foi elaborada atendendo à solicitação de um orientador acadêmico; está disponível para qualquer interessado em pesquisa sobre métodos ágeis.
Video description

Sumário 00:00 - Agenda 02:13 - Introdução aos métodos ágeis 09:23 - O manifesto ágil: valores e princípios 17:45 - Modelagem Ágil 22:10 - XP (eXtreme Programming) 34:00 - Histórias de Usuário, I.N.V.E.S.T 40:40 - Scrum 47:30 - Artefatos Scrum 50:00 - Timebox 51:00 - Definição de pronto 54:00 - Ciclo de vida do Scrum 59:00 - Sprint Planning 1:00:00 - Product backlog 1:20:00 - Release Planning 1:20:55 - Quebrando User stories em tarefas 1:24:15 - Sprint Backlog 1:25:00 - Sprint de desenvolvimento 1:27:00 - Movimentando as tarefas no Sprint Backlog 1:31:40 Burndown chart 1:33:30 Release burndown 1:35:10 - Daily Scrum 1:36:40 - Sprint review 1:39:45 - Sprint retrospective 1:44:00 - Demais métodos ágeis 1:45:36 - Mensagem final