minicurso scrum

83
Scrum Gestão ágil de projetos Autores: Fábio Abrantes Diniz Íthalo Bruno de Moura Thiago Reis da Silva Diego Grosmanniz

Upload: thiago-reis

Post on 12-Jun-2015

316 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Minicurso SCRUM

ScrumGestão ágil de projetos

Autores:Fábio Abrantes Diniz

Íthalo Bruno de Moura

Thiago Reis da Silva

Diego Grosmanniz

Page 2: Minicurso SCRUM

ScrumGestão ágil de projetos

Apresentadores:

Fábio Abrantes Diniz

Íthalo Bruno de Moura

Page 3: Minicurso SCRUM

31% são cancelados 53% custam o dobro do estimado

Apenas 16% são completados no

prazo e custo estimados

* dados do CHAOS report

Page 4: Minicurso SCRUM

Mas por que?

Page 5: Minicurso SCRUM

Falta de envolvimento do usuário

Requisitos e especificações incompletas

Falta de suporte da direção

Falta de Pessoas e Recursos

Falta de ESTIMATIVAS!!!

Page 6: Minicurso SCRUM
Page 7: Minicurso SCRUM
Page 8: Minicurso SCRUM
Page 9: Minicurso SCRUM

Falhar é uma maneira muito

forte de aprendizado, mas é

preciso parar de apontar culpados

Page 10: Minicurso SCRUM

Olá, Scrum!Por que o nome Scrum?

O nome é proveninente de uma jogada do Rugby, onde é demostrada a força de trabalho em equipe.

O Scrum do Rugby é formado por até 8 pessoas de cada equipe.

O objetivo do Scrum no Rugby é avançar a bola oval no campo adversário o máximo possível. Para isso é necessário um ótimo trabalho em equipe.

Page 11: Minicurso SCRUM
Page 12: Minicurso SCRUM

Scrum é também um meio de

evidenciar os problemas

Page 13: Minicurso SCRUM

Mas Scrum não é bala de prata*

* Não mata vampiros & afins* Exige trabalho duro e comprometimento

Page 14: Minicurso SCRUM

P D C APlan, Do, Check, Act

Page 15: Minicurso SCRUM

Planejamento

Page 16: Minicurso SCRUM

Execução

Page 17: Minicurso SCRUM

Checagem

Page 18: Minicurso SCRUM

Exatamente o que Scrum faz!

Page 19: Minicurso SCRUM

Quem usa o Scrum

• Microsoft• Yahoo• Google• Lockheed Martin• Philips• Siemens• Nokia• BBC

Page 20: Minicurso SCRUM

Scrum tem sido usado para

• Software comercial• Desenvolvimento interno (empresa)• Desenvolvimento contratado (terceirização)• Aplicações financeiras• Sistemas embarcados• Jogos• Sistemas para controle de satélites• Websites• Telefones celulares

Page 21: Minicurso SCRUM

Características do Scrum

• As equipes se auto-organizam

• O produto evolui em uma série de “Sprints” mensais

• Os requerimentos são listados em um “Product Backlog”

• Não há prática de engenharia prescrita (o Scrum adequa-se a todas)

• É uma das “metodologias ágeis”

Page 22: Minicurso SCRUM

Papeis no scrum

Page 23: Minicurso SCRUM

Product Owner

• O representante do cliente

Page 24: Minicurso SCRUM

Scrum Master

• O Scrum Master lidera o time de desenvolvimento

Page 25: Minicurso SCRUM

Scrum Team

• Scrum Team São os membros que formam o time de desenvolvedores, designers, consiste de 5 a 9 pessoas.

Page 26: Minicurso SCRUM

© 2006 BenQ Mobile 26

►Define as funcionalidades do produto assim como conteúdo e data das liberações;

►Responsável pela rentabilidade do produto;►Prioriza as funcionalidades de acordo com o valor do mercado;►Pode mudar as funcionalidades e priorizar a cada 30 dias;►Aceita ou rejeita os resultados do trabalho.

►Estimar itens do backlog►Tem o direito de realizar quaisquer atividades para alcançar

o objetivo da iteração desde que respeite os guidelines do projeto;

►Auto organizados para entregar o que o PO quer.

