Metodologias ágeis Flávio Steffens de Castro Projetos … ? Quais são as características de um projeto? – Temporário (início e fim) – Objetivo (produto, serviço e resultado) – Único – Recursos limitados – Planejados, executados e controlados 1 Problemas comuns nas empresas de TI Vamos identificar alguns problemas que vocês já vivenciaram no trabalho? Problemas comuns nas empresas de TI Pessoas Clientes Processos - Quantos dos problemas citados se enquadram nestas “variáveis globais”? - Como resolver isso? 2 Agilidade, Agilidade by Dilbert Agile Manifesto (2001) Princípios para agilidade em projetos de software – “Individuals and interactions over processes and tools” – “Working software over comprehensive documentation” – “Customer collaboration over contract negotiation” – “Responding to change over following a plan” 3 Metodologias ágeis Agilidade para projetos: SCRUM; Agilidade para produtos: XP, FDD, TDD, etc. Agilidade para ambos (framework): OpenUP. SCRUM Criado por Ken Schwaber e Jeff Sutherland em 1996; Surgiu para recuperar um projeto problemático; Ciclo PDCA; Foco em valor e nas interações; Mudanças são incentivadas; “Time boxed”; Processo empírico. – Não sabemos ao certo onde queremos chegar – Desenvolvemos baseados nas experiências 4 Atores do SCRUM São três atores principais e mais um grupo de secundários: – PRODUCT OWNER – SCRUM MASTER – TEAM E os secundários: – CHICKENS Envolvimento x Comprometimento 5 Atores do SCRUM (obrigações) PRODUCT OWNER – Levantar requisitos, gerenciar e priorizar o product backlog (lista de funcionalidades), aceitar o software ao final de cada iteração. SCRUM MASTER – Cuidar da equipe, trabalhar com o product owner, remover impedimentos, manter o processo funcionando. TEAM – Estimar o tamanho dos itens do backlog, assumir compromisso com a entrega, autoorganizar-se. SCRUM flow 6 Planejamento estratégico Product Owner e Cliente Visão do produto – Definição das primeiras user stories e constraints Criação do primeiro product backlog – Conjunto de user stories do sistema – Priorização inicial das user stories Planejamento estratégico User stories – Funcionalidades – Identificação dos atores – I.N.V.E.S.T. (independente, negociável, valorizável, estimável, small e testável) – Linguagem de negócio “Criar indexes nas tabelas” “Aumentar a velocidade da busca” ☺ 7 Planejamento estratégico User stories Escopo Product Owner Team Estimativas Importância E a qualidade? – Não é negociável. Nunca! … ou quase! Planejamento estratégico User stories (index cards) 8 Planejamento tático Product Owner, Scrum Master e Equipe Análise e organização do Product Backlog – Definição do objetivo (goal) do sprint – Estimativas – Formalização do sprint backlog – Identificação das tarefas – Organização da taskboard Planejamento tático Sprint Goal – Definido pelo Product Owner – Norteia e auxilia em decisões “Por que estamos fazendo isso?” – Sempre em nível de negócio – DEVE EXISTIR EM CADA SPRINT! “Antes um objetivo meia-boca, do que nenhum!” 9 Planejamento tático Importância – Prioridade da user story – Valor entre 1 e 150 1 : menos prioritária 150: mais prioritária – Definida pelo Product Owner, com base nas necessidades do cliente Planejamento tático Estimativas – Tempo e/ou complexidade? – Conceito de PONTOS (story points) – Fibonacci 1, 2, 3, 5, 8, 13, 21… – Planning poker – Tarefas: 1-day tasks Considerar tarefas como teste, pesquisas, documentação, etc. 10 Planejamento tático Planning poker – Técnica para estimar user stories – Força todos a participarem e evita influências – Induz ao debate de estimativas – Agiliza e torna a estimativa algo divertido Planejamento tático Product Backlog x Sprint Backlog – O PB é o repositório do projeto – O SB são as user stories selecionadas para o sprint – O tamanho do SB é definido por: Velocidade (em story points) Gut feel (“achismo”) – Previsto x realizado User story não finalizada volta para o Product Backlog. 11 Planejamento tático Product Backlog x Sprint Backlog A D A H D C H B C E Total: 22 story points G F Total: 48 story points Planejamento tático Agenda típica da reunião 14:00 – 14:30 Definição do sprint goal, datas importantes, data e local da apresentação. 14:30 – 16:00 User stories são estimadas e repriorizadas, se necessário. Detalhamento das principais. 16:00 – 16:30 Seleção das stories que farão parte do sprint. Estimativa da velocidade. 16:30 – 17:30 Quebra das user stories em tarefas. Preparação da taskboard. Definição de data e local da daily scrum. Sim, a reunião dura uma tarde! 12 Planejamento operacional Scrum Master e Equipe Dia-a-dia do SCRUM – Sprint 2, 3 ou 4 semanas – Daily meetings – Impedimentos Obstáculos ao trabalho da equipe – Manutenção do taskboard Burndown Tarefas e estimativas Tarefas não-planejadas Planejamento operacional Daily Meetings (daily scrum) – Reunião diária de 15 minutos – Mantém equipe informada e integrada O que você fez ontem? O que pretende fazer para amanhã? Quais são seus impedimentos? – Questões técnicas No final da reunião – Rápida identificação do problema e atraso 13 Planejamento operacional Impedimentos – Algo que esteja fora do alcance da equipe – Deve ser reportado ao Scrum Master e também na daily scrum – Impedimento x pró-atividade: ☺ “Preciso instalar um software e preciso da autorização da FACIN” ☺ “Eu não sei programar em Java” “Preciso comprar um novo componente” “Eu não sei o que tenho que fazer!” Taskboard Por que ter uma taskboard física? – Contém todas as informações essenciais – Fisicamente ela é visível o tempo todo – Sabemos rapidamente: Estágio atual do sprint Responsáveis Objetivos Problemas e impedimentos, e suas causas 14 Taskboard (algum dia qualquer) Taskboard (Erro de prioridades!) 15 Taskboard (Tarefas extras demais!) Burndown O burndown traduz a taskboard graficamente – X-axis: dias do sprint – Y-axis: pontos ou horas restantes Sprint ideal Sprint adiantada Sprint atrasada “Beleza! Vamos manter assim!” “Vamos acrescentar uma nova user story!” “Precisamos diminuir o sprint backlog!!” 16 Sprint review (demo) Cliente, PO, SM e Team Apresentação do produto – Cliente pode (e deve) testar o sistema Foco no QUE foi feito e não COMO foi feito Pode ser um evento social Evita os 99,9% finalizados Aceite formal e feedback do cliente RELEASE x RELEASABLE Retrospective PO, SM e Team Avaliação da sprint – O que foi bom? – O que poderia ter sido melhor? – Onde podemos melhorar? Coleta cronológica de fatos e eventos da sprint Lições aprendidas – Identificação dos erros e aprendizado para não repetí-los. 17 Próximo sprint Lições aprendidas – Alimentam o próximo sprint Velocidade da equipe Erros x acertos Previsto x realizado – Repositório de lições – Disseminação na empresa Lições aprendidas SCRUM flow 18 O que eu aprendi com SCRUM Agente motivador – Cliente e empresa Baixíssima resistência à mudança – Em curto prazo, todos já praticam Comunicação maximizada – O “status” era discutido diariamente Planejamento facilitado – Impossível planejar tudo antes O que eu (também) aprendi com SCRUM Capacitação de equipe – Teste e qualidade Motivação x comprometimento – Maturidade da equipe deve ser considerada Buy-in da direção – Direção precisa dar suporte Conceitos conservadores perduram – Waterfall, fases, equipes distintas… 19 Próximos passos Simulação de um sprint (zero) – Praticar SCRUM com os seus projetos – Duração de uma semana – Atores para esta experiência: Product owner: Flávio Scrum master: Leonardo Amaral Team: as respectivas equipes Clientes: coordenadores Próximos passos DATA ATIVIDADES DURAÇÃO 6a-feira 18/04 Definição de duas user stories em cada projeto. Priorização inicial das mesmas. 15 min 3a-feira 22/04 Preenchimento das index cards. Estimativas (planning poker). Definição de tarefas. [Desenvolvimento]. 30 min 4a-feira 23/04 Daily scrum e desenvolvimento. Dia 5a-feira 24/04 Daily scrum e desenvolvimento. Dia 6a-feira Daily scrum e desenvolvimento. Sprint Review e Retrospectiva, com a presença de todos, no fim do dia. 25/04 Dia 20 Conclusão Dúvidas, sugestões, críticas? 21