SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Exemplo de um Processo de Software - Scrum

Introdução à
Introduç
Engenharia de Software
Unidade III – Exemplo de um
Processo de Software - Scrum
Pedro de Alcântara dos Santos Neto
pasn@ufpi.edu.br

Exemplo de um Processo de Software - Scrum

Roteiro
Explicaremos o SCRUM seguindo a seguinte
estrutura:
Um breve histórico
histó
Detalharemos os Papéis
Papé
Detalharemos todas as cerimônias prescritas pelo
processo
– Ritual com formalidades a serem seguidas

Detalharemos, dentro das cerimônias, resultados
associados
– Correspondendo aos principais artefatos
a serem gerados nos projetos

Exemplo de um Processo de Software - Scrum

Um breve histórico
histó

Quem usa Scrum?
Scrum?

Jeff Sutherland

Uso inicial do scrum na Easel em 1993
IDX e mais de 500 pessoas usando scrum
Ken Schwaber

Apresentação na OOPSLA 96 com Sutherland
Apresentaç
Três livros sobre Scrum
Mike Beedle

Padrões para o Scrum na PLOPD4
Ken Schwaber and Mike Cohn

Fundaram a Scrum Alliance em 2002, inicialmente
junto com a Agile Alliance

Exemplo de um Processo de Software - Scrum

