Exemplo de um Processo de Software - Scrum

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

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

Exemplo de um Processo de Software - Scrum

Um breve histórico 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

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

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á 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ç

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

. 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 . Programadores. testadores. sem gerar problemas Ajusta funcionalidades e prioridades Aceita ou rejeita o resultado dos trabalhos Exemplo de um Processo de Software . etc.. webdesigners. Cerimônias: A Reunião Inicial 2 . webdesigners..Scrum Exemplo de um Processo de Software . testadores. Trocas só na mudança de Sprints mudanç Todos devem sentar junto.Exemplo de um Processo de Software . todos no mesmo turno estagiá rios.Scrum As Cerimônias.Scrum Os Papéis. Tempo integral – Quando houver estagiários.Scrum Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software . deve entender o produto a ponto de priorizar isso. Papé Com relação à equipe relaç Aconselhado para equipes com pelo menos 3 colaboradores Idealmente de 5 a 9 Multi-funcional MultiProgramadores..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 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.

que visita os hospitais e verifica se as informações no sistema correspondem à realidade. Médico regulador da Central de Leitos.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. escalado em Plantão e responsável por auxiliar o Intensivista em suas tarefas. Profissional da medicina escalado em Plantão. Geralmente feito com a participação de toda a participaç equipe + product owner e.Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software . Médico regulador da Central de Leitos que atua em casos excepcionais. responsável por verificar a necessidade de internação de um paciente em UTI. 9. Profissional da saúde escalado em plantão.Scrum Exemplo de um Processo de Software . 2. e conseqüente liberação do leito. com registro dos dados em um documento Equivalente ao levantamento de requisitos Nos processos tradicionais O quê perguntar? Tente seguir os passos do negócio para se fazer algo negó – Sempre que um passo for descrito. 2. Profissional de enfermagem. avalia e gerencia as solicitações e eventuais internações. 7. Controle da Lista de Controle dos encaminhamentos de pacientes para leitos. questione sobre ele – Repita esses passos até que tudo tenha sido coberto.Scrum A Reunião Inicial Definição das Definiç estórias/funcionalidades estó do produto Product backlog A Reunião Inicial Como obter informações sobre o produto? informaç Estudando e lendo materiais relacionados Analisando softwares pré-existentes pré Perguntando. Profissional de saúde responsável por controlar as escalas de plantão de um hospital. Caso de uso Cadastro de Solicitação de Leito Descrição Cadastro das solicitações de leitos para pacientes com necessidades de internação. 5. Enfermeira escalada em Plantão responsável por auxiliar o Intensivista em suas tarefas.Scrum Exemplo de um Processo de Software . que recebe. com registro de evolução dos pacientes. Número de ordem 1.. Bloqueio e liberação de leitos. 3. com remoção automática da reserva associada caso não seja Encaminhamento realizado o registro de entrada no prazo previsto. Autorização de envio Registro da autorização da solicitação para constar na lista de para lista de espera espera por leitos. 5. Controle de Internações Controle de Leitos Controle das internações em leitos. Médico da Central de Leitos.. 3. 6. além de registro de entrada ou Espera encaminhamento em leitos hospitalares e eventual remoção da lista. controla leitos e usuários do sistema . 6. 8. além de transferências para outros leitos. 4. questione o que necessita para aquilo ser exeqüível exeqüível – Se existe algo anterior. opcionalmente. outros membros representante dos clientes Um ou mais dias de conversas. que possuem um valor para seus usuários. até Exemplo de um Processo de Software .. Ator Intensivista Regulador Auditor Gerente Plantonista Médico Enfermeira Auxiliar Chefe de Setor Definição Médico plantonista que coordena a UTI no hospital e faz a solicitação das vagas.Scrum Número de ordem 1. sem lacunas usuá nem superposição com outros casos de uso superposiç Exemplo de um Processo de Software . com possibilidade registro de alta.. 3 . Controle da Lista de Controle da lista de espera por leitos. 4.

