Gerenciamento Ágil de Projetos com
SCRUM
Paulo Roberto Furtado Serra, CSM
2009
Tópicos
1. Introdução
2. Gerenciamento
de Projetos: Problemas
3. Metodologias Ágeis de
Desenvolvimento
4. SCRUM
Introdução
1. Introdução
2. Gerenciamento
de Projetos: Problemas
3. Metodologias Ágeis de
Desenvolvimento
4. SCRUM
Introdução
1. Apresentação do Instrutor
2. Objetivos do Curso
Apresentação do Instrutor Paulo Furtado Serra trabalha a mais de 10
anos na área de desenvolvimento de Software
A 3 anos vem se especializando em Metodologias de Gerenciamento e Desenvolvimento Ágeis
Mestre em Engenharia de Teleinformática pela Universidade Federal do Ceará
É Certified Scrum Master (CSM) pela Scrum Alliance
Objetivos do Curso
Repassar os princípios que rodeiam as
Metodologias Ágeis Introduzir os principais conceitos do Scrum,
bem como seus principais artefatos,
papéis e cerimônias (reuniões) Exemplificar o uso do Scrum com outras
metodologias ágeis, como a eXtreme Programming (XP)
Preparar equipe da ETICE para utilizar Scrum
no S2GPR
Tópicos
1. Introdução
2. Gerenciamento
de Projetos: Problemas
3. Metodologias Ágeis de
Desenvolvimento
4. SCRUM
Gerenciamento de Projetos
2.1. O que é Projeto?
2.2. Exemplos de Projeto
2.3. Projetos de Software
2.4. Estatísticas
2.5. Problemas
Gerenciamento de Projetos
2.1. O que é Projeto?
2.2. Exemplos de Projeto
2.3. Projetos de Software
2.4. Estatísticas
2.5. Problemas
O que é Projeto?
Esforço empreendido para algo
exclusivoÉ temporário, possui um início e
um fim;Possui restrições em custo, prazo,
qualidade e recursos;Exige coordenação;Conduzido por pessoas;
Exemplos de Projeto
Projetos de Software
2.1. O que é Projeto?
2.2. Exemplos de Projeto
2.3. Projetos de Software
2.4. Estatísticas
2.5. Problemas
Os três “Quem”
- Quem já participou de algum projeto de
software do Início ao Fim...
... que tenha terminado no prazo?
- Quem participa de algum projeto de software hoje?
Se sim, esse projeto já têm algo em produção?
- Quem já participou de algum projeto de software onde
os requisitos não mudaram? Se sim, então NÃO era um projeto de
Software!
Projeto de Software
- Construir um software não é o mesmo que
construir um prédio- Existe projeto de Software com escopo fixo?
- Na Grande maioria dos casos, o usuário
não sabe o que quer, ele sabe o que sente- Ponha isso na sua mente:
Em Projetos de Software, sempre haverá mudanças !
Estatísticas Chaos Report
Fonte: The Standish Grouphttp://www.infoq.com/articles/chaos-1998-failure-stats
2000 2002 2004 2007 20090%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
FalhouDesafiadoSucesso
Estatísticas Uso de Funcionalidades
7% 13%
16%
19%
45%
Média de uso de funcionalidades de sistemas
SempreFre-quente-menteÀs vezesRaramenteNunca
Standish Group, 2002
Problemas ...
Doenças do Gerenciamento de Projetos
Nível de Ruído em ProjetosMuita gente envolvida e pouca
gente comprometidaMuitas barreiras de
comunicação entre cliente e desenvolvedor
Doenças do Gerenciamento de Projetos
Multi-tarefa nociva Equipes enfrentam constantemente prioridades que
mudam, fazendo com que interrompam uma tarefa e trabalhem em outra
Lei de Parkinson Mais tempo de segurança, mais tempo de projeto
Síndrome do Estudante O trabalho quase sempre é adiado
Dependência entre tarefas O atraso é passado adiante, mas o adiantamento não
Nível de Ruído em um Projeto
Simples
Complicado
Anarquia
Complexo
Perto da certeza
Longe da certeza
Tecnologia
Perto deAcordo
Longe deacordoR
eque
rimen
tos
Fonte: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
Comprometimento vs Envolvimento
O porco está COMPROMETIDO A galinha está apenas ENVOLVIDA
Vocês conhecem essa?
Continua fazendo sentido?
Então, o que fazer? Em 2001, um grupo de profissionais veteranos na área de
software decidiu se reunir em uma estação de esqui, nos EUA.
O objetivo seria discutir formas de melhorar o desempenho de seus projetos.
Embora cada envolvido tivesse suas próprias práticas e teorias sobre como fazer um projeto de software ter sucesso, cada qual com as suas particularidades, todos concordavam que, em suas experiências prévias, um pequeno conjunto de princípios sempre parecia ter sido respeitado quando os projetos davam certo;
O grupo era composto de grandes nomes do mundo do software, tais como: Kent Beck, Jim Highsmith, Alistair Cockburn, Martin Fowler, Ken Shwaber e Jeff Sutherland;
O encontro deu origem ao MANIFESTO ÁGIL
Tópicos
1. Introdução
2. Gerenciamento
de Projetos: Problemas
3. Metodologias Ágeis de
Desenvolvimento
4. SCRUM
O Manifesto Ágil
Premissas das Metodologias
Ágeis
Paradigmas
Metodologias Ágeis de
Desenvolvimento / Gerenciamento
Dinâmica 1 – Planejamento 10 minutos
50 50 50
8080
50
8080
80
50
80 50 50 50 50
O Manifesto Ágil“Estamos descobrindo melhores maneiras de desenvolver software, fazendo
software e ajudando outros a fazê-lo. Através deste trabalho passamos a valorizar:
Processos e ferramentasProcessos e ferramentasIndivíduos e interaçõesIndivíduos e interações
Seguir um planoSeguir um planoResposta à mudançasResposta à mudanças
Documentação abrangenteDocumentação abrangenteSoftware que funcionaSoftware que funciona
Negociação de contratoNegociação de contratoColaboração do clienteColaboração do cliente
Mais que
Isto é, embora haja valor nos itens do lado direito, nós valorizamos mais os do lado esquerdo.”
http://www.agilemanifesto.org
Agile – Conceitos e Princípios
O que é “ser ágil”?Desenvolvimento incremental e
iterativoCooperação e colaboraçãoProcesso Empírico de
DesenvolvimentoDocumentação ÚtilSimplicidadeComunicação
O que significa “ser ágil”?Segundo James Shore & Shane
Warden“A resposta é mais complicada do que
se pode pensar. O Desenvolvimento ágil não é um processo específico que pode ser seguido. Nenhuma equipe pratica o método Ágil.”
“O desenvolvimento ágil é uma filosofia. É uma maneira de pensar sobre desenvolvimento de software. Isso pode ser visto no Manifesto Ágil.”
O que é Agilidade segundo eles?
For many people the appeal of these agile methodologies is their reaction to the
bureaucracy of the engineering methodologies. These new methods
attempt a useful compromise between no process and too much process,
providing just enough process to gain a reasonable payoff.
Martin Fowler
Jim Highsmith
Desenvolvimento Incremental e IterativoPor que mudar isso?
Requisitos
Especificação
Implementação
Homologação e Testes
Produção
Desenvolvimento Incremental e IterativoPensando um pouco...
PLANEJAMENTOPOR FASE
Requisitos
POR QUE NÃO...ITERAÇÕES?
Iteração 1 Iteração 2 Iteração N
...
Especific.
Desenvolv
TestesProduçã
o
Isso não é do jeito que eu
queria !!!
ENTREGA 1 ENTREGA 2
Desenvolvimento Incremental e Iterativo
Cooperação e ColaboraçãoMetáfora da Mudança de Salas
Quantas salas eu tenho Desmontadas ?
Quantas salas eu tenho montadas ?
Cooperação e ColaboraçãoMetáfora da Mudança de Salas
Quantas salas eu tenho Desmontadas ?
Quantas salas eu tenho montadas ?
Desenvolvimento Incremental e Iterativo
Um estado mental, não um conjunto de documentos, passos ou técnicas;
É mais atitude do que um processo, mais
ambiente que uma metodologia;Entregar produto com valor para o
negócio, mais rápido e continuamente; Garantir progresso real; Abraçar mudanças;Qualidade desde o início;
Abordagens Ágeis
Scrum: É uma abordagem ágil para o gerenciamento de projetos. Fornece práticas que ajudam gerentes a tornar mais dinâmico e gerenciável o ambiente de desenvolvimento de software.
XP (eXtreme Programming): É uma abordagem ágil para a
engenharia de projetos de software. Como o próprio nome diz, é extremamente focada no desenvolvimento, e tem como principal
característica a programação em par.
FDD (Feature-Driven Development): É uma abordagem ágil para a engenharia de projetos de software. Defende o desenvolvimento de
um modelo abrangente no início do projeto pelo qual as funcionalidades do sistema serão descobertas e desenvolvidas..
Empresas/Instituções que estão tendo sucesso com Agile
e outras ...
Tópicos
1. Introdução
2. Gerenciamento
de Projetos: Problemas
3. Metodologias Ágeis de
Desenvolvimento
4. SCRUM
SCRUM
O que é Scrum?Algumas definições
Scrum é um processo iterativo e
incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer trabalho.
Scrum é um processo ágil para o
gerenciamento e controle de projetos;
Scrum é uma abordagem para desenvolvimento de sistemas e produtos onde os requisitos
sofrem constantes mudanças; Scrum é um processo que controla o
caos dos conflitos de interesses;
O que é Scrum?Mais definições
Scrum é uma forma de otimizar a comunicação do time e favorecer a cooperação;
Scrum é uma forma de otimizar a produtividade;
Scrum é uma forma de todos se sentirem bem com seu trabalho, suas contribuições, e faz com que todos dêem o melhor de si para o sucesso do projeto.
É um processo EMPÍRICO e não um PROCESSO DEFINIDO.
Ao contrário do que muitos pensam, o SCRUM se baseia no RUP, pois ambos são iterativos e incrementais
A Dinâmica do Scrum
SPRINT
Artefatos
Product Backlog
Sprint Backlog
Burndown Chart
Product Backlog
Criado a partir de uma Visão do Projeto
Lista de funcionalidades
priorizadasFuncionalidade Prioridade
Func. A 10
Func. B 20
Func. C 30
Func. D 40
Func. E 50
Func. F 60
Func. N 70
Maiorprioridade
Menor Prioridade
Sprint Backlog Parte do Product Backlog que vai ser feita numa
iteração (Sprint) Montado a partir das funcionalidade que estão no
topo do Product Backlog
Funcionalidade Prioridade
Func. A 10
Func. B 20
Func. C 30
Func. D 40
Func. E 50
Func. F 60
Func. N 70
Maiorprioridade
Menor Prioridade
SprintBacklog
Mas o que é um Sprint?
Um período de Tempo entre 2 a 4 semanas
Sempre deve ter um objetivo a ser atingidao pela equipe
É normal que o tempo de duração dos Sprints possam variar no início do projeto, mas o ideal é que se chegue num tempo único para todos os sprints
Todos os Sprints devem pessuir uma estrutura exatamente igual
Estrutura de um Sprint
1º 2º 3º 4º 5º 6º 7º 8º 9º 10º
DIAS
Pla
neja
men
to –
Spr
int X
Apr
esen
taçã
o –
Spr
int X
Pla
neja
men
to –
Spr
int X
+1
SPRINT X
Reunião
diária
Reunião
diária
Reunião
diária
Reunião
diária
Reunião
diária
Reunião
diária
Reunião
diária
Reunião
diária
Dinâmica do Product Backlog
A
B
C
Pro
du
ct B
ackl
og
F
G
H
I
D
Sprint 1O que está dentro do SprintNão pode ser alterado.
- O que está fora do Sprint pode Ser alterado de acordo com a necessidade do cliente.
- Ele pode alterar prioridades, inserir novas tarefas ou retirar tarefas existentes.
- Algumas tarefas podem ser inseridas pela equipe. Ex: Montar ambiente para Integração contínua
Pri
ori
dad
e
Alta
Baixa
E
Histórias
Papéis no Scrum
Product Owner
Scrum Master
Equipe
Product Owner
Define as funcionalidades do produto Decide datas de lançamento e
conteúdo Responsável pela rentabilidade (ROI) Prioriza funcionalidades de acordo
com seu valor para o negócio Gerencia a entrada de novos
requisitos e suas prioridades Aceita ou rejeita o resultado dos
trabalhos
$$$$$$$$
$$
Scrum Master
Representa a gerência para o projeto
Responsável pela aplicação dos valores e práticas do Scrum
Remove obstáculos Garante a plena funcionalidade e
produtividade da equipe Garante a colaboração entre os diversos
papéis e funçõesEscudo para interferências externas
Equipe
Tamanho variável , é aconcelhável não mais que 9 pessoas e não menos que 4
Multi-funcional▪ Programadores, testadores, desenvolvedores...
Aconcelhável trocas só na mudança de Sprints Faz o que for preciso para alcançar a Meta do Sprint,
uma vez que se compromete com o que vai ser entregue
Apresenta aos interessados o resultado do Sprint
Cerimônias
Planejamento do Sprint
Reunião Diária
Demonstração
Retrospectiva
Planejamento do Sprint(Sprint Planning Meeting)
Reunião que define O objetivo (meta) do Sprint Uma lista dos membros da equipe que estarão
comprometidos com a meta Um Sprint Backlog (lista com todas as
funcionalidades incluídas no sprint) Uma Data para demonstrar que foi produzido
durante o sprint Hora e lugar definido para acontecerem as
reuniões diárias Dependendo do projeto, esta reunião pode durar
de 4 a 16 horas
Planejamento do SprintESTIMATIVAS
Como estimar?Story Points
Um “peso” dado para cada história
Indica quanto uma história é maior ou mais complexa que outra
Horas Tempo estimado por cada tarefa
Planejamento do SprintESTIMATIVAS em Story Points
Planning Poker
Exercício
Livro Características
-Manual CMMI-899 páginas-Inglês-Informática
- 1300 páginas-Português- Religião
Livro Características
- 80 páginas- Em português- Fofocas
-- 120 páginas- Em português- Humor
Reunião Diária(Scrum Daily Meeting)
Objetivo Cada membro deve responder as seguintes perguntas:
1. O que você fez desde a última reunião diária?2. O que você pretende fazer até a próxima
reunião diária?3. Existe algum problema que o impeça de
realizar suas atividades?Duração
15 minutos (não mais que isso) Todos em Pé Qualquer pessoa pode participar, mas apenas o
Scrum Master e os Membros da Equipe pedem falar
Reunião de Demonstração(Sprint Review)
Objetivo Mostrar o que foi produzido no Sprint
Duração 30 a 60 minutos
Participantes Product Owner, Scrum Master, membros do
time, clientes, Usuários, Stakeholders e qualquer pessoa que esteja interessada no resultado da Sprint
Qualquer participante pode falar, fazer perguntas ou observações
Retrospectiva(Sprint Retrospective)
Objetivo Enumerar o que funcionou e o que não funcionou
durante o Sprint Duração
30 a 60 minutos Participantes
Product Owner, Scrum Master e os membros do time Esta reunião pode ser feita à frente de um
quadro branco onde membro cola post its dizendo o que funcionou e o que não funcionou
Feita após cada Sprint
RetrospectivaExemplo
O que Funcionou O que não funcionou
Testes Comunicação entre os membros
Usuário
Distante
Reuniões
Diárias
Alguns membros chegam tarde
Faltou melhor
planejamento do Sprint
Quatro KanBan
Product Backlog
Sprint Backlog
Burndown Chart
Artefatos do Scrum
Burndown Chart
eXtreme Programming (XP)
Principais práticas Programação em Par Integração Contínua Test Driven Development Refatoração Contínua Iterações de uma semana
Paradigmas a serem quebrados
Equipes auto-gerenciáveisEquipes multi-disciplinaresAté onde a documentação é último
Comunicação Referência
Desenvolvimento por iteraçõesZonas de conforto
Hotel McTreffe Nome do Hotel: Rede de Hotéis
McTreffeEndereço:
Rua 30 de Fevereiro, S/N – Bairro Canela Seca – Fortaleza-Ceará – Brasil
Instalações▪ Quarto equipado com moderno sistema de
ventilação natural; ▪ Cama de solteiro (traga o colchão); ▪ Direito a cafezinho da manhã (só o café); ▪ Avançada TV de 7” equipada com antena UHF/VHF▪ Banheiro com balde de 10 litros para um belo
banho morno▪ Internet 56kb 2horas por dia (obs: Link compatilhado com
todo o hotel)
Hotel McTraffe
Principais Atrações▪ Mergulho na lagoa de Messejana
▪ Valor(R$ 1500,00) por 30min
▪ Passeio turístico pela região central do Lagamar▪ Valor(R$ 500,00) por 1h
▪ Explorar o túnel do Metrofor por 1 dia ▪ Valor: 1 kg de cimento não pereível + R$ 5000,00 para
ajudar na construção
▪ Banho de Mar na Praia da Leste-Oeste com direito a pomada pra micose▪ Valor: R$ 200,00
Obs: Translado gratuito para todos as atrações disponíveis
Projeto McTraffe
Desenvolver uma logomarca para o Hotel Criar um slogan que represente a
qualidade do hotel Criar um folder que contenha endereço,
logomarca, slogan, instalações, principais atrações
Criar um Jingle para divulgar o Hotel nas rádios
Criar um panfleto resumindo as principais características do Hotel
Elaborar uma folha de sugestões/críticas
Referências
www.mountaingoatsoftware.com/scrum www.scrumalliance.org www.controlchaos.com [email protected] Agile Software Development with Scrum
by Ken Schwaber and Mike Beedle Agile Project Management with Scrum by
Ken Schwaber Scrum and the Enterprise by Ken
SchwaberScrum and XP from the trenches
OBRIGADO!