►Garante que a equipe está completamente funcional e produtiva;►Facilita comunicação entre papéis e remove impedimentos;►Protege a equipe contra interferências externas;►Assegura que o processo é seguido;►Coordena os encontros diários, revisão e planejamento da

iteração.

Product Owner

Scrum Master

Team

Papéis e Responsabilidades

Page 27: Minicurso SCRUM

Ciclo de Vida

Ciclo de vida do ScrumFonte: Adaptado de Improve It (2008)

Page 28: Minicurso SCRUM

Ciclo de Vida

Ciclo de vida do ScrumFonte: Adaptado de Improve It (2008)

Page 29: Minicurso SCRUM

Ciclo de Vida

Ciclo de vida do ScrumFonte: Adaptado de Improve It (2008)

Page 30: Minicurso SCRUM

O Product Backlog é uma lista de todas as funcionalidades desejadas no

produto, estimadas pelo time e priorizadas pelo

Product Owner.

Page 31: Minicurso SCRUM

Exemplo de Product Backlog

Page 32: Minicurso SCRUM

O Product Backlog

EmergentePriorizado e estimado

Maior prioridade, mais detalhesPriorização é tarefa do PO

Alinhado ao plano de negócios

Page 33: Minicurso SCRUM

O Product BacklogEmergente

Priorizado e estimadoMaior prioridade, mais detalhes

Priorização é tarefa do POAlinhado ao plano de negócios

Page 34: Minicurso SCRUM

O Product BacklogEmergente

Priorizado e estimado

Maior prioridade, mais detalhesPriorização é tarefa do PO

Alinhado ao plano de negócios

Page 35: Minicurso SCRUM

O Product BacklogEmergente

Priorizado e estimadoMaior prioridade, mais detalhes

Priorização é tarefa do POAlinhado ao plano de negócios

Page 36: Minicurso SCRUM

O Product BacklogEmergente

Priorizado e estimadoMaior prioridade, mais detalhes

Qualquer um pode contribuirPriorização é tarefa do PO

Alinhado ao plano de negócios

Page 37: Minicurso SCRUM

Sprints

• Representa um Time Box (uma iteração), dentro do qual um conjunto de atividades deve ser executado

• Ocorre em um período de duas a quatro semanas

• Baseia-se na idéia de que um período constante leva a um melhor “ritmo”

• O produto é projetado, codificado e testado durante o Sprint

• No início de cada Sprint, faz-se um Sprint Planning Meeting

Page 38: Minicurso SCRUM

Sprints - Sprint Planning Meeting -

• É uma reunião de planejamento na qual:o O Product Owner prioriza os itens do Product

Backlogo O Scrum Team determina que atividades será

capaz de implementar durante o novo Sprint e cria o Sprint Backlog

o O Scrum Team e o Product Owner definem um objetivo para o Sprint

• O sucesso do Sprint será avaliado mais adiante no Sprint Review Meeting em relação ao objetivo traçado para o Sprint

Page 39: Minicurso SCRUM

Sprints - Sprint Backlog -

• É uma lista de tarefas que o Scrum Team se compromete a fazer em um Sprint

• Seus itens são extraídos do Product Backlog com base nas prioridades definidas pelo Product Owner• Uma estimativa do tempo necessário para a

implementação das funcionalidades

• O Scrum Master mantém o Sprint Backlog atualizado

Page 40: Minicurso SCRUM

Sprints - Daily Scrum -

– É uma reúnião diária da equipe dentro do Sprint, que tem por objetivo:o Disseminar conhecimento sobre o que foi feito no

dia anterioro Identificar impedimentoso Priorizar o trabalho a ser realizado no dia que se

inicia – Os impedimentos identificados devem ser tratados

pelo Scrum Master o mais rapidamente possível

Obs: o Daily Scrum não deve ser usado como uma reunião para resolução de problemas

Page 41: Minicurso SCRUM

Sprints - Daily Scrum -

• Três Questões para todos:

• O que fizeste ontem?• O que vais fazer Hoje?• Há Algum obstáculo?

• Obs: As respostas não são um

relatório para o Scrum Master. Elas são comprimissos dentro do Scrum Team.

Page 42: Minicurso SCRUM

Sprints - Sprint Review Meeting -

O ScrumTeam e o SCRUM Master apresentam ao Product Owner os resultados alcançados durante o sprint.

Page 43: Minicurso SCRUM

Sprints - Sprint Retrospective -