quando as coisas já estão mais estáveis já está 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ç 4 ..Scrum Exemplo de um Processo de Software . Para determinação da carga de trabalho do determinaç grupo. participaç owner.Scrum Exemplo de um Processo de Software ..Exemplo de um Processo de Software . para entender o funcionamento.Scrum A Reunião Inicial Principal resultado: Product Backlog Representa os requisitos do produto – Uma lista de todo o trabalho desejado no projeto A Reunião 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 usuários usuá Priorizado pelo dono do produto Repriorizado no início de cada Sprint iní Product Backlog 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 Exemplo de um Processo de Software .Scrum Cerimônias: A Reunião de Planejamento Planejamento Exemplo de um Processo de Software . 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.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ç Planejamento É importante a participação do product owner.Scrum Exemplo de um Processo de Software . quando precisamos ter nú respostas mais rápidas e para obter dados sobre rá produtividade – Ou maiores.

Scrum Planejamento Dedicação 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 à condução do conduç processo – Quando um colaborador assume o papel de Product owner.Scrum Exemplo de um Processo de Software . etc. dificilmente passam 8h realizando tarefas diretamente relacionadas ao desenvolvimento – Existe tempo para ler e-mails e– Conversar com colegas – Tomar café. 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. nú organizaç Exemplo de um Processo de Software .6 Product owner Fator de ajuste reduzido por conta do não cumprimento dos prazos Colaborador Pedro Emanoel Daniel Danilo Eric Muniz Total do Sprint Dedicação diária 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 .Exemplo de um Processo de Software . 5 . visto que temos que planejar as atividades? – 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ç Planejamento Fator de ajuste Percentual de tempo produtivo efetivamente utilizado para computar carga de trabalho da equipe Colaboradores que trabalham 8h/dia.Scrum 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.. café Um fator de ajuste muito comum é usar 75% – Mas esse número depende da organização.Scrum Planejamento Total do Sprint 180 Planejamento Gráfico de acompanhamento Grá Representa a quantidade de horas associadas às tarefas do Sprint Idealmente.Scrum Exemplo de um Processo de Software .. além do contato com os usuários do produto alé usuá Planejamento Exemplo Objetivo Duração Fator de ajuste Total = dedicação diária * duração sprint * fator ajuste Contrato e Remuneração 10 0... ir ao banheiro.Scrum Exemplo de um Processo de Software . devemos concluí descer a quantidade de horas no gráfico grá Gráfico de acompanhamento Grá Gráfico de Acompanhamento 180 170 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 h 0 1 2 3 4 5 Dias do Sprint 6 7 8 9 10 – Discutido mais a frente. també tempo útil com tarefas de verificação e eliminação de verificaç eliminaç dúvidas... provavelmente gaste também metade do owner.