Para que o Scrum tem sido usado?
Software comercial
Desenvolvimento interno
Desenvolvimento contratado
(terceirização)
(terceirizaç
Projetos de preço fixo
preç
Aplicações Financeiras
Aplicaç
Aplicações certificadas pela isso
Aplicaç
9001
Sistemas embarcados
Sistemas disponíveis 24x7
disponí
Desenvolvimento por hackers
solitários
solitá

Exemplo de um Processo de Software - Scrum

Video games
Sistemas para suporte à vida
Sistemas para controle de satélites
saté
Websites
Software para handhelds
Telefones celulares
Aplicações para redes
Aplicaç
Aplicações de ISV (Independent
Aplicaç
Software Vendors)
Algumas das maiores aplicações em
aplicaç
produção
produç

Microsoft
Yahoo
Google
Electronic Arts
High Moon Studios
Lockheed Martin
Philips
Siemens
Nokia
Capital One
BBC
Intuit

Intuit
Nielsen Media
First American Real Estate
BMC Software
Ipswitch
John Deere
Lexis Nexis
Sabre
Salesforce.com
Time Warner
Turner Broadcasting
Oce

Exemplo de um Processo de Software - Scrum

Para que o Scrum tem sido usado?
Equipes que se auto-organizam
autoO produto evolui em uma série de “Sprints” mensais
sé
Sprints”
O Sprint é um período definido em que se trabalhará buscando
perí
trabalhará
cumprir um objetivo

Os requisitos são listados em um “Product Backlog”
Backlog”
Não há prática de engenharia prescrita (o Scrum
há prá
adequa-se a todas)
adequaUsa regras generativas na criação de um ambiente ágil
criaç
para a entrega de projetos
É uma das “metodologias ágeis”
geis”

1
Exemplo de um Processo de Software - Scrum

Os Papéis...
Papé

Exemplo de um Processo de Software - Scrum

Com relação à equipe
relaç
Aconselhado para equipes com pelo menos 3
colaboradores
Idealmente de 5 a 9

Multi-funcional
MultiProgramadores, testadores, webdesigners, etc.
Programadores, testadores, webdesigners,
Tempo integral

– Quando houver estagiários, todos no mesmo turno
estagiá rios,

Trocas só na mudança de Sprints
mudanç
Todos devem sentar junto.
junto.
Ter funções variáveis
funç
variá
podendo ser fixas em um sprint

Pedir ajuda e ajudar sempre que necessário
necessá

Exemplo de um Processo de Software - Scrum

Com relação ao Scrum Master
relaç
Toda equipe deve ter um Scrum Master
Representa a gerência para o projeto
Responsável pela aplicação dos valores
Responsá
aplicaç
e práticas do Scrum
prá
Remove obstáculos
obstá
Garante a plena funcionalidade e
produtividade da equipe
Garante a colaboração entre os
colaboraç
diversos papéis e funções
papé
funç
Escudo para interferências externas

Exemplo de um Processo de Software - Scrum

As Cerimônias...

Exemplo de um Processo de Software - Scrum

Com relação ao Product Owner
relaç
Todo projeto deve ter um Product Owner
Idealmente membro dos clientes do produto
Mas em casos excepcionais um membro da equipe

Ele deve priorizar as ações da equipe
Para isso, deve entender o produto a ponto de priorizar
isso,
sem gerar problemas

Ajusta funcionalidades e prioridades
Aceita ou rejeita o resultado dos trabalhos

Exemplo de um Processo de Software - Scrum

Cerimônias: A Reunião Inicial

2
Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunião Inicial

A Reunião Inicial

Definição das
Definiç
estórias/funcionalidades
estó
do produto

Como obter informações sobre o produto?
informaç
Estudando e lendo materiais relacionados
Analisando softwares pré-existentes
pré
Perguntando...

Product backlog

Geralmente feito com a participação de toda a
participaç
equipe + product owner e, opcionalmente,
outros membros representante dos clientes
Um ou mais dias de conversas, com registro dos
dados em um documento

O quê perguntar?
Tente seguir os passos do negócio para se fazer algo
negó
– Sempre que um passo for descrito, questione o que
necessita para aquilo ser exeqüível
exeqüível
– Se existe algo anterior, questione sobre ele
– Repita esses passos até que tudo tenha sido coberto...
até

Equivalente ao levantamento de requisitos
Nos processos tradicionais

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunião Inicial
Como registrar?
Diagrama de casos de uso fornece uma boa visão
sobre os atores do sistema e funcionalidades
Composto por atores e casos de uso
– Atores são papéis associados ao uso do sistema (e não
papé
pessoas!)
– Casos de uso são as funcionalidades do produto, que
possuem um valor para seus usuários, sem lacunas
usuá
nem superposição com outros casos de uso
superposiç

Exemplo de um Processo de Software - Scrum

Número
de ordem

Caso de uso

1.

Cadastro de
Solicitação de Leito

2.
3.

4.

5.

6.

Descrição

Exemplo de um Processo de Software - Scrum

Número
de ordem

Ator

1.

Intensivista

Autorização de envio Registro da autorização da solicitação para constar na lista de
para lista de espera espera por leitos.

2.

Regulador

Controle da Lista de Controle da lista de espera por leitos, com registro de
evolução dos pacientes, além de registro de entrada ou
Espera
encaminhamento em leitos hospitalares e eventual remoção da
lista.

3.

Auditor

4.

Gerente

5.

Plantonista

6.

Médico

7.

Enfermeira

8.

Auxiliar

9.

Chefe de Setor

Cadastro das solicitações de leitos para pacientes com
necessidades de internação.

Controle da Lista de Controle dos encaminhamentos de pacientes para leitos, com
remoção automática da reserva associada caso não seja
Encaminhamento
realizado o registro de entrada no prazo previsto.
Controle de
Internações

Controle das internações em leitos, com possibilidade registro
de alta, e conseqüente liberação do leito, além de
transferências para outros leitos.

Controle de Leitos

Bloqueio e liberação de leitos.

Definição
Médico plantonista que coordena a UTI no hospital e faz a
solicitação das vagas.
Médico regulador da Central de Leitos, que recebe, avalia e
gerencia as solicitações e eventuais internações.
Médico da Central de Leitos, que visita os hospitais e verifica se as
informações no sistema correspondem à realidade.
Médico regulador da Central de Leitos que atua em casos
excepcionais, controla leitos e usuários do sistema .
Profissional da saúde escalado em plantão, responsável por
verificar a necessidade de internação de um paciente em UTI.
Profissional da medicina escalado em Plantão.
Profissional de enfermagem, escalado em Plantão e responsável
por auxiliar o Intensivista em suas tarefas.
Enfermeira escalada em Plantão responsável por auxiliar o
Intensivista em suas tarefas.
Profissional de saúde responsável por controlar as escalas de
plantão de um hospital.

3
Exemplo de um Processo de Software - Scrum

A Reunião Inicial

Exemplo de um Processo de Software - Scrum

A Reunião Inicial

Principal resultado: Product Backlog

Principal resultado: Product Backlog

Representa os requisitos do produto
– Uma lista de todo o trabalho desejado no projeto

Cada item deve ter seu peso de acordo com a
vontade dos usuários
usuá
Priorizado pelo dono do produto
Repriorizado no início de cada Sprint
iní

ID
2481
2567
2344
2211
2332
3221
3342

N ome
Preparar ambiente para integração contínua
Criar projeto base no C VS
Modelar Contrato e Remuneração
Implementar Gestão de Contrato
Implementar Gestão de Remuneração
Testes F uncionais Gest ão de Contrato
Testes F uncionais Gest ão de Remuneração

Prioridade
40
10
10
20
20
50
50

Tem po
Estimado
Tempo Gasto
12
2
1
4
6
8
10
8
14
8
8

Product Backlog

Exemplo de um Processo de Software - Scrum

Cerimônias: A Reunião de Planejamento

Exemplo de um Processo de Software - Scrum

Planejamento
A equipe seleciona itens do Product Backlog com os
quais compromete-se a concluir
comprometeDefinição da carga de trabalho da equipe
Definiç
O Sprint Backlog é criado
Com criação dos cartões
criaç

Tarefas identificadas e estimadas
Criação do gráfico de acompanhamento
Criaç
grá
Definição do local e horário das reuniões diárias
Definiç
horá
diá
Definição do conceito de “feito”
Definiç
feito”
Organização do quadro do projeto
Organizaç

Exemplo de um Processo de Software - Scrum

Planejamento

Exemplo de um Processo de Software - Scrum

Planejamento
É importante a participação do product owner,
participaç
owner,
para entender o funcionamento...
Para determinação da carga de trabalho do
determinaç
grupo, devemos calcular o tempo disponível
disponí
Definir tamanho do Sprint (em dias)
– Normalmente usa-se 2 semanas (10 dias úteis)
usa– Esse número pode ser menor, quando precisamos ter
nú
respostas mais rápidas e para obter dados sobre
rá
produtividade
– Ou maiores, quando as coisas já estão mais estáveis
já
está

4
Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento

Planejamento

Um grande problema: Tarefas não planejadas!
Tarefas que surgem durante o sprint e que
necessitam ser realizadas
Muito comum nos locais que tem softwares em
operação
operaç
Como resolver essa questão, visto que temos que
planejar as atividades?

Fator de ajuste
Percentual de tempo produtivo efetivamente
utilizado para computar carga de trabalho da
equipe
Colaboradores que trabalham 8h/dia, dificilmente
passam 8h realizando tarefas diretamente
relacionadas ao desenvolvimento
– Existe tempo para ler e-mails
e– Conversar com colegas
– Tomar café, ir ao banheiro, etc...
café

– Previsão de tempo para tais tarefas
– Podem ou não fazer parte do sprint
– Registro do tempo gasto, para facilitar novas
estimativas
– O fator de ajuste pode ser utilizado nessa direção!
direç

Um fator de ajuste muito comum é usar 75%
– Mas esse número depende da organização...
nú
organizaç

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento

Planejamento

Dedicação dos membros da equipe
Dedicaç

Exemplo

Colaboradores com cargos chaves no processo
precisam ter sua carga de trabalho analisada
– Scrum masters normalmente gastam metade do
tempo útil em tarefas relacionadas à condução do
conduç
processo
– Quando um colaborador assume o papel de Product
owner, provavelmente gaste também metade do
owner,
també
tempo útil com tarefas de verificação e eliminação de
verificaç
eliminaç
dúvidas, além do contato com os usuários do produto
alé
usuá

Objetivo
Duração
Fator de ajuste

Total = dedicação diária * duração sprint * fator ajuste

Contrato e Remuneração
10
0,6

Colaborador
Pedro
Emanoel
Daniel
Danilo
Eric Muniz

Dedicação diária
4
8
8
4
6

Total do Sprint

Cada projeto é uma realidade diferente!

Product owner

Total
24
48
48
24
36
180

Fator de ajuste reduzido
por conta do não
cumprimento dos prazos

Scrum Master

Colaborador em outro projeto

Exemplo de um Processo de Software - Scrum

Planejamento

Total do Sprint

Exemplo de um Processo de Software - Scrum

180

Gráfico de acompanhamento
Grá

Gráfico de acompanhamento
Grá
Representa a quantidade de horas associadas às
tarefas do Sprint
Idealmente, as tarefas deveriam ser finalizadas ao
longo dos dias do Sprint
O gráfico ideal é uma reta que inicia na carga de
grá
trabalho da equipe (180h no exemplo) e finaliza em
0 no último dia do Sprint
A cada tarefa concluída e verificada, devemos
concluí
descer a quantidade de horas no gráfico
grá

h

Gráfico de Acompanhamento
180
170
160
150
140
130
120
110
100
90
80
70
60
50
40
30
20
10
0

0

1

2

3

4

5
Dias do Sprint

Planejamento

6

7

8

9

10

– Discutido mais a frente...

5
Exemplo de um Processo de Software - Scrum

Planejamento

Planejamento
Devem ser
utilizados cartões
para representar as
tarefas

NOME

ID

DESCRIÇÃO

Criados no
planejamento

O verso pode ser
utilizado para
observações
observaç

Exemplo de um Processo de Software - Scrum

COMO VERIFICAR

Tempo
Estimado

Tempo
Real

Responsável
pela tarefa

Exemplo de um Processo de Software - Scrum

Planejamento
Divisão dos cartões
Tempo estimado: tempo especificado pela equipe para
realização da tarefa
realizaç
– Como estimar tal tempo? Jogo do planejamento
» Todos da equipe possuem cartas
» Discute-se sobre a tarefa e solicita-se que todos joguem
Discutesolicitacartas representando sua estimativa (viradas para que
ninguém veja a estimativa antes que todos estimem!)
ningué

Exemplo de um Processo de Software - Scrum

Planejamento
Divisão dos cartões
Tempo real:
– Tempo efetivamente utilizado para realização da tarefa
realizaç
– Fundamental seu registro para auxiliar estimativas
futuras

Responsável
Responsá
– Colaborador encarregado de realizar a tarefa
– A princípio não deve ser pré-estabelecido
princí
pré
» Cada um faz o que mais lhe agrada das tarefas

– Mas o bom senso sempre deve imperar!

Divisão dos cartões
ID: identificador da tarefa
– Utilizado para acompanhamento em ferramentas que controlam
a apropriação de horas
apropriaç
Nome
Descrição: texto simples e objetivo descrevendo a tarefa
Descriç
Como verificar: indicação de como deve ser feita a verificação dessa
indicaç
verificaç
tarefa, quando a mesma estiver concluída
concluí
– Embora pareça “dispensável”, quando existem muitas tarefas a
pareç dispensá vel”
verificar, podemos perder o foco no que é importante
» Fortemente aconselhável para toda e qualquer equipe
aconselhá
» Base para construção dos testes para a funcionalidade
construç

Exemplo de um Processo de Software - Scrum

Planejamento
Divisão dos cartões
Tempo estimado:
– Pode-se considerar a média, descartar alguns valores
Podemé
(maior e menor, por exemplo)
– O importante é estabelecer parâmetros de aceitação
aceitaç
»
»
»
»
»

Um “?” indica que mais explicações são necessárias
explicaç
necessá
Um “0” indica algo tão pequeno que não merece estimar
Uma xícara indica necessidade de tempo pra pensar...
xí
Tarefas acima de 16h merecem ser divididas
Estimativas muito diferentes merecem explicações
explicaç

Exemplo de um Processo de Software - Scrum

Planejamento
Como selecionar tarefas para o Sprint?
Sprint?
Deve-se selecionar do Backlog as tarefas mais
Deveimportantes
Encaixando dentro da carga de trabalho indicada
pela equipe
De forma a termos o maior
aproveitamento dessa
carga de trabalho

» O objetivo é seguir o plano, desde que não se crie ilhas do
conhecimento

6
Exemplo de um Processo de Software - Scrum

Planejamento
Como selecionar tarefas para o Sprint?
Sprint?
As tarefas selecionadas representam um
compromisso assumido com o Product Owner
Para isso, todos devem concordar e acreditar nas
estimativas
– Mais uma vez o bom senso deve imperar
– Se alguém não acredita no que foi dimensionado
algué
para o Sprint, fale sobre isso!!!
Sprint,

Exemplo de um Processo de Software - Scrum

Planejamento
Definição de Feito (DoD)
Definiç
(DoD)
Para uma tarefa de implementação no modelo:
implementaç
modelo:
– Criação das classes no projeto
Criaç
– Criação do teste de unidade
Criaç
– Inclusão do teste na integração contínua
integraç contí
– Classes no CVS

Para uma tarefa de implementação na visão:
implementaç
visão:
– Criação das classes no projeto
Criaç
– Criação dos testes funcionais com Selenium
Criaç
– Classes no CVS
– Redação do manual do usuário e inclusão no CVS
Redaç
usuá

Exemplo de um Processo de Software - Scrum

Planejamento
Definição do local e horário das reuniões
Definiç
horá
diárias
diá
No planejamento é fundamental especificar tais
dados
Essas reuniões são vitais para o bom andamento do
projeto
Organizar a equipe de forma que todos participem

Exemplo de um Processo de Software - Scrum

Planejamento
Definição de Feito (DoD)
Definiç
(DoD)
Todo projeto deve ter uma definição claro sobre o
definiç
que é considerado feito!
feito!
Para uma tarefa de modelagem, por exemplo:
modelagem,
exemplo:
– Diagrama representando a modelagem feito na
ferramenta JUDE
– Diagrama contido no CVS
– Revisão em conjunto com o Scrum Master

Exemplo de um Processo de Software - Scrum

Planejamento
Definição de Feito (DoD)
Definiç
(DoD)
Podem haver definições de feito gerais na
definiç
organização
organizaç
– Podendo haver especializações por projeto
especializaç

É importante deixá-las clara no planejamento, para
deixá
planejamento,
que todos saibam que existe e com isso garantir sua
utilização!
utilizaç ão!
Dependendo do projeto, novas definições precisam
projeto,
definiç
ser criadas
– O que é feito para uma tarefa de documentação?
documentaç ão?

Exemplo de um Processo de Software - Scrum

Planejamento
Definição da data, horário e local para
Definiç
horá
apresentação dos resultados do Sprint
apresentaç
Definição da data, horário e local para
Definiç
horá
apresentação dos resultados do Sprint
apresentaç
Todos devem saber das datas!

– Problemas quando temos pessoas dedicadas
parcialmente

7
Exemplo de um Processo de Software - Scrum

Planejamento
Organização do quadro do projeto
Organizaç

Exemplo de um Processo de Software - Scrum

Planejamento
Organização do quadro do projeto
Organizaç
Os quadros devem ter as seguintes divisões para
tarefas
– Não iniciadas, Em execução, Concluídas, Verificadas
iniciadas,
execuç ão, Concluí das,

Exemplo de um Processo de Software - Scrum

Planejamento

Exemplo de um Processo de Software - Scrum

Cerimônias: A Reunião Diária
Diá

Organização do quadro do projeto
Organizaç
Área para Objetivo do Sprint
Área para o Gráfico de Acompanhamento
Grá
Área para especificar a Equipe
Área para detalhar a data de início e fim do sprint
iní
Área para especificar dia da apresentação dos
apresentaç
resultados
Área para especificar local e horário das reuniões
horá
diárias
diá
Área para especificar o dia da retrospectiva

Exemplo de um Processo de Software - Scrum

A Reunião Diária
Diá
Importante: Deve ser diária!
Importante:
diária!

Exemplo de um Processo de Software - Scrum

A Reunião Diária
Diá
Todos respondem 3 perguntas:
perguntas:

Em torno de 15 minutos

Todos em pé!

1

O que foi feito de ontem pra hoje?
O que foi feito de ontem pra hoje?

Facilita o gerenciamento do tempo

Não é para a solução de problemas
soluç
Problemas devem ser identificados
Sua solução é tratada depois
soluç

Ajuda a evitar reuniões adicionais
desnecessárias
desnecessá

2
O que será feito de hoje até amanhã?
O que será feito de hoje até amanhã?

3
Existe algum impedimento?
Existe algum impedimento?

8
Exemplo de um Processo de Software - Scrum

A Reunião Diária
Diá

Exemplo de um Processo de Software - Scrum

Cerimônia: Acompanhamento do Projeto

Problemas são detectados e discutidos
inicialmente
Impedimentos são registrados
Itens não planejados também são registrados
també
para acompanhamento
Todos falam, sob a supervisão do scrum master
falam,

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Além das reuniões diárias, o Scrum Master
Alé
diá
possui outras tarefas rotineiras:
Verificar tarefas concluídas
concluí
Atualizar gráfico de acompanhamento
grá
Resolver impedimentos
Atuar quando houver desvio no planejamento

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Verificação das tarefas concluídas
Verificaç
concluí
Idealmente deve ser feito pelo Scrum Master +
Product Owner
Utilizar a definição de “como verificar” existente no
definiç
verificar”
cartão
Seguir a definição de feito
definiç
– Se algum item não coincidir com o especificado,
indicar ao responsável para efetiva conclusão
responsá
– Muito cuidado com os testes!

Para tarefas de implementação
implementaç
– Não se ater somente no funcionamento
– Incluir a análise do código
aná
có

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Atualização do gráfico de acompanhamento
Atualizaç
grá
Para cada tarefa verificada, baixar número
nú
correspondente à estimativa no gráfico
grá
– Estimativa e não o tempo efetivamente gasto!!!
– Mas pode-se ter uma outra linha com o tempo
podetrabalhado
» Existem controvérsias sobre
contrové
o que utilizar, assim, use as
duas linhas

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Resolução de impedimentos
Resoluç
Durante as reuniões diárias impedimentos podem
diá
ser identificados
Cabe ao Scrum Master garantir sua resolução
resoluç
– Isso pode significar atuar junto à gerência

Os impedimentos devem ser acompanhados
– Registrar identificação do impedimento
identificaç
» Ou seja, criar cartão diferenciado, associado ao cartão
impedido e deixar isso bem visível
visí

– Registrar solução
soluç

9
Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Atuação nos desvios de planejamento
Atuaç
Durante a atualização do gráfico de
atualizaç
grá
acompanhamento podem ser notados grandes
desvios
– O Scrum Master deve atuar para tentar identficar
causas
– Tentando propor contramedidas para reduzir os
atrasos

Atividade freqüente e contínua...
freqü
contí
– Mas sem um guia sobre como agir
– Cada caso é um caso...

Exemplo de um Processo de Software - Scrum

Cerimônias: Apresentação do Sprint
Apresentaç

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Os membros da equipe devem:
“Pegar” uma tarefa e indicar isso através do quadro
Pegar”
atravé
– Mudando para área “em execução” e registrado-se como
execuç ão” registradoresponsável
responsá
Atualizar registro de tempo gasto na tarefa
– Registrando no meio indicado pela empresa (atualmente
no Quantum)
– Onde não existe meio eletrônico, pode-se usar marcas
poderepresentando tempo gasto (*, |_|, etc.)
Informar a finalização de uma tarefa, com registro do tempo
finalizaç
gasto
– Lembrando que ela pode voltar para “em execução”, caso
execuç ão”
não seja aprovada...
» Ou seja, não finalize no Quantum tarefas ainda não
verificadas...

Exemplo de um Processo de Software - Scrum

Apresentação do Sprint
Apresentaç
Equipe apresenta os resultados obtidos durante
o Sprint
Tipicamente, demonstração de novas
Tipicamente, demonstraç
funcionalidades ou sua arquitetura
Informal
Sem muita preparação
preparaç
– Preocupar-se com o ambiente
Preocupar» reserva de sala, equipamentos
sala,

Sem slides

Toda a equipe participa
Todos são convidados

Exemplo de um Processo de Software - Scrum

Cerimônias: Retrospectiva

Exemplo de um Processo de Software - Scrum

Retrospectiva
Durante o Sprint, é necessário observar o que funciona
necessá
e o que não funciona
Na retrospectiva, isso deve ser discutido por todos
retrospectiva,
Tipicamente uma reunião rápida, com cerca de 1h
pida,
Feita após cada Sprint
apó
Toda a equipe participa
ScrumMaster
Dono do produto
Membros da equipe
Clientes e outros

10
Exemplo de um Processo de Software - Scrum

Retrospectiva
A equipe tenta responder a
três questões
O que você achou muito bom
no Sprint e que deveria
continuar sendo feito
O que você achou muito ruim
e não deveria mais ser feito
(ou mudado)
O que não está sendo feito
está
mas deveria iniciar

Retrospectiva

Continuar
Continuar
fazendo
fazendo
Parar de fazer
Parar de fazer

Retrospectiva

Evitar o que foi considerado ruim
Garantir que as coisas boas
continuam
Garantir que o que foi sugerido
iniciar realmente iniciou

Cada membro anota as
respostas em cartões
Cada cartão com uma
resposta
No máximo 3 cartões por
má
pergunta

As resposta similares devem
ser agrupadas

Continuar
Continuar
fazendo
fazendo
Parar de fazer
Parar de fazer
Iniciar a fazer
Iniciar a fazer

Iniciar a fazer
Iniciar a fazer

Exemplo de um Processo de Software - Scrum

Para cada questão registrar as 3
respostas mais utilizadas
Elas devem ser utilizadas pelo
Scrum Master na condução dos
conduç
novos Sprints

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Final do Sprint

Continuar
Continuar
fazendo
fazendo

Terminei um Sprint, e agora?
Sprint,
Utilize no máximo um dia para pequenos ajustes
má
e realize novo planejamento

Parar de fazer
Parar de fazer
Iniciar a fazer
Iniciar a fazer

Exemplo de um Processo de Software - Scrum

Introdução à
Introduç
Engenharia de Software
Unidade III – Exemplo de um
Processo de Software - Scrum
Pedro de Alcântara dos Santos Neto
pasn@ufpi.edu.br

11

Más contenido relacionado

La actualidad más candente

5 Porquê’s, 7 Perdas e 2 SS
5 Porquê’s, 7 Perdas e 2 SS5 Porquê’s, 7 Perdas e 2 SS
5 Porquê’s, 7 Perdas e 2 SSHubner Braz
 
Scrum Guide Português
Scrum Guide PortuguêsScrum Guide Português
Scrum Guide PortuguêsDavid Oliveira
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMLucas Vinícius
 
2020 scrum-guide-portuguese br
2020 scrum-guide-portuguese br2020 scrum-guide-portuguese br
2020 scrum-guide-portuguese brPriscila Pinheiro
 
Apostila scrum fundamentals
Apostila scrum fundamentalsApostila scrum fundamentals
Apostila scrum fundamentalsAna Clara Mendes
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Diego Pacheco
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsLocaweb
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Keila Freitas
 

La actualidad más candente (18)

TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 
5 Porquê’s, 7 Perdas e 2 SS
5 Porquê’s, 7 Perdas e 2 SS5 Porquê’s, 7 Perdas e 2 SS
5 Porquê’s, 7 Perdas e 2 SS
 
Scrum Guide Português
Scrum Guide PortuguêsScrum Guide Português
Scrum Guide Português
 
Scrum - Visão Geral
Scrum - Visão GeralScrum - Visão Geral
Scrum - Visão Geral
 
Guia do scrum
Guia do scrumGuia do scrum
Guia do scrum
 
Scrum - Teoria do Scrum
Scrum - Teoria do Scrum Scrum - Teoria do Scrum
Scrum - Teoria do Scrum
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
2020 scrum-guide-portuguese br
2020 scrum-guide-portuguese br2020 scrum-guide-portuguese br
2020 scrum-guide-portuguese br
 
Metodologia SCRUM
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
 
Apostila scrum fundamentals
Apostila scrum fundamentalsApostila scrum fundamentals
Apostila scrum fundamentals
 
Resumo Scrum Guide
Resumo Scrum GuideResumo Scrum Guide
Resumo Scrum Guide
 
Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0Vivenciando dev ops para além da automação de infraestrutura 2.0
Vivenciando dev ops para além da automação de infraestrutura 2.0
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Introdução ao XP
Introdução ao XPIntrodução ao XP
Introdução ao XP
 
Scrum
ScrumScrum
Scrum
 
Testes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJsTestes utilizando cucumber + PhantomJs
Testes utilizando cucumber + PhantomJs
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
Estudo de ferramentas em Software Livre para gestão ágil de projetos de desen...
 

Destacado

Velas Precisam ficar Acesas
Velas Precisam ficar AcesasVelas Precisam ficar Acesas
Velas Precisam ficar AcesasAndre Lenz
 
Apresentaçao acordo ortográfico da língua portuguesa
Apresentaçao acordo ortográfico da língua portuguesaApresentaçao acordo ortográfico da língua portuguesa
Apresentaçao acordo ortográfico da língua portuguesarobioprof
 
Noções de direito aula 05
Noções de direito   aula 05Noções de direito   aula 05
Noções de direito aula 05Nadsonea Azevedo
 
Vacaciones a traves de 4 generaciones
Vacaciones a traves de 4 generacionesVacaciones a traves de 4 generaciones
Vacaciones a traves de 4 generacionesPablo Vanevic
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome EconomyHelge Tennø
 

Destacado (8)

Velas Precisam ficar Acesas
Velas Precisam ficar AcesasVelas Precisam ficar Acesas
Velas Precisam ficar Acesas
 
Parque América
Parque AméricaParque América
Parque América
 
Apresentaçao acordo ortográfico da língua portuguesa
Apresentaçao acordo ortográfico da língua portuguesaApresentaçao acordo ortográfico da língua portuguesa
Apresentaçao acordo ortográfico da língua portuguesa
 
Afirmacao
AfirmacaoAfirmacao
Afirmacao
 
Intercambio Das Eics
Intercambio Das EicsIntercambio Das Eics
Intercambio Das Eics
 
Noções de direito aula 05
Noções de direito   aula 05Noções de direito   aula 05
Noções de direito aula 05
 
Vacaciones a traves de 4 generaciones
Vacaciones a traves de 4 generacionesVacaciones a traves de 4 generaciones
Vacaciones a traves de 4 generaciones
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar a Slides exemplodeprocessoscrum

Redistributable Intro To Scrum
Redistributable Intro To ScrumRedistributable Intro To Scrum
Redistributable Intro To ScrumJuan Bernabó
 
Scrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimentoScrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimentoRalph Rassweiler
 
Palestra de SCRUM em Juazeiro
Palestra de SCRUM em JuazeiroPalestra de SCRUM em Juazeiro
Palestra de SCRUM em JuazeiroPaulo Furtado
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes ExploratóriosAlan Carlos
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaRalph Rassweiler
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumJuan Bernabó
 
Metodologia agil scrum
Metodologia agil scrumMetodologia agil scrum
Metodologia agil scrumPablo Juan ஃ
 
Scrum - seminario
Scrum - seminarioScrum - seminario
Scrum - seminariorenatofabro
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 
Oficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisOficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisProfa Karen Borges
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumFerramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumThiago Barros, PSM
 
Aplicando Scrum na prática para times ágeis
Aplicando Scrum na prática para times ágeisAplicando Scrum na prática para times ágeis
Aplicando Scrum na prática para times ágeisfayrusm
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...Luiz Lemos
 
Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumGustavo Quezada
 
Processos de Software - 101
Processos  de Software - 101Processos  de Software - 101
Processos de Software - 101Lucas Amaral
 

Similar a Slides exemplodeprocessoscrum (20)

Redistributable Intro To Scrum
Redistributable Intro To ScrumRedistributable Intro To Scrum
Redistributable Intro To Scrum
 
Scrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimentoScrum no contexto de processos de desenvolvimento
Scrum no contexto de processos de desenvolvimento
 
Palestra de SCRUM em Juazeiro
Palestra de SCRUM em JuazeiroPalestra de SCRUM em Juazeiro
Palestra de SCRUM em Juazeiro
 
ALM - Testes Exploratórios
ALM - Testes ExploratóriosALM - Testes Exploratórios
ALM - Testes Exploratórios
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com Scrum
 
Metodologia agil scrum
Metodologia agil scrumMetodologia agil scrum
Metodologia agil scrum
 
Scrum - seminario
Scrum - seminarioScrum - seminario
Scrum - seminario
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Desmistificando Agile & Scrum
Desmistificando Agile & ScrumDesmistificando Agile & Scrum
Desmistificando Agile & Scrum
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Gerenciamento de projetos de TI
Gerenciamento de projetos de TIGerenciamento de projetos de TI
Gerenciamento de projetos de TI
 
Oficina de Metodologias Ágeis
Oficina de Metodologias ÁgeisOficina de Metodologias Ágeis
Oficina de Metodologias Ágeis
 
Scrum
ScrumScrum
Scrum
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com ScrumFerramentas Livres para a Gestão de Projetos Ágeis com Scrum
Ferramentas Livres para a Gestão de Projetos Ágeis com Scrum
 
Aplicando Scrum na prática para times ágeis
Aplicando Scrum na prática para times ágeisAplicando Scrum na prática para times ágeis
Aplicando Scrum na prática para times ágeis
 
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À       Demanda...
Scrum: Uma Nova Abordagem No Desenvolvimento De Software Face À Demanda...
 
Participação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos ScrumParticipação do Time de Teste em Projetos Scrum
Participação do Time de Teste em Projetos Scrum
 
Processos de Software - 101
Processos  de Software - 101Processos  de Software - 101
Processos de Software - 101
 

Slides exemplodeprocessoscrum

  • 1. Exemplo de um Processo de Software - Scrum Introdução à Introduç Engenharia de Software Unidade III – Exemplo de um Processo de Software - Scrum Pedro de Alcântara dos Santos Neto pasn@ufpi.edu.br Exemplo de um Processo de Software - Scrum Roteiro Explicaremos o SCRUM seguindo a seguinte estrutura: Um breve histórico histó Detalharemos os Papéis Papé Detalharemos todas as cerimônias prescritas pelo processo – Ritual com formalidades a serem seguidas Detalharemos, dentro das cerimônias, resultados associados – Correspondendo aos principais artefatos a serem gerados nos projetos Exemplo de um Processo de Software - Scrum Um breve histórico histó Quem usa Scrum? Scrum? Jeff Sutherland Uso inicial do scrum na Easel em 1993 IDX e mais de 500 pessoas usando scrum Ken Schwaber Apresentação na OOPSLA 96 com Sutherland Apresentaç Três livros sobre Scrum Mike Beedle Padrões para o Scrum na PLOPD4 Ken Schwaber and Mike Cohn Fundaram a Scrum Alliance em 2002, inicialmente junto com a Agile Alliance Exemplo de um Processo de Software - Scrum Para que o Scrum tem sido usado? Software comercial Desenvolvimento interno Desenvolvimento contratado (terceirização) (terceirizaç Projetos de preço fixo preç Aplicações Financeiras Aplicaç Aplicações certificadas pela isso Aplicaç 9001 Sistemas embarcados Sistemas disponíveis 24x7 disponí Desenvolvimento por hackers solitários solitá Exemplo de um Processo de Software - Scrum Video games Sistemas para suporte à vida Sistemas para controle de satélites saté Websites Software para handhelds Telefones celulares Aplicações para redes Aplicaç Aplicações de ISV (Independent Aplicaç Software Vendors) Algumas das maiores aplicações em aplicaç produção produç Microsoft Yahoo Google Electronic Arts High Moon Studios Lockheed Martin Philips Siemens Nokia Capital One BBC Intuit Intuit Nielsen Media First American Real Estate BMC Software Ipswitch John Deere Lexis Nexis Sabre Salesforce.com Time Warner Turner Broadcasting Oce Exemplo de um Processo de Software - Scrum Para que o Scrum tem sido usado? Equipes que se auto-organizam autoO produto evolui em uma série de “Sprints” mensais sé Sprints” O Sprint é um período definido em que se trabalhará buscando perí trabalhará cumprir um objetivo Os requisitos são listados em um “Product Backlog” Backlog” Não há prática de engenharia prescrita (o Scrum há prá adequa-se a todas) adequaUsa regras generativas na criação de um ambiente ágil criaç para a entrega de projetos É uma das “metodologias ágeis” geis” 1
  • 2. Exemplo de um Processo de Software - Scrum Os Papéis... Papé Exemplo de um Processo de Software - Scrum Com relação à equipe relaç Aconselhado para equipes com pelo menos 3 colaboradores Idealmente de 5 a 9 Multi-funcional MultiProgramadores, testadores, webdesigners, etc. Programadores, testadores, webdesigners, Tempo integral – Quando houver estagiários, todos no mesmo turno estagiá rios, Trocas só na mudança de Sprints mudanç Todos devem sentar junto. junto. Ter funções variáveis funç variá podendo ser fixas em um sprint Pedir ajuda e ajudar sempre que necessário necessá Exemplo de um Processo de Software - Scrum Com relação ao Scrum Master relaç Toda equipe deve ter um Scrum Master Representa a gerência para o projeto Responsável pela aplicação dos valores Responsá aplicaç e práticas do Scrum prá Remove obstáculos obstá Garante a plena funcionalidade e produtividade da equipe Garante a colaboração entre os colaboraç diversos papéis e funções papé funç Escudo para interferências externas Exemplo de um Processo de Software - Scrum As Cerimônias... Exemplo de um Processo de Software - Scrum Com relação ao Product Owner relaç Todo projeto deve ter um Product Owner Idealmente membro dos clientes do produto Mas em casos excepcionais um membro da equipe Ele deve priorizar as ações da equipe Para isso, deve entender o produto a ponto de priorizar isso, sem gerar problemas Ajusta funcionalidades e prioridades Aceita ou rejeita o resultado dos trabalhos Exemplo de um Processo de Software - Scrum Cerimônias: A Reunião Inicial 2
  • 3. Exemplo de um Processo de Software - Scrum Exemplo de um Processo de Software - Scrum A Reunião Inicial A Reunião Inicial Definição das Definiç estórias/funcionalidades estó do produto Como obter informações sobre o produto? informaç Estudando e lendo materiais relacionados Analisando softwares pré-existentes pré Perguntando... Product backlog Geralmente feito com a participação de toda a participaç equipe + product owner e, opcionalmente, outros membros representante dos clientes Um ou mais dias de conversas, com registro dos dados em um documento O quê perguntar? Tente seguir os passos do negócio para se fazer algo negó – Sempre que um passo for descrito, questione o que necessita para aquilo ser exeqüível exeqüível – Se existe algo anterior, questione sobre ele – Repita esses passos até que tudo tenha sido coberto... até Equivalente ao levantamento de requisitos Nos processos tradicionais Exemplo de um Processo de Software - Scrum Exemplo de um Processo de Software - Scrum A Reunião Inicial Como registrar? Diagrama de casos de uso fornece uma boa visão sobre os atores do sistema e funcionalidades Composto por atores e casos de uso – Atores são papéis associados ao uso do sistema (e não papé pessoas!) – Casos de uso são as funcionalidades do produto, que possuem um valor para seus usuários, sem lacunas usuá nem superposição com outros casos de uso superposiç Exemplo de um Processo de Software - Scrum Número de ordem Caso de uso 1. Cadastro de Solicitação de Leito 2. 3. 4. 5. 6. Descrição Exemplo de um Processo de Software - Scrum Número de ordem Ator 1. Intensivista Autorização de envio Registro da autorização da solicitação para constar na lista de para lista de espera espera por leitos. 2. Regulador Controle da Lista de Controle da lista de espera por leitos, com registro de evolução dos pacientes, além de registro de entrada ou Espera encaminhamento em leitos hospitalares e eventual remoção da lista. 3. Auditor 4. Gerente 5. Plantonista 6. Médico 7. Enfermeira 8. Auxiliar 9. Chefe de Setor Cadastro das solicitações de leitos para pacientes com necessidades de internação. Controle da Lista de Controle dos encaminhamentos de pacientes para leitos, com remoção automática da reserva associada caso não seja Encaminhamento realizado o registro de entrada no prazo previsto. Controle de Internações Controle das internações em leitos, com possibilidade registro de alta, e conseqüente liberação do leito, além de transferências para outros leitos. Controle de Leitos Bloqueio e liberação de leitos. Definição Médico plantonista que coordena a UTI no hospital e faz a solicitação das vagas. Médico regulador da Central de Leitos, que recebe, avalia e gerencia as solicitações e eventuais internações. Médico da Central de Leitos, que visita os hospitais e verifica se as informações no sistema correspondem à realidade. Médico regulador da Central de Leitos que atua em casos excepcionais, controla leitos e usuários do sistema . Profissional da saúde escalado em plantão, responsável por verificar a necessidade de internação de um paciente em UTI. Profissional da medicina escalado em Plantão. Profissional de enfermagem, escalado em Plantão e responsável por auxiliar o Intensivista em suas tarefas. Enfermeira escalada em Plantão responsável por auxiliar o Intensivista em suas tarefas. Profissional de saúde responsável por controlar as escalas de plantão de um hospital. 3
  • 4. Exemplo de um Processo de Software - Scrum A Reunião Inicial Exemplo de um Processo de Software - Scrum A Reunião Inicial Principal resultado: Product Backlog Principal resultado: Product Backlog Representa os requisitos do produto – Uma lista de todo o trabalho desejado no projeto Cada item deve ter seu peso de acordo com a vontade dos usuários usuá Priorizado pelo dono do produto Repriorizado no início de cada Sprint iní ID 2481 2567 2344 2211 2332 3221 3342 N ome Preparar ambiente para integração contínua Criar projeto base no C VS Modelar Contrato e Remuneração Implementar Gestão de Contrato Implementar Gestão de Remuneração Testes F uncionais Gest ão de Contrato Testes F uncionais Gest ão de Remuneração Prioridade 40 10 10 20 20 50 50 Tem po Estimado Tempo Gasto 12 2 1 4 6 8 10 8 14 8 8 Product Backlog Exemplo de um Processo de Software - Scrum Cerimônias: A Reunião de Planejamento Exemplo de um Processo de Software - Scrum Planejamento A equipe seleciona itens do Product Backlog com os quais compromete-se a concluir comprometeDefinição da carga de trabalho da equipe Definiç O Sprint Backlog é criado Com criação dos cartões criaç Tarefas identificadas e estimadas Criação do gráfico de acompanhamento Criaç grá Definição do local e horário das reuniões diárias Definiç horá diá Definição do conceito de “feito” Definiç feito” Organização do quadro do projeto Organizaç Exemplo de um Processo de Software - Scrum Planejamento Exemplo de um Processo de Software - Scrum Planejamento É importante a participação do product owner, participaç owner, para entender o funcionamento... Para determinação da carga de trabalho do determinaç grupo, devemos calcular o tempo disponível disponí Definir tamanho do Sprint (em dias) – Normalmente usa-se 2 semanas (10 dias úteis) usa– Esse número pode ser menor, quando precisamos ter nú respostas mais rápidas e para obter dados sobre rá produtividade – Ou maiores, quando as coisas já estão mais estáveis já está 4
  • 5. Exemplo de um Processo de Software - Scrum Exemplo de um Processo de Software - Scrum Planejamento Planejamento Um grande problema: Tarefas não planejadas! Tarefas que surgem durante o sprint e que necessitam ser realizadas Muito comum nos locais que tem softwares em operação operaç Como resolver essa questão, visto que temos que planejar as atividades? Fator de ajuste Percentual de tempo produtivo efetivamente utilizado para computar carga de trabalho da equipe Colaboradores que trabalham 8h/dia, dificilmente passam 8h realizando tarefas diretamente relacionadas ao desenvolvimento – Existe tempo para ler e-mails e– Conversar com colegas – Tomar café, ir ao banheiro, etc... café – Previsão de tempo para tais tarefas – Podem ou não fazer parte do sprint – Registro do tempo gasto, para facilitar novas estimativas – O fator de ajuste pode ser utilizado nessa direção! direç Um fator de ajuste muito comum é usar 75% – Mas esse número depende da organização... nú organizaç Exemplo de um Processo de Software - Scrum Exemplo de um Processo de Software - Scrum Planejamento Planejamento Dedicação dos membros da equipe Dedicaç Exemplo Colaboradores com cargos chaves no processo precisam ter sua carga de trabalho analisada – Scrum masters normalmente gastam metade do tempo útil em tarefas relacionadas à condução do conduç processo – Quando um colaborador assume o papel de Product owner, provavelmente gaste também metade do owner, també tempo útil com tarefas de verificação e eliminação de verificaç eliminaç dúvidas, além do contato com os usuários do produto alé usuá Objetivo Duração Fator de ajuste Total = dedicação diária * duração sprint * fator ajuste Contrato e Remuneração 10 0,6 Colaborador Pedro Emanoel Daniel Danilo Eric Muniz Dedicação diária 4 8 8 4 6 Total do Sprint Cada projeto é uma realidade diferente! Product owner Total 24 48 48 24 36 180 Fator de ajuste reduzido por conta do não cumprimento dos prazos Scrum Master Colaborador em outro projeto Exemplo de um Processo de Software - Scrum Planejamento Total do Sprint Exemplo de um Processo de Software - Scrum 180 Gráfico de acompanhamento Grá Gráfico de acompanhamento Grá Representa a quantidade de horas associadas às tarefas do Sprint Idealmente, as tarefas deveriam ser finalizadas ao longo dos dias do Sprint O gráfico ideal é uma reta que inicia na carga de grá trabalho da equipe (180h no exemplo) e finaliza em 0 no último dia do Sprint A cada tarefa concluída e verificada, devemos concluí descer a quantidade de horas no gráfico grá h Gráfico de Acompanhamento 180 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 0 1 2 3 4 5 Dias do Sprint Planejamento 6 7 8 9 10 – Discutido mais a frente... 5
  • 6. Exemplo de um Processo de Software - Scrum Planejamento Planejamento Devem ser utilizados cartões para representar as tarefas NOME ID DESCRIÇÃO Criados no planejamento O verso pode ser utilizado para observações observaç Exemplo de um Processo de Software - Scrum COMO VERIFICAR Tempo Estimado Tempo Real Responsável pela tarefa Exemplo de um Processo de Software - Scrum Planejamento Divisão dos cartões Tempo estimado: tempo especificado pela equipe para realização da tarefa realizaç – Como estimar tal tempo? Jogo do planejamento » Todos da equipe possuem cartas » Discute-se sobre a tarefa e solicita-se que todos joguem Discutesolicitacartas representando sua estimativa (viradas para que ninguém veja a estimativa antes que todos estimem!) ningué Exemplo de um Processo de Software - Scrum Planejamento Divisão dos cartões Tempo real: – Tempo efetivamente utilizado para realização da tarefa realizaç – Fundamental seu registro para auxiliar estimativas futuras Responsável Responsá – Colaborador encarregado de realizar a tarefa – A princípio não deve ser pré-estabelecido princí pré » Cada um faz o que mais lhe agrada das tarefas – Mas o bom senso sempre deve imperar! Divisão dos cartões ID: identificador da tarefa – Utilizado para acompanhamento em ferramentas que controlam a apropriação de horas apropriaç Nome Descrição: texto simples e objetivo descrevendo a tarefa Descriç Como verificar: indicação de como deve ser feita a verificação dessa indicaç verificaç tarefa, quando a mesma estiver concluída concluí – Embora pareça “dispensável”, quando existem muitas tarefas a pareç dispensá vel” verificar, podemos perder o foco no que é importante » Fortemente aconselhável para toda e qualquer equipe aconselhá » Base para construção dos testes para a funcionalidade construç Exemplo de um Processo de Software - Scrum Planejamento Divisão dos cartões Tempo estimado: – Pode-se considerar a média, descartar alguns valores Podemé (maior e menor, por exemplo) – O importante é estabelecer parâmetros de aceitação aceitaç » » » » » Um “?” indica que mais explicações são necessárias explicaç necessá Um “0” indica algo tão pequeno que não merece estimar Uma xícara indica necessidade de tempo pra pensar... xí Tarefas acima de 16h merecem ser divididas Estimativas muito diferentes merecem explicações explicaç Exemplo de um Processo de Software - Scrum Planejamento Como selecionar tarefas para o Sprint? Sprint? Deve-se selecionar do Backlog as tarefas mais Deveimportantes Encaixando dentro da carga de trabalho indicada pela equipe De forma a termos o maior aproveitamento dessa carga de trabalho » O objetivo é seguir o plano, desde que não se crie ilhas do conhecimento 6
  • 7. Exemplo de um Processo de Software - Scrum Planejamento Como selecionar tarefas para o Sprint? Sprint? As tarefas selecionadas representam um compromisso assumido com o Product Owner Para isso, todos devem concordar e acreditar nas estimativas – Mais uma vez o bom senso deve imperar – Se alguém não acredita no que foi dimensionado algué para o Sprint, fale sobre isso!!! Sprint, Exemplo de um Processo de Software - Scrum Planejamento Definição de Feito (DoD) Definiç (DoD) Para uma tarefa de implementação no modelo: implementaç modelo: – Criação das classes no projeto Criaç – Criação do teste de unidade Criaç – Inclusão do teste na integração contínua integraç contí – Classes no CVS Para uma tarefa de implementação na visão: implementaç visão: – Criação das classes no projeto Criaç – Criação dos testes funcionais com Selenium Criaç – Classes no CVS – Redação do manual do usuário e inclusão no CVS Redaç usuá Exemplo de um Processo de Software - Scrum Planejamento Definição do local e horário das reuniões Definiç horá diárias diá No planejamento é fundamental especificar tais dados Essas reuniões são vitais para o bom andamento do projeto Organizar a equipe de forma que todos participem Exemplo de um Processo de Software - Scrum Planejamento Definição de Feito (DoD) Definiç (DoD) Todo projeto deve ter uma definição claro sobre o definiç que é considerado feito! feito! Para uma tarefa de modelagem, por exemplo: modelagem, exemplo: – Diagrama representando a modelagem feito na ferramenta JUDE – Diagrama contido no CVS – Revisão em conjunto com o Scrum Master Exemplo de um Processo de Software - Scrum Planejamento Definição de Feito (DoD) Definiç (DoD) Podem haver definições de feito gerais na definiç organização organizaç – Podendo haver especializações por projeto especializaç É importante deixá-las clara no planejamento, para deixá planejamento, que todos saibam que existe e com isso garantir sua utilização! utilizaç ão! Dependendo do projeto, novas definições precisam projeto, definiç ser criadas – O que é feito para uma tarefa de documentação? documentaç ão? Exemplo de um Processo de Software - Scrum Planejamento Definição da data, horário e local para Definiç horá apresentação dos resultados do Sprint apresentaç Definição da data, horário e local para Definiç horá apresentação dos resultados do Sprint apresentaç Todos devem saber das datas! – Problemas quando temos pessoas dedicadas parcialmente 7
  • 8. Exemplo de um Processo de Software - Scrum Planejamento Organização do quadro do projeto Organizaç Exemplo de um Processo de Software - Scrum Planejamento Organização do quadro do projeto Organizaç Os quadros devem ter as seguintes divisões para tarefas – Não iniciadas, Em execução, Concluídas, Verificadas iniciadas, execuç ão, Concluí das, Exemplo de um Processo de Software - Scrum Planejamento Exemplo de um Processo de Software - Scrum Cerimônias: A Reunião Diária Diá Organização do quadro do projeto Organizaç Área para Objetivo do Sprint Área para o Gráfico de Acompanhamento Grá Área para especificar a Equipe Área para detalhar a data de início e fim do sprint iní Área para especificar dia da apresentação dos apresentaç resultados Área para especificar local e horário das reuniões horá diárias diá Área para especificar o dia da retrospectiva Exemplo de um Processo de Software - Scrum A Reunião Diária Diá Importante: Deve ser diária! Importante: diária! Exemplo de um Processo de Software - Scrum A Reunião Diária Diá Todos respondem 3 perguntas: perguntas: Em torno de 15 minutos Todos em pé! 1 O que foi feito de ontem pra hoje? O que foi feito de ontem pra hoje? Facilita o gerenciamento do tempo Não é para a solução de problemas soluç Problemas devem ser identificados Sua solução é tratada depois soluç Ajuda a evitar reuniões adicionais desnecessárias desnecessá 2 O que será feito de hoje até amanhã? O que será feito de hoje até amanhã? 3 Existe algum impedimento? Existe algum impedimento? 8
  • 9. Exemplo de um Processo de Software - Scrum A Reunião Diária Diá Exemplo de um Processo de Software - Scrum Cerimônia: Acompanhamento do Projeto Problemas são detectados e discutidos inicialmente Impedimentos são registrados Itens não planejados também são registrados també para acompanhamento Todos falam, sob a supervisão do scrum master falam, Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Além das reuniões diárias, o Scrum Master Alé diá possui outras tarefas rotineiras: Verificar tarefas concluídas concluí Atualizar gráfico de acompanhamento grá Resolver impedimentos Atuar quando houver desvio no planejamento Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Verificação das tarefas concluídas Verificaç concluí Idealmente deve ser feito pelo Scrum Master + Product Owner Utilizar a definição de “como verificar” existente no definiç verificar” cartão Seguir a definição de feito definiç – Se algum item não coincidir com o especificado, indicar ao responsável para efetiva conclusão responsá – Muito cuidado com os testes! Para tarefas de implementação implementaç – Não se ater somente no funcionamento – Incluir a análise do código aná có Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Atualização do gráfico de acompanhamento Atualizaç grá Para cada tarefa verificada, baixar número nú correspondente à estimativa no gráfico grá – Estimativa e não o tempo efetivamente gasto!!! – Mas pode-se ter uma outra linha com o tempo podetrabalhado » Existem controvérsias sobre contrové o que utilizar, assim, use as duas linhas Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Resolução de impedimentos Resoluç Durante as reuniões diárias impedimentos podem diá ser identificados Cabe ao Scrum Master garantir sua resolução resoluç – Isso pode significar atuar junto à gerência Os impedimentos devem ser acompanhados – Registrar identificação do impedimento identificaç » Ou seja, criar cartão diferenciado, associado ao cartão impedido e deixar isso bem visível visí – Registrar solução soluç 9
  • 10. Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Atuação nos desvios de planejamento Atuaç Durante a atualização do gráfico de atualizaç grá acompanhamento podem ser notados grandes desvios – O Scrum Master deve atuar para tentar identficar causas – Tentando propor contramedidas para reduzir os atrasos Atividade freqüente e contínua... freqü contí – Mas sem um guia sobre como agir – Cada caso é um caso... Exemplo de um Processo de Software - Scrum Cerimônias: Apresentação do Sprint Apresentaç Exemplo de um Processo de Software - Scrum Acompanhamento do Projeto Os membros da equipe devem: “Pegar” uma tarefa e indicar isso através do quadro Pegar” atravé – Mudando para área “em execução” e registrado-se como execuç ão” registradoresponsável responsá Atualizar registro de tempo gasto na tarefa – Registrando no meio indicado pela empresa (atualmente no Quantum) – Onde não existe meio eletrônico, pode-se usar marcas poderepresentando tempo gasto (*, |_|, etc.) Informar a finalização de uma tarefa, com registro do tempo finalizaç gasto – Lembrando que ela pode voltar para “em execução”, caso execuç ão” não seja aprovada... » Ou seja, não finalize no Quantum tarefas ainda não verificadas... Exemplo de um Processo de Software - Scrum Apresentação do Sprint Apresentaç Equipe apresenta os resultados obtidos durante o Sprint Tipicamente, demonstração de novas Tipicamente, demonstraç funcionalidades ou sua arquitetura Informal Sem muita preparação preparaç – Preocupar-se com o ambiente Preocupar» reserva de sala, equipamentos sala, Sem slides Toda a equipe participa Todos são convidados Exemplo de um Processo de Software - Scrum Cerimônias: Retrospectiva Exemplo de um Processo de Software - Scrum Retrospectiva Durante o Sprint, é necessário observar o que funciona necessá e o que não funciona Na retrospectiva, isso deve ser discutido por todos retrospectiva, Tipicamente uma reunião rápida, com cerca de 1h pida, Feita após cada Sprint apó Toda a equipe participa ScrumMaster Dono do produto Membros da equipe Clientes e outros 10
  • 11. Exemplo de um Processo de Software - Scrum Retrospectiva A equipe tenta responder a três questões O que você achou muito bom no Sprint e que deveria continuar sendo feito O que você achou muito ruim e não deveria mais ser feito (ou mudado) O que não está sendo feito está mas deveria iniciar Retrospectiva Continuar Continuar fazendo fazendo Parar de fazer Parar de fazer Retrospectiva Evitar o que foi considerado ruim Garantir que as coisas boas continuam Garantir que o que foi sugerido iniciar realmente iniciou Cada membro anota as respostas em cartões Cada cartão com uma resposta No máximo 3 cartões por má pergunta As resposta similares devem ser agrupadas Continuar Continuar fazendo fazendo Parar de fazer Parar de fazer Iniciar a fazer Iniciar a fazer Iniciar a fazer Iniciar a fazer Exemplo de um Processo de Software - Scrum Para cada questão registrar as 3 respostas mais utilizadas Elas devem ser utilizadas pelo Scrum Master na condução dos conduç novos Sprints Exemplo de um Processo de Software - Scrum Exemplo de um Processo de Software - Scrum Final do Sprint Continuar Continuar fazendo fazendo Terminei um Sprint, e agora? Sprint, Utilize no máximo um dia para pequenos ajustes má e realize novo planejamento Parar de fazer Parar de fazer Iniciar a fazer Iniciar a fazer Exemplo de um Processo de Software - Scrum Introdução à Introduç Engenharia de Software Unidade III – Exemplo de um Processo de Software - Scrum Pedro de Alcântara dos Santos Neto pasn@ufpi.edu.br 11