scrum - metodo ágil

54
Engenharia de Software SCRUM

Upload: luan-santos

Post on 19-Dec-2015

37 views

Category:

Documents


3 download

DESCRIPTION

metodo agil de engenharia de software.

TRANSCRIPT

Page 1: Scrum - Metodo ágil

Engenharia de Software

SCRUM

Page 2: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 3: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 4: Scrum - Metodo ágil

Visão Geral

● Método ágilFoco no gerenciamento

● Manifesto ágil – valorizar...Indivíduos e iterações sobre● Processos e ferramentasSoftware funcional sobre ● Documentação exaustivaColaboração com o cliente sobre ● Negociação de contratoResposta a mudanças sobre ● Seguir um plano

Page 5: Scrum - Metodo ágil

Visão Geral

● Bases do ScrumTrabalho em equipe unida e integradaCliente é um contribuidor chave para o sucesso do projetoMudanças são aceitas como vantagem competitivaComunicar bem é melhor que programar bemDocumentação deve ser útilAlta qualidade é a chave para a alta velocidadeManter a arquitetura flexívelPensar de forma simples, eficiente, e incrementalUma boa equipe em um bom ambiente

Page 6: Scrum - Metodo ágil

Visão Geral

•Dono do produto•ScrumMaster•Equipe

Papéis

•Planejamento•Reunião diária•Revisão•Retrospectiva

Processo

•Product backlog•Sprint backlog•Burndown charts•Quadro de tarefas

Artefatos

Page 7: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 8: Scrum - Metodo ágil

Conceitos Básicos

● Conceitos iniciaisEstóriaBacklogSprint Scrum

Page 9: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 10: Scrum - Metodo ágil

Estória

● Necessidade do usuárioExemplo de estrutura:● Como um (papel)● Eu quero (alguma coisa)● A fim de (obter um benefício)

Page 11: Scrum - Metodo ágil

Estória

● Exemplo de estória

Como um estudante eu quero comprarbilhetes de ônibus a fim de ir para

a escola.

Page 12: Scrum - Metodo ágil

Estória● Uso de index cards

Lembre-se deles!Um exemplo:

Estória: Permitir o depósito em conta

Precisa de um diagramaDe sequência da UML.

Não precisa de criptografiapor enquanto.

Faz o login; abra a páginade depósito; depositeR$ 10; vá à página de

saldo e verifique seaumentou em R$ 10.

300

Observações Demonstração

EstimativaImportância

Page 13: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 14: Scrum - Metodo ágil

Backlog

● Inglês paraReservaAcúmulo

● Lista de itens a serem implementadosLista de estórias!Deve incluir tudo que deve ser feitoPriorizado pelo dono do produtoRepriorizado no início de cada Sprint

Page 15: Scrum - Metodo ágil

Backlog

Sprint

Release

Alta

Baixa

Futuros Releases

Valor

Risco

Conhecimento

PrioridadeCusto

Page 16: Scrum - Metodo ágil

Backlog● Exemplo de backlog do produto

Item do Backlog Importância

Permitir que o usuário faça uma reserva 3000

Permitir que o usuário cancele a reserva 500

Permitir a troca de datas da reserva 300

Permitir que empregado do hotel gere relatórios de lucratividade 80

Melhorar manipulação de erros 50

... 30

... 20

Page 17: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 18: Scrum - Metodo ágil

Sprint

● Inglês paraArrancada (em corrida de velocidade)

● São iteraçõesObjetivos bem definidos● Não mudam durante o SprintBacklog próprioDuração constante

Page 19: Scrum - Metodo ágil

Sprint

Backlog

Itens de

Sprint

(Duração Fixa)

Software

Objetivos do Sprint

Backlog do Sprint decomposto pela

equipe

Software Revisado pelo Cliente

Mudança

Page 20: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 21: Scrum - Metodo ágil

Scrum

● Inglês para… não há uma boa tradução!Palavra usada no jogo de rugby

Page 22: Scrum - Metodo ágil

Scrum

Fonte: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986.

Em vez de completar uma coisa por vez...

Requisitos Projeto Código

... equipes Scrum fazem um pouco de cada coisa, todo o tempo

Teste

Page 23: Scrum - Metodo ágil

Princípios do ScrumEquipes ● Auto-dirigidas● Auto-organizadas ● Co-localizadasEncontro diário● 15 minutos (em pé) ● 3 questõesIterações de 30 dias de calendárioPlanejamento iterativo e adaptativoEnvolvimento de stakeholdersMedição diária de progresso pela equipeIterações entregam software testado e completamente funcional para demonstração

