Programação Extrema Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Prof. Mauro Lopes Programação Extrema Prof. Mauro Lopes 1-31 45
Manifesto Ágil Formação da Aliança Ágil Manifesto Ágil: Propósito Manifesto Ágil: Princípios Agenda Metodologias Ágeis XP Scrum Programação Extrema Prof. Mauro Lopes 2
Manifesto Ágil Facilitar mudanças é mais efetivo do que tentar preveni-las. Aprender a confiar nas suas habilidades para responder a eventos imprevisíveis é mais importante do que confiar nas suas habilidades de planejamento contra desastres. Celebrating 10 Years of the Agile Manifesto! http://www.tinypm.com/blog/?p=295 Programação Extrema Prof. Mauro Lopes 3
Manifesto Ágil Formação da Aliança Ágil Reunião ocorrida de 11 a 13 de Fevereiro de 2001; Presença de 17 anarquistas organizacionais ; O Encontro fez surgir a Aliança do Desenvolvimento Ágil de Software; O fruto desta reunião foi o Manifesto do Desenvolvimento Ágil de Software; Manifesto para Desenvolvimento Ágil de Software http://agilemanifesto.org/iso/ptbr/ Programação Extrema Prof. Mauro Lopes 4
Metodologias Ágeis Scrum FDD Feature Driven Development XP Extreme Programming ASD Adaptive Software Development TDD Test-Driven Development Programação Extrema Prof. Mauro Lopes 5
Metodologias Ágeis - XP Programação Extrema: Voce esta fazendo isto errado!!! Programação Extrema Prof. Mauro Lopes 6
Valores Comunicação; Simplicidade; FeedBack; Coragem; Princípios Feedback rápido Simplicidade Mudanças incrementais Abraçar mudanças Trabalho de qualidade Metodologias Ágeis - XP Programação Extrema Prof. Mauro Lopes 7
Programação Extrema Prof. Mauro Lopes INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Práticas Jogo de Planejamento Pequenas Versões Metáfora Projeto Simples Time Coeso Testes de Aceitação Ritmo Sustentável Reuniões em pé Posse Coletiva Programação em Pares Padrões de Codificação Desenvolvimento Orientado a Testes Refatoração Integração Contínua; Metodologias Ágeis - XP 8
XP - Equipe Em uma equipe de XP existem papéis a serem desempenhados por um ou mais desenvolvedores. Estes papéis serão listados a seguir: Gerente de projeto Coach Analista de teste Redator técnico Desenvolvedor Programação Extrema Prof. Mauro Lopes 9
XP Ciclo de Vida Etapa: Estórias do Usuário Programação Extrema Prof. Mauro Lopes 10
Metodologias Ágeis - Scrum Scrum é uma metodologia ágil de Gerenciamento de Projetos; O nome Scrum vem do jogo de rugby. No rugby, o scrum é utilizado para reposição da bola, após faltas ou penalidades. A ação demonstra que o grupo deve trabalhar em conjunto, como se fosse uma unidade; Programação Extrema Prof. Mauro Lopes 11
Metodologias Ágeis - Scrum A utilização da palavra scrum associada ao desenvolvimento de produtos foi feita primeira vez por Takeuchi e Nonaka, no livro The New Product Development Game, onde os autores defendem a idéia de que no desenvolvimento toda a equipe deve trabalhar como uma unidade para atingir um objetivo; Seu uso no desenvolvimento de software ocorreu em 1995, após a formalização de sua definição, feita por Ken Schwaber; o Scrum é uma metodologia empírica: "problemas fundamentalmente empíricos não podem ser resolvidos com sucesso utilizando uma abordagem tradicional de controle [ WikiPedia] Programação Extrema Prof. Mauro Lopes 12
Scrum - Princípios Os envolvidos trabalham em equipe com: Responsabilidade; Transparência Honestidade Auto-organização Fornecer software funcionando: De forma incremental; Potencialmente entregável; Programação Extrema Prof. Mauro Lopes 13
Scrum Papéis Em uma equipe Scrum, os papéis existentes são os listados abaixo: Product Owner (Dono do Produto) ScrumMaster Team (Equipe) Programação Extrema Prof. Mauro Lopes 14
Scrum Equipe (Papéis) Product Owner (Dono do Produto) : Define as funcionalidades do produto; Decide datas de lançamento e conteúdo; ;( Investment Responsável pela rentabilidade (ROI Return of Prioriza funcionalidades de acordo com o valor de mercado; Ajusta funcionalidades e prioridades; Aceita ou rejeita o resultado dos trabalhos; Programação Extrema Prof. Mauro Lopes 15
Scrum Equipe (Papéis) ScrumMaster: Representa a gerência para o projeto; Responsável pela aplicação dos valores e práticas do Scrum; Remove obstáculos; Garante a plena funcionalidade e produtividade da equipe; Garante a colaboração entre os diversos papéis e funções; Escudo para interferências externas; Auxilia o Product Owner a maximizar o retorno do investimento; Programação Extrema Prof. Mauro Lopes 16
Scrum Equipe (Papéis) Team (Equipe): Responsável pela entrega do produto; Multi-funcional (Desenvolvedores, Arquitetos, Testers, etc); Auto-organizada e auto-gerenciada; Todos os membros igualmente comprometidos com um objetivo comum; ( 10 Geralmente equipes pequenas (até Equipes grandes geralmente se comportam como várias equipes pequenas; Programação Extrema Prof. Mauro Lopes 17
Scrum Ciclo de Vida Programação Extrema Prof. Mauro Lopes 18
Scrum Artefatos Backlog do Produto Backlog Selecionado Não muda durante o Sprint Backlog do Sprint Tarefas priorizadas Backlog de Impedimentos Programação Extrema Prof. Mauro Lopes 19
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 20
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 21
Scrum Visão do Processo Backlog do Produto Lista de todas as funcionalidades desejadas Formado por itens com valor de negócios Casos de Uso Histórias a la XP É gerado incrementalmente Começa pelo básico e cresce com o tempo Priorizado pelo Product Owner Programação Extrema Prof. Mauro Lopes 22
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 23
Scrum Visão do Processo Planejamento Reunião de Estimativa Entrada: Backlog do Produto priorizado Saída: Itens relevantes do Backlog do Produto estimados Participantes: Equipe e ScrumMaster Sprint Planning I Entrada: Backlog priorizado e estimado Saída: Objetivo do Sprint Backlog Selecionado Participantes: Todos Programação Extrema Prof. Mauro Lopes 24
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 25
Scrum Visão do Processo Planejamento Tático Sprint Planning II Entrada: Backlog Selecionado Saída: Comprometimento com o objetivo do Sprint Itens quebrados em tarefas Participantes: Equipe e ScrumMaster Programação Extrema Prof. Mauro Lopes 26
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 27
Scrum Visão do Processo Sprint Sprint = Iteração do XP Tamanho fixo Recomendação: Antigamente: 30 dias Atualmente: 2 semanas Durante o Sprint: ( Meeting Daily Scrum (Stand-Up Programação Extrema Prof. Mauro Lopes 28
Scrum Visão do Processo Daily Scrum 1/2 Pequenos encontros diários da equipe geralmente pela manhã ( falam galinhas e porcos (só os porcos todos os porcos devem participar Questões que aparecem devem ser resolvidas após a reunião Tempo fixo: 15 minutos Programação Extrema Prof. Mauro Lopes 29
Scrum Visão do Processo Daily Scrum 1/2 Galinhas e Porcos Programação Extrema Prof. Mauro Lopes 30
Scrum Visão do Processo Daily Scrum 1/2 Explicando Porcos são todos aqueles que estão comprometidos com os objetivos da iteração e do projeto como um todo. Eles são o Product Owner, o Scrum Master e a equipe. São eles quem definem o sucesso da implantação e continuidade do Scrum em uma empresa. Já as galinhas são aqueles envolvidos, que não estão necessariamente dispostos a entregar sua vida pelo projeto. Ok, um pouco de exagero, mas foi só pra explicar a grande diferença entre os papéis. São todas as demais pessoas que não estão no dia-a-dia do projeto, incluindo usuários, gerentes, etc. Programação Extrema Prof. Mauro Lopes 31
Scrum Visão do Processo Daily Scrum 2/2 Questões que devem ser respondidas por cada porco: 1) O quê você fez ontem? 2) O quê você vai fazer hoje? 3) Quais os problemas encontrados? Evita: Como um projeto atrasa um ano? Um dia por vez... Qualquer deslize pode ser corrigido de imediato ScrumMaster cuida dos impedimentos identificados Programação Extrema Prof. Mauro Lopes 32
Scrum Visão do Processo Daily Scrum Local de Encontro Sempre o mesmo local e hora Pode ser o local de desenvolvimento Sala bem equipada, quadro branco, etc. A sala já deve estar arrumada antes Todos devem participar Galinhas ficam na periferia Ficar em pé ajuda a terminar rápido Punições ( atrasos/faltas ) Programação Extrema Prof. Mauro Lopes 33
Scrum Visão do Processo Acompanhamento ScrumMaster atualiza o Burn-Down Chart O Gráfico Burn-Down é utilizado como uma ferramenta de apoio para a equipe por representar a quantidade restante de esforço necessário para o término o Backlog do Produto (Quanto Falta???). A unidade de esforço utilizada é qualquer uma decidida pelo time (SCHWABER, 2009). Além disso, segundo Paulk e Davis (2009), é a partir do Gráfico Burn-down que é possível calcular velocidade ou produtividade do time. Programação Extrema Prof. Mauro Lopes 34
Scrum Visão do Processo Acompanhamento Programação Extrema Prof. Mauro Lopes 35
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 36
Scrum Visão do Processo Sprint Review Reunião onde o Product Owner: Valida os itens entregues Verifica se o objetivo do Sprint foi atingido Na forma de demonstração ou apresentação Momento para celebrar o sucesso Programação Extrema Prof. Mauro Lopes 37
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 38
Scrum Visão do Processo Retrospectiva Momento para reflexão e aprendizado Gera discussões para alimentar o próximo Sprint Quem está no controle? Equipe: Backlog Instituição: Backlog de Impedimentos Programação Extrema Prof. Mauro Lopes 39
Scrum Visão do Processo Programação Extrema Prof. Mauro Lopes 40
Scrum Visão do Processo Sprint de Entrega Não faz parte do Scrum padrão, mas é bem usado na prática Um último Sprint para fechar o produto O objetivo é: Preparar a versão de produção O foco é a eliminação de erros Programação Extrema Prof. Mauro Lopes 41
Programação Extrema Prof. Mauro Lopes 42
Perguntas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva Programação Extrema Prof. Mauro Lopes 43
Próxima Aula... Extreme Programming: Valores e Práticas. Programação Extrema Prof. Mauro Lopes 44
Referências Materiais avulsos da Internet e o Livro Extreme Programming, Vinicius Manhães Teles, 1ª Edição - Editora Novatec, 316 páginas. Comparação entre Metodologias Ágeis e Tradicionais para o Desenvolvimento de Software, Michel dos Santos Soares MÉTODO ÁGIL XP (EXTREME PROGRAMMING), Luciano Malaquias de Souza O Manifesto Ágil, obtido em:(acessado em 20.03.2011) http://hp.br.inter.net/jrotta/docs/omanifestoagil.pdf Programação Extrema Prof. Mauro Lopes 45