O Sprint Retrospective ocorre ao final de um Sprint e serve para identificar o que funcionou bem, o que pode ser melhorado e que ações serão tomadas para melhorar. Todos participam:

–Scrum Master–Product Owner–Scrum Team

Page 44: Minicurso SCRUM

Sprints - Sprint Retrospective -

Em uma das maneiras de se conduzir um Sprint Retrospective, a equipe discute o que gostaria de:

– Iniciar a fazer– Parar de fazer– Continuar fazendo

Page 45: Minicurso SCRUM

© 2006 BenQ Mobile 45

• Software desktop destinado a usuários finais de celulares BenQ-Siemens• Projeto complexo com 300,000 LOC possuindo um ciclo de vida médio

→ Interação complexa com o ambiente físico (celular)

→ Uma série de versões intermediárias (builds) precisam ser desenvolvidas e testadas.

→ O software deve suportar diferentes modelos de celulares e rodar em diferentes distribuições do Linux

Estudo de Caso: O Projeto XMPM (1)

Características do Projeto

→ Desenvolvido por três parceiros situados fisicamente em localidades diferentes.

→ Necessidade de boa comunicação entre as equipes de desenvolvimento.

→ Definição clara de papéis e responsabilidades.

Page 46: Minicurso SCRUM

© 2006 BenQ Mobile 46

Estudo de Caso: O Projeto XMPM (2)

XMPM

Características do Produto

→ Suporte a 9 (nove) diferentes idiomas;

→ Possui instalador gráfico para as seguintes distribuições (supporte oficial):

- Ubuntu 5.10

- Suse 10

- Mandriva 2006

→ Algumas das funcionalidades do XMPM incluem:

- Sincromização de contatos, tarefas, notas e calendário entre o telefone celular BenQ-Siemens e KDE-Kontact.- Acesso à internet através de uma conexão GPRS.

- Acessa ao sistema de arquivos e suporte a diferentes formatos de música.

Page 47: Minicurso SCRUM

© 2006 BenQ Mobile 47

Estudo de Caso: O Projeto XMPM (3)Práticas adaptadas para o contexto do projeto

Sprint:- No projeto XMPM foram usados 5 sprints e cada sprint com duração de aproximadamente 30 dias.

- Sprints de 30 dias fornecem uma melhor visibilidade dos objetivos do projeto e comprometimento da equipe.

- Iterações mais curtas podem melhorar a visibilidade do projeto e permitir que riscos e incertezas sejam eliminados o mais rápido possível.

Page 48: Minicurso SCRUM

© 2006 BenQ Mobile 48

Estudo de Caso: O Projeto XMPM (4)

Práticas adaptadas para o contexto do projeto

Planejamento do Sprint:

- Duas reuniões são conduzidas no ínicio de cada iteração.

- A primeira é realizada internamente com o product owner e visa refinar e priorizar o backlog do produto.

- A segunda é realizada com os parceiros e visa criar o backlog do sprint de modo a atender os objetivos da iteração.

Page 49: Minicurso SCRUM

© 2006 BenQ Mobile 49

Estudo de Caso: O Projeto XMPM (5)

Práticas adaptadas para o contexto do projeto

Revisão do Sprint:

- A equipe apresenta no final de cada iteração os resultadosobtidos (software funcionando) para o product owner e parceiros.

- Esta prática impõe que a equipe trabalhe arduamente para alcançar os objetivos prometidos para a iteração.

Page 50: Minicurso SCRUM

© 2006 BenQ Mobile 50

Estudo de Caso: O Projeto XMPM (6)

Reunião de Retrospectiva:

- O Scrum master e a equipe participam desta reunião.

- O que deu certo durante o sprint e o que poderia ser melhorado.

Page 51: Minicurso SCRUM

© 2006 BenQ Mobile 51

Estudo de Caso: O Projeto XMPM (7)

Práticas adaptadas para o contexto do projeto

Reuniões Diárias do Scrum:

- O quê você fez desde o último report?- O quê você irá fazer até a próxima reunião?-Existe algum bloqueio para alcançar os objetivos da iteração?- Alguma lição aprendida ou decisão tomada?

- As reuniões diárias ajudam a saber o quê cada membro da equipe está fazendo, compartilhar conhecimento e fornece uma boa visão para o Scrum Master.