Page 24: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 25: Scrum - Metodo ágil

Equipe Scrum

● Três papéisDono do ProdutoScrum MasterEquipe Técnica

Page 26: Scrum - Metodo ágil

Dono do Produto

● Define as funcionalidades do produto● Decide datas de lançamento e conteúdo● Prioriza funcionalidades de acordo com o valor de mercado● Ajusta funcionalidades e prioridades● Aceita ou rejeita o resultado dos trabalhos

Page 27: Scrum - Metodo ágil

Scrum Master

● Representa A gerência para o projeto E a equipe para a gerência

● Responsável pela aplicação dos valores e práticas do Scrum ● Remove obstáculos● Garante a plena produtividade da equipe● Garante a colaboração entre os diversos papéis e funções● Escudo para interferências externas

Page 28: Scrum - Metodo ágil

Equipe Técnica● Entre 5 e 9 pessoas

7 é o ideal● Tecnicamente Multi-funcional

Programadores, testadores, desenvolvedores de interfaces, e tudo que a empresa define como padrão

● Tempo integralRaras exceções (Ex.: Administrador de Banco de Dados)

● Auto-organizávelIdealmente, sem títulos, ainda que possívelTodos da equipe devem ser capazes de desenvolver código

● Trocas só na mudança de Sprints

Page 29: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 30: Scrum - Metodo ágil

Atividades

● Plano de Sprint - Sprint Planning (2 reuniões de 4 horas)

Cliente e equipe identificam itens do backlog a serem entregues no próximo sprintEquipe planeja detalhes do sprint e se compromete com o objetivo

● Reunião Diária - Daily Scrum (15 minutos)Equipe revisa o dia anterior, identifica barreiras e planeja o dia

Sprint PlanningMeeting

( 8 Hours )

Sprint( 30 cal days )

Sprint ReviewMeeting

( 4 hours )Daily Scrum

Meeting( 15 minutes )

SprintRetrospective

Meeting( 3 hours )

Page 31: Scrum - Metodo ágil

Atividades

● Revisão do Sprint - Sprint Review (4 horas)Equipe demonstra funcionalidade completa ao dono do produto

● Retrospectiva do Sprint - Sprint Retrospective (3 horas)Equipe discute como melhorar o próximo sprint

Sprint PlanningMeeting

( 8 Hours )

Sprint( 30 cal days )

Sprint ReviewMeeting

( 4 hours )Daily Scrum

Meeting( 15 minutes )

SprintRetrospective

Meeting( 3 hours )

Page 32: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 33: Scrum - Metodo ágil

Planejamento do Sprint

Planejamento

Priorização

• Análise e avaliação do product backlog

• Objetivo do sprint

Plano

• Decidir como chegar ao objetivo (projeto)

• Cria tarefas do sprint backlog a partir dos itens do product backlog (user stories / funcionalidades)

• Horas no sprint backlog

ObjetivoObjetivo

SprintbacklogSprint

backlog

Condições de negócioCondições de negócio

Capacidades da equipe

Capacidades da equipe

Product backlogProduct backlog

TecnologiaTecnologia

Produto atual

Produto atual

Page 34: Scrum - Metodo ágil

Objetivo do Sprint

● Breve declaração● Ilustre o foco do trabalho

Base de Dados

Serviços financeiros

Ciências da vida

Funcionalidades para estudos genéticos da população

Criar suporte para indicadores de desempenho em tempo real

Fazer com que a aplicação rode no SAL Server além do PostgreSQL

Page 35: Scrum - Metodo ágil

Sprint Backlog

● A equipe seleciona itens do Product Backlog que compromete-se a concluir● O Sprint Backlog é criado

Tarefas identificadas e estimadas (1 a 16 horas)De forma colaborativa pela equipe● Apoio do Scrum Master

● Planejamento de alto nível é considerado

Page 36: Scrum - Metodo ágil

Sprint Backlog

● EstóriasClarificadas e refinadasQuebradas em tarefasEstimadas

Quero que os usuários do portal possam planejar suas férias, escolhendo itinerários online

Quero que os usuários do portal possam planejar suas férias, escolhendo itinerários online

Modelagem (8 horas)Codificar interface (4)Escrever textos (4)Codificar a classe foo (6)Atualizar testes de performance (4)

Page 37: Scrum - Metodo ágil

Sprint Backlog

TarefasTarefasCodificar interface de usuário

Codificar regra de negócio

Testar

Escrever help online

