Sie sind auf Seite 1von 11

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Introduo Introdu Engenharia de Software Unidade III Exemplo de um Processo de Software - Scrum
Pedro de Alcntara dos Santos Neto pasn@ufpi.edu.br

Roteiro
Explicaremos o SCRUM seguindo a seguinte estrutura:
Um breve histrico hist Detalharemos os Papis Pap Detalharemos todas as cerimnias prescritas pelo processo
Ritual com formalidades a serem seguidas

Detalharemos, dentro das cerimnias, resultados associados


Correspondendo aos principais artefatos a serem gerados nos projetos

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Um breve histrico hist


Jeff Sutherland

Quem usa Scrum? Scrum?


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

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

Apresentao na OOPSLA 96 com Sutherland Apresenta Trs livros sobre Scrum


Mike Beedle

Padres 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

Exemplo de um Processo de Software - Scrum

Para que o Scrum tem sido usado?


Software comercial Desenvolvimento interno Desenvolvimento contratado (terceirizao) (terceiriza Projetos de preo fixo pre Aplicaes Financeiras Aplica Aplicaes certificadas pela isso Aplica 9001 Sistemas embarcados Sistemas disponveis 24x7 dispon Desenvolvimento por hackers solitrios solit Video games Sistemas para suporte vida Sistemas para controle de satlites sat Websites Software para handhelds Telefones celulares Aplicaes para redes Aplica Aplicaes de ISV (Independent Aplica Software Vendors) Algumas das maiores aplicaes em aplica produo produ

Para que o Scrum tem sido usado?


Equipes que se auto-organizam autoO produto evolui em uma srie de Sprints mensais s Sprints
O Sprint um perodo definido em que se trabalhar buscando per trabalhar cumprir um objetivo

Os requisitos so listados em um Product Backlog Backlog No h prtica de engenharia prescrita (o Scrum h pr adequa-se a todas) adequaUsa regras generativas na criao de um ambiente gil cria para a entrega de projetos uma das metodologias geis geis

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Os Papis... Pap

Com relao 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 estagirios, todos no mesmo turno estagi rios,

Trocas s na mudana de Sprints mudan Todos devem sentar junto. junto. Ter funes variveis fun vari
podendo ser fixas em um sprint

Pedir ajuda e ajudar sempre que necessrio necess

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Com relao ao Scrum Master rela


Toda equipe deve ter um Scrum Master Representa a gerncia para o projeto Responsvel pela aplicao dos valores Respons aplica e prticas do Scrum pr Remove obstculos obst Garante a plena funcionalidade e produtividade da equipe Garante a colaborao entre os colabora diversos papis e funes pap fun Escudo para interferncias externas

Com relao 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 aes 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

Exemplo de um Processo de Software - Scrum

As Cerimnias...

Cerimnias: A Reunio Inicial

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunio Inicial
Definio das Defini estrias/funcionalidades est do produto
Product backlog

A Reunio Inicial
Como obter informaes sobre o produto? informa
Estudando e lendo materiais relacionados Analisando softwares pr-existentes pr Perguntando...

Geralmente feito com a participao 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
Equivalente ao levantamento de requisitos Nos processos tradicionais

O qu perguntar?
Tente seguir os passos do negcio para se fazer algo neg
Sempre que um passo for descrito, questione o que necessita para aquilo ser exeqvel exeqvel Se existe algo anterior, questione sobre ele Repita esses passos at que tudo tenha sido coberto... at

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunio Inicial
Como registrar?
Diagrama de casos de uso fornece uma boa viso sobre os atores do sistema e funcionalidades Composto por atores e casos de uso
Atores so papis associados ao uso do sistema (e no pap pessoas!) Casos de uso so as funcionalidades do produto, que possuem um valor para seus usurios, sem lacunas usu nem superposio com outros casos de uso superposi

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Nmero de ordem 1. 2. 3.

Caso de uso Cadastro de Solicitao de Leito

Descrio Cadastro das solicitaes de leitos para pacientes com necessidades de internao.

Nmero de ordem 1. 2. 3. 4. 5. 6. 7. 8. 9.

Ator
Intensivista Regulador Auditor Gerente Plantonista Mdico Enfermeira Auxiliar Chefe de Setor

Definio
Mdico plantonista que coordena a UTI no hospital e faz a solicitao das vagas. Mdico regulador da Central de Leitos, que recebe, avalia e gerencia as solicitaes e eventuais internaes. Mdico da Central de Leitos, que visita os hospitais e verifica se as informaes no sistema correspondem realidade. Mdico regulador da Central de Leitos que atua em casos excepcionais, controla leitos e usurios do sistema . Profissional da sade escalado em planto, responsvel por verificar a necessidade de internao de um paciente em UTI. Profissional da medicina escalado em Planto. Profissional de enfermagem, escalado em Planto e responsvel por auxiliar o Intensivista em suas tarefas. Enfermeira escalada em Planto responsvel por auxiliar o Intensivista em suas tarefas. Profissional de sade responsvel por controlar as escalas de planto de um hospital.

Autorizao de envio Registro da autorizao da solicitao para constar na lista de para lista de espera espera por leitos. Controle da Lista de Controle da lista de espera por leitos, com registro de evoluo dos pacientes, alm de registro de entrada ou Espera encaminhamento em leitos hospitalares e eventual remoo da lista. Controle da Lista de Controle dos encaminhamentos de pacientes para leitos, com remoo automtica da reserva associada caso no seja Encaminhamento realizado o registro de entrada no prazo previsto. Controle de Internaes Controle de Leitos Controle das internaes em leitos, com possibilidade registro de alta, e conseqente liberao do leito, alm de transferncias para outros leitos. Bloqueio e liberao de leitos.

4.

5.

6.

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunio Inicial
Principal resultado: Product Backlog
Representa os requisitos do produto
Uma lista de todo o trabalho desejado no projeto

A Reunio Inicial
Principal resultado: Product Backlog
Tem po Estimado Tempo Gasto 12 2 1 4 6 8 10 8 14 8 8

Cada item deve ter seu peso de acordo com a vontade dos usurios usu Priorizado pelo dono do produto Repriorizado no incio de cada Sprint in
Product Backlog

ID 2481 2567 2344 2211 2332 3221 3342

N ome Preparar ambiente para integrao contnua Criar projeto base no C VS Modelar Contrato e Remunerao Implementar Gesto de Contrato Implementar Gesto de Remunerao Testes F uncionais Gest o de Contrato Testes F uncionais Gest o de Remunerao

Prioridade 40 10 10 20 20 50 50

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Cerimnias: A Reunio de Planejamento

Planejamento

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
A equipe seleciona itens do Product Backlog com os quais compromete-se a concluir comprometeDefinio da carga de trabalho da equipe Defini O Sprint Backlog criado
Com criao dos cartes cria

Planejamento
importante a participao do product owner, participa owner, para entender o funcionamento... Para determinao da carga de trabalho do determina grupo, devemos calcular o tempo disponvel dispon
Definir tamanho do Sprint (em dias)
Normalmente usa-se 2 semanas (10 dias teis) usa Esse nmero pode ser menor, quando precisamos ter n respostas mais rpidas e para obter dados sobre r produtividade Ou maiores, quando as coisas j esto mais estveis j est

Tarefas identificadas e estimadas Criao do grfico de acompanhamento Cria gr Definio do local e horrio das reunies dirias Defini hor di Definio do conceito de feito Defini feito Organizao do quadro do projeto Organiza

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Um grande problema: Tarefas no planejadas!
Tarefas que surgem durante o sprint e que necessitam ser realizadas Muito comum nos locais que tem softwares em operao opera Como resolver essa questo, visto que temos que planejar as atividades?
Previso de tempo para tais tarefas Podem ou no fazer parte do sprint Registro do tempo gasto, para facilitar novas estimativas O fator de ajuste pode ser utilizado nessa direo! dire

Planejamento
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

Um fator de ajuste muito comum usar 75%


Mas esse nmero depende da organizao... n organiza

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Dedicao dos membros da equipe Dedica
Colaboradores com cargos chaves no processo precisam ter sua carga de trabalho analisada
Scrum masters normalmente gastam metade do tempo til em tarefas relacionadas conduo do condu processo Quando um colaborador assume o papel de Product owner, provavelmente gaste tambm metade do owner, tamb tempo til com tarefas de verificao e eliminao de verifica elimina dvidas, alm do contato com os usurios do produto al usu

Planejamento
Exemplo
Objetivo Durao Fator de ajuste

Total = dedicao diria * durao sprint * fator ajuste

Contrato e Remunerao 10 0,6

Product owner Fator de ajuste reduzido por conta do no cumprimento dos prazos

Colaborador Pedro Emanoel Daniel Danilo Eric Muniz


Total do Sprint

Dedicao diria 4 8 8 4 6

Total 24 48 48 24 36
180

Cada projeto uma realidade diferente!

Scrum Master

Colaborador em outro projeto

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento

Total do Sprint

180

Planejamento
Grfico 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 grfico 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 concluda e verificada, devemos conclu descer a quantidade de horas no grfico gr

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

5 Dias do Sprint

10

Discutido mais a frente...

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Devem ser utilizados cartes para representar as tarefas
Criados no planejamento
ID NOME

Planejamento
Diviso dos cartes
ID: identificador da tarefa Utilizado para acompanhamento em ferramentas que controlam a apropriao de horas apropria Nome Descrio: texto simples e objetivo descrevendo a tarefa Descri Como verificar: indicao de como deve ser feita a verificao dessa indica verifica tarefa, quando a mesma estiver concluda conclu Embora parea dispensvel, quando existem muitas tarefas a pare dispens vel verificar, podemos perder o foco no que importante
Fortemente aconselhvel para toda e qualquer equipe aconselh Base para construo dos testes para a funcionalidade constru

DESCRIO

O verso pode ser utilizado para observaes observa

COMO VERIFICAR

Tempo Estimado

Tempo Real

Responsvel pela tarefa

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Diviso dos cartes
Tempo estimado: tempo especificado pela equipe para realizao 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 ningum veja a estimativa antes que todos estimem!) ningu