Page 52: Minicurso SCRUM

© 2006 BenQ Mobile 52

Estudo de Caso: O Projeto XMPM (8)Práticas adaptadas para o contexto do projeto

Builds Diários:

- Builds diários no branch de cada parceiro e um build semanal no ramo principal do projeto (uso de padrões de gerência de configuração).

Page 53: Minicurso SCRUM

© 2006 BenQ Mobile 53

Estudo de Caso: O Projeto XMPM (9)

Práticas sendo adaptadas para o contexto do projeto

Teste antes do desenvolvimento:

- Esta prática é simples em conceito, mas requer intensa preparação técnica.

- Esta prática força o desenvolvedor pensar sobre o que o código deveria fazer antes de realmente implementá-lo.

- Caso o desenvolvedor não seja capaz de escrever o caso de teste para o código então provavelmente existem problemas de projeto.

- Depois de criar e executar o teste unitário, o mesmo torna-se apenas uma instância de testes de regressão.

Page 54: Minicurso SCRUM

© 2006 BenQ Mobile 54

Resumo e PerspectivaResumo

Perspectiva

• A prática “revisão do sprint” exige que a equipe se esforce para cumprir com os objetivos prometidos da iteração.

• A prática “teste antes do desenvolvimento” evita a criação de classes complexas e assegura a qualidade do código.

• As práticas melhoram a visibilidade do projeto e reduzem riscos e incertezas no início do ciclo de desenvolvimento.

• O fator terceirização adiciona mais complexidade ao uso do Scrum.

• Adaptação dos métodos ágeis para desenvolvimento de sistemas embarcados.

Page 55: Minicurso SCRUM

Conclusão

Scrum é uma metodologia de gerenciamento de projetos que está se tornando cada vez mais comum na industria de software. É bastante eficiente quando utilizado por equipes pequenas, mas pode tranquilamente ser usado em projetos com grandes equipes.

O Scrum tem como vantagens a velocidade, um bom controle do cronograma, diminuição dos riscos e incertezas e a visibilidade - graças às constantes reuniões.

Por outro lado, a grande desvantagem do Scrum é a sensação de informalidade, devida a falta de documentação formal do software.

Page 56: Minicurso SCRUM

?

Page 57: Minicurso SCRUM

• http://br.groups.yahoo.com/group/scrum-brasil/

• http://blogdoabu.blogspot.com/2008/11/planning-poker.html

• http://planningpoker.com/

• http://netfeijao.blogspot.com/2008/10/estimativas-geis-planning-poker.html

• Ken Schwaber. Agile Project Management with Scrum. Ed. Microsoft Press 2004

• Abrahamsson, Pekka, Salo, Outi, Ronkainen, Jussi &Warsta, Juhani. Agile Software Development Method, Review and Analysis. Espoo 2002. VTT Publications 478. 107p

• Henrik Kniberg. Scrum and XP Direto das trincheiras. Ed. Enterprise Software Development Community, 2007.

Page 58: Minicurso SCRUM

Planning Poker An agile estimating

technique for agile and Scrum teamsGestão ágil de projetos

Apresentadores:Fábio Abrantes Diniz

Íthalo Bruno de Moura

Page 59: Minicurso SCRUM

31% são cancelados 53% custam o dobro do estimado

Apenas 16% são completados no

prazo e custo estimados

* dados do CHAOS report

Page 60: Minicurso SCRUM

Mas por que?

Page 61: Minicurso SCRUM

Falta de envolvimento do usuário

Requisitos e especificações incompletas

Falta de suporte da direção

Falta de Pessoas e Recursos

Falta de ESTIMATIVAS!!!

Page 62: Minicurso SCRUM

É difícil estimar tempos de execução

Page 63: Minicurso SCRUM

Time*

*Tudo eu! Tudo eu!

Page 64: Minicurso SCRUM

2±9

7

Page 65: Minicurso SCRUM

Responsabilidades:• Estimar itens do backlog

• Se comprometer a entregar um incremento funcional de software

• Gerenciar o próprio progresso

• Auto organizados para entregar o que o PO quer

Page 66: Minicurso SCRUM

As cerimônias do SCRUM

Page 67: Minicurso SCRUM
Page 68: Minicurso SCRUM

Reunião de Estimativa:• Preparação para o Sprint Planning

• Estimar baseado no tamanho, nunca em tempo