Escrever a classe foo

SegSeg8

16

8

12

8

TerTer4

12

16

8

QuaQua QuiQui

4

11

8

4

SexSex

8

8

Adicionar log de erros

8

10

16

8

8

Page 38: Scrum - Metodo ágil

Sprint Backlog

● Cada indivíduo escolhe o trabalho que faráTrabalhos nunca são atribuídos

● Atualização diária da estimativa do trabalho restante● Qualquer membro da equipe pode adicionar, apagar ou mudar tarefas● O trabalho aparece a partir do Sprint● Se uma tarefa não é clara, defina-a como um item com uma quantidade maior de tempo e subdivida-a depois● Atualize as coisas a serem feitas na medida em que se tornam mais conhecidas

Page 39: Scrum - Metodo ágil

Task BoardPainel de Controle

Estórias do Usuário(Backlog do Sprint)

Tarefas Tarefas CompletadasBurndown Chart

(Controle do Tempo)

Page 40: Scrum - Metodo ágil

Task BoardPainel de Controle

Page 41: Scrum - Metodo ágil

Burndown Chart

0

100

200

300

400

500

600

700

800

Ajuste no Backlog

Inclinação = Velocidade

Velocidade estimada é mostrada como baseline para ajustes

Duração do Sprint (em dias)

Horas deTrabalhoRestantes

Page 42: Scrum - Metodo ágil

Task BoardPainel de Controle

● Espaço para tarefas não previstasProblemas podem acontecerTrabalho não planejado

Page 43: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 44: Scrum - Metodo ágil

Scrum Diário

● ParâmetrosMesmo local e horário15 minutosTodo mundo é convidadoApenas podem falar ● Membros da equipe● Scrum Master● Dono do Produto

Page 45: Scrum - Metodo ágil

Scrum Diário

● Três perguntasO que você fez desde nossa última reunião?Quais problemas enfrentou?O que você fará até nossa próxima reunião?

● Não é para a solução de problemas● Ajuda a evitar reuniões adicionais desnecessárias ● Respostas não são um “relatório” para o Scrum Master

São COMPROMISSOS perante os pares

Page 46: Scrum - Metodo ágil

Burndown Chart

0

100

200

300

400

500

600

700

800

Ajuste no Backlog

Inclinação = Velocidade

Velocidade estimada é mostrada como baseline para ajustes

Duração do Sprint (em dias)

Horas deTrabalhoRestantes

Page 47: Scrum - Metodo ágil

Burndown Chart

● Mostra o trabalho sendo “queimado”Redução do número de horas estimadas para completar o objetivo do Sprint● Exemplo: um trabalho de 600 horas = 6 pessoas x

20 dias x 5 horas/dia● Cada dia → trabalho de 30 horas

● O gráfico deve ser estar completo (30 dias)● A velocidade e carga de trabalho ideais são mostradas como uma baseline

No exemplo do gráfico anterior, a equipe eliminou a tarefa de menor prioridade e fez hora extra para compensar um erro na estimativa inicial

Page 48: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 49: Scrum - Metodo ágil

Revisão do Sprint

● Equipe apresenta os resultados obtidos durante o Sprint

Novas funcionalidades ou sua arquitetura● Informal

2 horas de preparaçãoSem slides

● Toda a equipe participa● Todo mundo é convidado

Page 50: Scrum - Metodo ágil

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Page 51: Scrum - Metodo ágil

Retrospectiva do Sprint

● Periodicamente, observe o que funciona e o que não funciona

Tipicamente de 15 a 30 minutos● Feita após cada Sprint● Toda a equipe participa

Page 52: Scrum - Metodo ágil

Retrospectiva do Sprint

● A equipe discute o que gostaria de:

Iniciar a fazerIniciar a fazerIniciar a fazerIniciar a fazer

Parar de fazerParar de fazerParar de fazerParar de fazer

Continuar Continuar fazendofazendo

Continuar Continuar fazendofazendo

Esta é uma das várias maneiras de se conduzir

uma retrospectiva do

Sprint

Page 53: Scrum - Metodo ágil

Resumo

Page 54: Scrum - Metodo ágil

Referências

Sommerville, I. (2007) Software Engineering. Oitava Edição. Addison-WesleyPressman, R. S. (2005) Software Engineering – A Practitioner's Approach. Sexta Edição. MCGraw-HillKniberg, H. (2007) Scrum and XP from the Trenches – How We Do Scum. Edição Online. Disponível em http://www.infoq.com/minibooks/%20scrum-xp-from-the-trenches.