Planejamento
Diviso dos cartes
Tempo estimado:
Pode-se considerar a mdia, descartar alguns valores Podem (maior e menor, por exemplo) O importante estabelecer parmetros de aceitao aceita
Um ? indica que mais explicaes so necessrias explica necess Um 0 indica algo to pequeno que no merece estimar Uma xcara indica necessidade de tempo pra pensar... x Tarefas acima de 16h merecem ser divididas Estimativas muito diferentes merecem explicaes explica

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Diviso dos cartes
Tempo real:
Tempo efetivamente utilizado para realizao da tarefa realiza Fundamental seu registro para auxiliar estimativas futuras

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

Responsvel Respons
Colaborador encarregado de realizar a tarefa A princpio no deve ser pr-estabelecido princ pr
Cada um faz o que mais lhe agrada das tarefas

Mas o bom senso sempre deve imperar!


O objetivo seguir o plano, desde que no se crie ilhas do conhecimento

Exemplo de um Processo de Software - Scrum

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 algum no acredita no que foi dimensionado algu para o Sprint, fale sobre isso!!! Sprint,

Planejamento
Definio de Feito (DoD) Defini (DoD)
Todo projeto deve ter uma definio 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 Reviso em conjunto com o Scrum Master

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Definio de Feito (DoD) Defini (DoD)
Para uma tarefa de implementao no modelo: implementa modelo:
Criao das classes no projeto Cria Criao do teste de unidade Cria Incluso do teste na integrao contnua integra cont Classes no CVS

