scrum - metodo ágil

Post on 19-Dec-2015

37 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

metodo agil de engenharia de software.

TRANSCRIPT

Engenharia de Software

SCRUM

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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

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

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Conceitos Básicos

● Conceitos iniciaisEstóriaBacklogSprint Scrum

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Estória

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

Estória

● Exemplo de estória

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

a escola.

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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

Backlog

Sprint

Release

Alta

Baixa

Futuros Releases

Valor

Risco

Conhecimento

PrioridadeCusto

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Sprint

● Inglês paraArrancada (em corrida de velocidade)

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

Sprint

Backlog

Itens de

Sprint

(Duração Fixa)

Software

Objetivos do Sprint

Backlog do Sprint decomposto pela

equipe

Software Revisado pelo Cliente

Mudança

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Scrum

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

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

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Equipe Scrum

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

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

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

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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 )

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 )

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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

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

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

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)

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

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

Task BoardPainel de Controle

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

Tarefas Tarefas CompletadasBurndown Chart

(Controle do Tempo)

Task BoardPainel de Controle

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

Task BoardPainel de Controle

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

Scrum Diário

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

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

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

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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

Roteiro

● Visão Geral● Conceitos Básicos

EstóriaBacklogSprintScrum

● Equipe Scrum● Atividades

Planejamento do SprintScrum DiárioRevisão Retrospectiva

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

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

Resumo

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.

top related