• Atualizar Product Backlog com as estimativas

• Importante para o PO criar o release plan

Page 69: Minicurso SCRUM

O Product BacklogEmergente

Priorizado e estimadoMaior prioridade, mais detalhes

Qualquer um pode contribuirPriorização é tarefa do PO

Sempre visívelAlinhado ao plano de negócios

Page 70: Minicurso SCRUM

Scrum foca em

tamanho e

não em duração

Page 71: Minicurso SCRUM

Estimar em tamanho relativo é mais simples

Page 72: Minicurso SCRUM

Planning Poker

• É um método eficiente que estima o tamanho dos requisitos em times que adotam métodos ágeis (SCRUM, XP).1

• O método foi primeiramente descrito por James Grenning em 2002 e, mais tarde popularizado por Mike Cohn no livro Agile Estimating and Planning.

1 – É uma variação do método de estimativa Wideband Delphi (1940)

Page 73: Minicurso SCRUM

Planning Poker

• As estimativas acontecem em reuniões:– Geralmente 4 ou 8 horas.– Paticipantes:

• Todos os membros do time do Scrum;• O PO somente esclarece os requisitos e não

estima junto a equipe;• O Scrum Master registra os resultados, não

interferindo nas estimativas do time;• A equipe não deve ser superior a dez pessoas.

Page 74: Minicurso SCRUM

O Processo

1. Cada membro do time recebe um deck de cartas: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ? e

“pausa”.

http://en.wikipedia.org/wiki/Planning_poker

Page 75: Minicurso SCRUM

O Processo

2. Os itens a serem estimados são lidos pelo PO ou SM

A equipe decide qual o menor item de backlog disponível.

http://blogdoabu.blogspot.com/2008/11/planning-poker.html

Page 76: Minicurso SCRUM

O Processo

3. Após a estimativa inicial, esse item é marcado como “2” pontos

Serve para definir uma referência de tamanho e complexidade para ser usada nas demais estimativas.

E deve ficar registrado para uso nas futuras reuniões.

Em casos excepcionais o time pode decidir mudar esta estória de referência por uma outra.

Page 77: Minicurso SCRUM

O Processo

4. Para cada estória o SM ou PO lê a descrição e os critérios da aceitação da mesma. São respondidos questionamentos a

respeito da estória; Manter a discussão em alto nível, não entrar em

detalhes. Tempo prefixado (timebox) nesta etapa.

Page 78: Minicurso SCRUM

O Processo

5. Cada desenvolvedor escolhe em silêncio a carta que representa sua estimativa. O moderador pede para todos mostrarem

as cartas.

http://blogdoabu.blogspot.com/2008/11/planning-poker.html

Page 79: Minicurso SCRUM

O Processo

6. Se todas as estimativas convergirem, a estimativa está feita e o processo volta ao início, para um novo item. Se houver uma grande variação na

estimativa, aqueles que apresentaram o(s) maior(es) e o(s) menor(es) valor(es) se justificam.

O processo se repete até todas as estimativas convergirem.

Page 80: Minicurso SCRUM

Dinâmica

• Grupo

• São Paulo

• Rio Grande do Norte

• Paraíba

• Goiás

• Amazonas

• Sergipe

• Paraná

Page 81: Minicurso SCRUM

Conclusões

• O Planning Poker é uma prática eficiente de estimação de requisitos

• Por ser uma técnica bastante flexível, se enquadra

• É uma prática que envolve todo o time– Ajuda times novos a se conhecerem

• Realmente funciona!!!

Page 82: Minicurso SCRUM

?

Page 83: Minicurso SCRUM

• http://br.groups.yahoo.com/group/scrum-brasil/

• http://blogdoabu.blogspot.com/2008/11/planning-poker.html

• http://planningpoker.com/

• http://netfeijao.blogspot.com/2008/10/estimativas-geis-planning-poker.html

• Ken Schwaber. Agile Project Management with Scrum. Ed. Microsoft Press 2004

• Abrahamsson, Pekka, Salo, Outi, Ronkainen, Jussi &Warsta, Juhani. Agile Software Development Method, Review and Analysis. Espoo 2002. VTT Publications 478. 107p

• Henrik Kniberg. Scrum and XP Direto das trincheiras. Ed. Enterprise Software Development Community, 2007.

Referências