Planejamento
Definio de Feito (DoD) Defini (DoD)
Podem haver definies de feito gerais na defini organizao organiza
Podendo haver especializaes por projeto especializa

Para uma tarefa de implementao na viso: implementa viso:


Criao das classes no projeto Cria Criao dos testes funcionais com Selenium Cria Classes no CVS Redao do manual do usurio e incluso no CVS Reda usu

importante deix-las clara no planejamento, para deix planejamento, que todos saibam que existe e com isso garantir sua utilizao! utiliza o! Dependendo do projeto, novas definies precisam projeto, defini ser criadas
O que feito para uma tarefa de documentao? documenta o?

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Definio do local e horrio das reunies Defini hor dirias di
No planejamento fundamental especificar tais dados Essas reunies so vitais para o bom andamento do projeto Organizar a equipe de forma que todos participem
Problemas quando temos pessoas dedicadas parcialmente

Planejamento
Definio da data, horrio e local para Defini hor apresentao dos resultados do Sprint apresenta Definio da data, horrio e local para Defini hor apresentao dos resultados do Sprint apresenta Todos devem saber das datas!

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Organizao do quadro do projeto Organiza

Planejamento
Organizao do quadro do projeto Organiza
Os quadros devem ter as seguintes divises para tarefas
No iniciadas, Em execuo, Concludas, Verificadas iniciadas, execu o, Conclu das,

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Planejamento
Organizao do quadro do projeto Organiza
rea para Objetivo do Sprint rea para o Grfico de Acompanhamento Gr rea para especificar a Equipe rea para detalhar a data de incio e fim do sprint in rea para especificar dia da apresentao dos apresenta resultados rea para especificar local e horrio das reunies hor dirias di rea para especificar o dia da retrospectiva

Cerimnias: A Reunio Diria Di

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunio Diria Di
Importante: Deve ser diria! Importante: diria!
Em torno de 15 minutos

A Reunio Diria Di
Todos respondem 3 perguntas: perguntas:

1 2

Todos em p!
Facilita o gerenciamento do tempo

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

No para a soluo de problemas solu


Problemas devem ser identificados Sua soluo tratada depois solu

O que ser feito de hoje at amanh? O que ser feito de hoje at amanh?

Ajuda a evitar reunies adicionais desnecessrias desnecess

3
Existe algum impedimento? Existe algum impedimento?

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