Scrum Exemplo de um Processo de Software . quando a mesma estiver concluída concluí – Embora pareça “dispensável”. 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.Scrum Exemplo de um Processo de Software . quando existem muitas tarefas a pareç dispensá vel” verificar. xí Tarefas acima de 16h merecem ser divididas Estimativas muito diferentes merecem explicações explicaç Exemplo de um Processo de Software .Scrum Planejamento Devem ser utilizados cartões para representar as tarefas Criados no planejamento ID NOME Planejamento 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. desde que não se crie ilhas do conhecimento 6 . 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ç DESCRIÇÃO O verso pode ser utilizado para observações observaç COMO VERIFICAR Tempo Estimado Tempo Real Responsável pela tarefa Exemplo de um Processo de Software .Scrum 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é Planejamento Divisão dos cartões Tempo estimado: – Pode-se considerar a média.. descartar alguns valores Podemé (maior e menor..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 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 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! » O objetivo é seguir o plano.

novas definições precisam projeto.Scrum Planejamento Como selecionar tarefas para o Sprint? Sprint? As tarefas selecionadas representam um compromisso assumido com o Product Owner Para isso.Exemplo de um Processo de Software . 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 . por exemplo: modelagem.Scrum Exemplo de um Processo de Software . 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.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 – Problemas quando temos pessoas dedicadas parcialmente Planejamento Definição da data.Scrum Exemplo de um Processo de Software . horário e local para Definiç horá apresentação dos resultados do Sprint apresentaç Todos devem saber das datas! 7 .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 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ç 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á É importante deixá-las clara no planejamento. definiç ser criadas – O que é feito para uma tarefa de documentação? documentaç ão? Exemplo de um Processo de Software . para deixá planejamento. que todos saibam que existe e com isso garantir sua utilização! utilizaç ão! Dependendo do projeto.Scrum Exemplo de um Processo de Software . fale sobre isso!!! Sprint. 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. horário e local para Definiç horá apresentação dos resultados do Sprint apresentaç Definição da data.

Scrum Exemplo de um Processo de Software .Scrum Planejamento Organização do quadro do projeto Organizaç Planejamento Organização do quadro do projeto Organizaç Os quadros devem ter as seguintes divisões para tarefas – Não iniciadas. Concluí das.Scrum A Reunião Diária Diá Importante: Deve ser diária! Importante: diária! Em torno de 15 minutos A Reunião Diária 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? Não é para a solução de problemas soluç Problemas devem ser identificados Sua solução é tratada depois soluç O que será feito de hoje até amanhã? O que será feito de hoje até amanhã? Ajuda a evitar reuniões adicionais desnecessárias desnecessá 3 Existe algum impedimento? Existe algum impedimento? 8 . Verificadas iniciadas.Scrum Planejamento 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 Cerimônias: A Reunião Diária Diá Exemplo de um Processo de Software . Em execução. Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software . Concluídas. execuç ão.Exemplo de um Processo de Software .

Cerimônia: Acompanhamento do Projeto Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software .Scrum A Reunião Diária Diá 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. 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.Exemplo de um Processo de Software .Scrum Acompanhamento do Projeto Além das reuniões diárias. associado ao cartão impedido e deixar isso bem visível visí – Registrar solução soluç 9 . 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 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. assim. criar cartão diferenciado. use as duas linhas 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. 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.

demonstração de novas Tipicamente... Exemplo de um Processo de Software .. com registro do tempo finalizaç gasto – Lembrando que ela pode voltar para “em execução”. Sem slides Toda a equipe participa Todos são convidados Exemplo de um Processo de Software .Exemplo de um Processo de Software ..Scrum 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 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. é necessário observar o que funciona necessá e o que não funciona Na retrospectiva. etc. Feita após cada Sprint apó Toda a equipe participa ScrumMaster Dono do produto Membros da equipe Clientes e outros 10 .Scrum Cerimônias: Retrospectiva Retrospectiva Durante o Sprint.Scrum Exemplo de um Processo de Software . com cerca de 1h pida. pode-se usar marcas poderepresentando tempo gasto (*. equipamentos sala. Atividade freqüente e contínua.. caso execuç ão” não seja aprovada. |_|.Scrum Exemplo de um Processo de Software .. demonstraç funcionalidades ou sua arquitetura Informal Sem muita preparação preparaç – Preocupar-se com o ambiente Preocupar» reserva de sala. Tipicamente uma reunião rápida.. freqü contí – Mas sem um guia sobre como agir – Cada caso é um caso. isso deve ser discutido por todos retrospectiva.Scrum Cerimônias: Apresentação do Sprint Apresentaç Apresentação do Sprint Apresentaç Equipe apresenta os resultados obtidos durante o Sprint Tipicamente. » Ou seja.) Informar a finalização de uma tarefa. não finalize no Quantum tarefas ainda não verificadas..

Utilize no máximo um dia para pequenos ajustes má e realize novo planejamento 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 Iniciar a fazer Iniciar a fazer Cada membro anota as respostas em cartões Cada cartão com uma resposta No máximo 3 cartões 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 .edu.Scrum Pedro de Alcântara dos Santos Neto pasn@ufpi.Scrum Introdução à Introduç Engenharia de Software Unidade III – Exemplo de um Processo de Software .Scrum Exemplo de um Processo de Software .br 11 .Scrum Exemplo de um Processo de Software .Scrum Retrospectiva Para cada questão registrar as 3 respostas mais utilizadas Elas devem ser utilizadas pelo Scrum Master na condução 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.Exemplo de um Processo de Software . e agora? Sprint.