A Reunio Diria Di
Problemas so detectados e discutidos inicialmente Impedimentos so registrados Itens no planejados tambm so registrados tamb para acompanhamento Todos falam, sob a superviso do scrum master falam,

Cerimnia: Acompanhamento do Projeto

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Alm das reunies dirias, o Scrum Master Al di possui outras tarefas rotineiras:
Verificar tarefas concludas conclu Atualizar grfico de acompanhamento gr Resolver impedimentos Atuar quando houver desvio no planejamento

Acompanhamento do Projeto
Verificao das tarefas concludas Verifica conclu
Idealmente deve ser feito pelo Scrum Master + Product Owner Utilizar a definio de como verificar existente no defini verificar carto Seguir a definio de feito defini
Se algum item no coincidir com o especificado, indicar ao responsvel para efetiva concluso respons Muito cuidado com os testes!

Para tarefas de implementao implementa


No se ater somente no funcionamento Incluir a anlise do cdigo an c

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Atualizao do grfico de acompanhamento Atualiza gr
Para cada tarefa verificada, baixar nmero n correspondente estimativa no grfico gr
Estimativa e no o tempo efetivamente gasto!!! Mas pode-se ter uma outra linha com o tempo podetrabalhado
Existem controvrsias sobre controv o que utilizar, assim, use as duas linhas

Acompanhamento do Projeto
Resoluo de impedimentos Resolu
Durante as reunies dirias impedimentos podem di ser identificados Cabe ao Scrum Master garantir sua resoluo resolu
Isso pode significar atuar junto gerncia

Os impedimentos devem ser acompanhados


Registrar identificao do impedimento identifica
Ou seja, criar carto diferenciado, associado ao carto impedido e deixar isso bem visvel vis

Registrar soluo solu

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Acompanhamento do Projeto
Atuao nos desvios de planejamento Atua
Durante a atualizao do grfico 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

Acompanhamento do Projeto
Os membros da equipe devem:
Pegar uma tarefa e indicar isso atravs do quadro Pegar atrav Mudando para rea em execuo e registrado-se como execu o registradoresponsvel respons Atualizar registro de tempo gasto na tarefa Registrando no meio indicado pela empresa (atualmente no Quantum) Onde no existe meio eletrnico, pode-se usar marcas poderepresentando tempo gasto (*, |_|, etc.) Informar a finalizao de uma tarefa, com registro do tempo finaliza gasto Lembrando que ela pode voltar para em execuo, caso execu o no seja aprovada...
Ou seja, no finalize no Quantum tarefas ainda no verificadas...

Atividade freqente e contnua... freq cont


Mas sem um guia sobre como agir Cada caso um caso...

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Cerimnias: Apresentao do Sprint Apresenta

Apresentao do Sprint Apresenta


Equipe apresenta os resultados obtidos durante o Sprint Tipicamente, demonstrao de novas Tipicamente, demonstra funcionalidades ou sua arquitetura Informal
Sem muita preparao prepara
Preocupar-se com o ambiente Preocupar reserva de sala, equipamentos sala,

Sem slides

Toda a equipe participa Todos so convidados

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Cerimnias: Retrospectiva

Retrospectiva
Durante o Sprint, necessrio observar o que funciona necess e o que no funciona Na retrospectiva, isso deve ser discutido por todos retrospectiva, Tipicamente uma reunio rpida, com cerca de 1h pida, Feita aps 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

Exemplo de um Processo de Software - Scrum

Retrospectiva
A equipe tenta responder a trs questes
O que voc achou muito bom no Sprint e que deveria continuar sendo feito O que voc achou muito ruim e no deveria mais ser feito (ou mudado) O que no est sendo feito est mas deveria iniciar

Retrospectiva

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

Cada membro anota as respostas em cartes


Cada carto com uma resposta No mximo 3 cartes por m pergunta

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

As resposta similares devem ser agrupadas

Exemplo de um Processo de Software - Scrum

Exemplo de um Processo de Software - Scrum

Retrospectiva
Para cada questo registrar as 3 respostas mais utilizadas Elas devem ser utilizadas pelo Scrum Master na conduo dos condu novos Sprints
Evitar o que foi considerado ruim Garantir que as coisas boas continuam Garantir que o que foi sugerido iniciar realmente iniciou

Final do Sprint

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

Terminei um Sprint, e agora? Sprint,


Utilize no mximo um dia para pequenos ajustes m e realize novo planejamento

Exemplo de um Processo de Software - Scrum

Introduo Introdu Engenharia de Software Unidade III Exemplo de um Processo de Software - Scrum
Pedro de Alcntara dos Santos Neto pasn@ufpi.edu.br

11

Das könnte Ihnen auch gefallen