Escolar Documentos
Profissional Documentos
Cultura Documentos
Alan Braz
Mestre - IC-Unicamp
Pesquisador em Eng. Software Ágil - IBM
Email: alanbraz@gmail.com
Twitter: @alanbraz
Blog: alanbraz.com.br
Este arquivo: alanbraz.com.br/ic/scrum.pdf
Chaos report
2
Maglev Chinês (MAGnetic LEVitation)
Projeto: contrução do primeiro
maglev para ligar o centro
empresarial de Shanghai e
imediações para o aeroporto
(30km em 8m)
Orçamento: US$ 1.08bi
Prazo: Jun01 – Dez03
(2 anos e 7 meses)
Resultados técnicos: finalizado no
tempo, orçamento e escopo.
Resultados de negócio:
inicialmente o trem rodava
praticamente vazio: ROI não foi
como esperado.
3
Titanic (filme de 1997)
Orçamento inicial:
US$ 200 mi
Total gasto:
US$ 400 mi
Data de entrega:
1 ano após o previsto
Resultado:
Ganhador de 11 Oscars
Receita:
mais de US$ 1.8 bi
4
5
Modelo Tradicional (Cascata)
•Por que ele é tão popular?
6
Modelo Tradicional (Cascata)
•Por que ele é tão popular?
•É fácil de explicar e lembrar
•Dá a ilusão de algo ordenado, contável e
mensurável com marcos orientados à
documentos
•Foi altamente promovido e ensinado nos
cursos de Engenharia de Software
7
Características de Projetos Ágeis
8
Características de Projetos Ágeis
9
Características de Projetos Ágeis
• Planejar apenas o necessário
• Iterações Time-boxed
(intervalos fixos)
• Velocidade
• Rotas alternativas
• Lidar com surpresas
• Motivar o time
• Lidar com a diferença de
objetivos dos envolvidos
• Iterações repetidas e
sustentáveis
• Infraestrutura
10
O que não é Ágil
PRECISAMOS DE USE DESENVOLVIMENTO ÁGIL
ENCONTRE OUTRAS
MAIS 3 PROGRA- MÉTODOS NÃO SIGNIFICA FAZER
PALAVRAS QUE
MADORES ÁGEIS DE MAIS COISAS COM
SIGNIFIQUEM ISSO E ME
PROGRA- MENOS PESSOAS.
PERGUNTE DENOVO.
MAÇÃO
11
Ágil
•Inicialmente, métodos ágeis eram conhecidos como
métodos leves.
•Em 2001, membros proeminentes da comunidade se
reuniram em Snowbird e adotaram o nome métodos ágeis
Manifesto ágil - www.manifestoagil.com.br
•4 valores
•12 princípios e práticas
•Os métodos ágeis iniciais:
• Scrum (1986)
• XP (1996)
• Crystal Clear
• Feature Driven Development
• Entre outras...
The Agile Manifesto 10th Anniversary Reunion
12
Manifesto para o desenvolvimento Ágil de software
Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e
ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar:
Indivíduos e
mais que Processos e ferramentas
interação entre eles
Software em
mais que Documentação abrangente
funcionamento
Colaboração com
mais que Negociação de contratos
o cliente
Responder a
mais que Seguir um plano
mudanças
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.
Fonte: http://manifestoagil.com.br/ 13
12 Princípios (1/3)
1. Nossa maior prioridade é satisfazer o cliente, através da entrega
adiantada e contínua de software de valor.
14
12 Princípios (2/3)
5. Construir projetos ao redor de indivíduos motivados. Dando a
eles o ambiente e suporte necessário, e confiar que farão seu
trabalho.
15
12 Princípios (3/3)
9. Contínua atenção à excelência técnica e bom design, aumenta a
agilidade.
16
Em poucas palavras...
Usar feedback contínuo dos
envolvidos para desenvolver
código funcional com alta-
qualidade através de “Histórias de
Usuários” (user stories) em uma
série de iterações curtas e bem
delimitadas.
17
Quem são Stakeholders (envolvidos)??
Usar feedback contínuo dos envolvidos para desenvolver código funcional com alta-
qualidade através de “Histórias de Usuários” (user stories) em uma série de iterações curtas
e bem delimitadas.
18
Histórias de usuários?! (user stories)
Usar feedback contínuo dos envolvidos para desenvolver código funcional com alta-
qualidade através de “Histórias de Usuários” (user stories) em uma série de iterações curtas
e bem delimitadas.
19
Iterações curtas e bem delimitadas?
http://www.patientkeeper.com/
Usar feedback contínuo dos envolvidos para desenvolver código funcional com alta-
qualidade através de “Histórias de Usuários” (user stories) em uma série de iterações curtas
e bem delimitadas.
20
Visão Geral
Lean
Otimizar o todo
Eliminar o desperdício
Ágil
Testes Unitários Automatizados /
TDD, Melhorias contínuas, …
Iterativo
Ágil é uma rede de práticas que se completam.
Práticas que não adicionam valor, são excluídas.
22
Os princípios chave
• Eliminar Desperdício • Entrega rápida
• Mapear cadeias de valor • Teoria das Filas
• Solução Completa
• Foco no aprendizado
• Qualidade constante • Produto & Processo
• Disciplinas Fundamentais
• Validação Contínua • Respeitar as Pessoas
• Times
• Postergar Comprometimento • Parceiros
(Defer Commitment)
• Manter opções em aberto • Otimizar o todo
• Set-Based Design • Systems Thinking
• Roadmap
Controle de
Papelada interna Tempo em Espera = mudanças
Perda de $$$$
Backlog = Entregas
as
atrasadas
r
Custo
xt
.E
nc
Fu
rio
Necessá
Mínimo
Tempo
Complexidade Funcionalidades Extra elevam os
custos exponencialmente
Defeitos
24
Mito: especificar tudo no início reduz o desperdício
25
Código custa dinheiro para ser escrito e mantido
Pré-Concepção Concepção
Product Modelo de Arquitetura User Confirmar Release
Questionário
Backlog Negócio Alto Nível Stories Requisitos Estimate
de decisão
2-4
Semanas
Produto
potencialmente
Iteration Teste
entregável
Backlog
Daily
Scrum
March 2009
27
Agile Framework
29
Origem do Scrum
30
Origem do Scrum
http://www.infoq.com/presentations/The-Roots-of-Scrum
31
The New New Product Development Game
32
Rugby?!
33
Scrum
• Foi criado também nos anos 80 e 90, primeiramente em
círculos de desenvolvimento OO como uma metodologia
altamente iterativa de desenvolvimento.
Sprint = Iteração
37
Personagens
38
39
Scrum
Entradas dos Executivos, Gráfico
Equipe, Clientes, Usuários Burndown2
e outros Envolvidos
Scrum
Scrum Diário3
Master1
Cada
24 horas
Sprint
2-4
Dono do Produto1 Equipe de
Semanas Revisão do Sprint3
(Product Owner) Desenvolvimento1
Time seleciona
as de maior Tarefas
Hitórias de prioridade que
Usuários podem se
ou comprometer a Data de Entrega e Backlog do
Casos de entregar no final Backlog do Sprint não sofrem alterações Incremento Pronto2
Uso do Sprint Sprint2 após o início do Sprint
Reunião de
Planejamento
Backlog do
do Sprint3
Produto2
Lista ordenada Retrospectiva
dos requisistos 1
Papel, 2Artefato, 3Evento do Sprint3
40
Papel dos Personagens
Define os requisitos, datas e conteúdo das releases
Responsável pelo ROI do produto
Responsável pela manutenção e priorização do Backlog
Aceita ou rejeita os resultados das Sprints
Configuração multi-funcional
Equipe de 5 a 10 participantes
Seleciona os itens prioritários para o sprint backlog
Tem o direito de fazer o que for preciso, dentro dos limites do projeto, para atingir os
objetivos comprometidos
Participa das reuniões diárias, revisão e planejamento
41
Artefatos
42
Reuniões
Planejamento da Iteração Daily Scrum Revisão da Iteração
Coordenada pelo ScrumMaster Coordenada pelo ScrumMaster Coordenada pelo ScrumMaster
Todos participam (Porcos e Frangos) O time participa (frangos são opcionais) Todos participam (Porcos e Frangos)
Entradas: Product backlog, produto atual, Mesmo lugar e horário, todos os dias, Informal, 4 horas, informativa
condições técnicas e de negócio 15 mins max
Time demonstra o incremento
1. Seleciona-se os itens de maior Responder
prioridade do Backlog; declara-se o Todos discutem
1. O que você fez ontem?
Objetivo da Iteração Considera-se candidatos à componentes
2. O que vai fazer hoje?
2.Time transformas os itens selecionados Realiza-se a reflexão
3. Tem algum impedimento?
no Iteration Backlog
Time atualiza o Iteration Backlog Anuncia-se a próxima reunião de
Saída: Objetivo da Iteração, Iteration planejamento
Backlog Scrum Master atualiza Blocks List
Reflexão
Perguntar a
cada iteração:
Não se passa status o que devemos…
para o ScrumMaster
1. PARAR ?
Mas se compromete
com seus colegas 2. COMEÇAR ?
3. CONTINUAR ?
43
Scrum Development Process
•Começa quando:
•A fase de Concepção
está concluída
44
Done, done, done, done!
45
Você está Pronto, Pronto, Pronto, Pronto?
Tom “Oi, Frank! – Você já terminou aquela funcionalidade nova?”
“Humm um segundo ……
Frank
Pronto. E eu só levei meio dia para terminar”
TOM “Wow, impressionante! Nós estimamos que levaria no mínimo 1 dia,
Gerente de Projetos Tom
2 provavelmente. Posso dar uma olhada??”
Frank “Bem, ainda não. Eu não integrei o novo código ainda.”
“OK – Mas quando você tiver feito isso, eu poderei dar uma olhada
certo? Estou ansioso para mostrar aos clientes. Eles nos contrataram
Tom especialmente por causa desta funcionalidade. Eu vou instalar a nova
build no ambiente de testes deles assim eles podem dar uma
brincada.”
“Bem, eu não mostraria isso a ninguém. Eu não testei ainda e você
Frank não conseguirá instalar em lugar algum. Eu não atualizei o instalador
e nem os scripts de atualização do banco de dados.”
FRANK
Desenvolvedor “Não estou entendendo. Pensei ter ouvido você dizer que estava
Tom
pronto!”
“E esta! ….Eu terminei de codificar no exato momento que você ligou.
Frank
Veja, eu vou te mostrar.”
“Não, não, eu não quero ver código... Eu preciso ter a capacidade
Tom de mostrar isso pro cliente. Eu preciso dela terminada,
realmente terminada!”
“Ahhh bom, por que você não disse logo? O código está pronto,
Frank mas não está pronto, pronto, pronto, pronto! Me dê mais alguns
dias que eu finalizo isso.”
46
Dívida Técnico (Technical Debit)
B u g B a c k lo g
Time
Iterative Waterfall
Sprint
2-4
Dono do Produto1 Equipe de
Semanas Revisão do Sprint3
(Product Owner) Desenvolvimento1
Time seleciona
as de maior Tarefas
Hitórias de prioridade que
Usuários podem se
ou comprometer a Data de Entrega e Backlog do
Casos de entregar no final Backlog do Sprint não sofrem alterações Incremento Pronto2
Uso do Sprint Sprint2 após o início do Sprint
Reunião de
Planejamento
Backlog do
do Sprint3
Produto2
Lista ordenada Retrospectiva
dos requisistos 1
Papel, 2Artefato, 3Evento do Sprint3
48
49
Product Backlog
•O Backlog do Produto é um repositório das
Histórias de Usuários que estão prontas
para ser implementadas em uma iteração
User Story
Product Backlog
50
User Stories
•Uma User Story descreve uma
funcionalidade que tem alguma utilidade
para um stakeholder do sistema.
52
User Stories:
Cartão: Descrição breve
53
User Stories: Conversação
•Atenção: é aqui que o real valor da
história aparecerá
54
User Stories: Confirmação
•As condições de satisfação do Product Owner devem
ser adicionadas na história.
•Devem ser facilmente testadas e de resultado binário Sim ou
Não.
•Vão determinar se a história foi concluída com sucesso.
•Não existe parcialmente finalizado ou terminado mas...
•Independente
•Negociável
•Com Valor
•Estimável
•Tamanho apropriado
•Testável
57
User Stories em tarefas
•Durante o planejamento da iteração as
histórias devem ser quebradas em tarefas
58
Product Backlog é do Product Owner
•Lista a histórias a serem implementadas
• Priorizadas de Alta para Baixa
• Utiliza conhecimento técnico para ajudar na priorização
• Esta sempre uma iteração à frente dos desenvolvedores
•Foca no top 20%, apesar que deve ser revista
inteiramente de tempos em tempos
•Itens de baixa prioridade devem ser
consolidados
•Itens de muito baixa prioridade devem
ser descartados
• Se for importante, elas voltam naturalmente
59
Aprender a priorizar - MoSCoW
•M – MUST HAVE
• Highest priority
•S – SHOULD HAVE
• Desirable to have
•C – COULD HAVE
• Nice-to-have
•W – WON’T HAVE
• Out of scope for this release
60
Priorizar de 1 a N
61
Resumindo
•O Product backlog é a lista de trabalho a
ser implementado
•Pertence e é priorizado pelo Product
Owner
•Priorização na forma MoSCoW seguindo
ordem numérica
62
Por que os planos dão errado?
Assume-se que tarefas
são independentes
A síndrome do estudante
6363
1. Assumimos que as tarefas são
independentes
Muitas tarefas tem dependências entre si.
•Estimativas erradas geram uma cadeia de
atrasos em outras tarefas
Conforme temos mais conhecimento
sobre os requisitos, voltamos e
atualizamos nossas estimativas
Estimativas de Software não seguem
uma distribuição normal
6464
2. Atrasos impactam o cronograma
Tarefa 3 inicia:
ATRASADO se 1, 2 ou 4 estiver atrasada
ANTES apenas se 2 e 4 terminar antes e tiver recurso
disponível
6565
3. Síndrome do Estudante
Definição
Iniciar uma tarefa no
último momento
possível que não
prejudicará a data de
entrega
Exemplo:
Começar a fazer o
trabalho da pós na
sexta à noite :D
6666
O que ocorre?
6969
O efeito das multi-tarefas
7070
A cebola do planejamento
7171
Planejando o Produto, as releases, e as
iterações
7272
Medidas
7373
Story Points
É a “grandeza” de uma tarefa
Influenciada por
•Quão difícil ela é
•O quanto dela já temos
Valores são relativos
•Tela de login é 2
•Funcionalidade de busca é 8
Isentos de unidade
7474
Tempo Ideal
Quanto tempo demoraria se...
•Você trabalhasse exclusivamente nisto
•Não houvessem interrupções
•E tudo que você precisa estiver disponível
O Tempo Ideal de uma partida de
Basquete é 48 minutos
•12 minutos por quarto
Mas o tempo corrido é muito maior
•Normalmente 3 horas
7575
3 níveis de planejamento...
7676
...com 3 níveis de precisão
Story Horas
Points Ideais
Comprometimento
diário
7777
Estimar por analogia
7979
Desagregações
8080
Investigar quanto esforço?
Esforço
8181
Usar as unidades corretas
8282
Planning Poker
8484
Kanban
8585
http://taskboard.agilar.org
8686
kunagi.org
Burndown charts
8989
Apenas o que falta para trabalhar
4 lições:
1. Mostra progresso
2. Levanta questões, e não
as responde
Story Points
3. Antecipa discussões
4. Impossibilita a mentira
Iteration = Sprint
9191
Resumindo
Sprint
2-4
Dono do Produto1 Equipe de
Semanas Revisão do Sprint3
(Product Owner) Desenvolvimento1
Time seleciona
as de maior Tarefas
Hitórias de prioridade que
Usuários podem se
ou comprometer a Data de Entrega e Backlog do
Casos de entregar no final Backlog do Sprint não sofrem alterações Incremento Pronto2
Uso do Sprint Sprint2 após o início do Sprint
Reunião de
Planejamento
Backlog do
do Sprint3
Produto2
Lista ordenada Retrospectiva
dos requisistos 1
Papel, 2Artefato, 3Evento do Sprint3
93
Referências
Takeuchi, Hirotaka; Nonaka, Ikujiro.
"The New New Product Development Game". Harvard Business
Review. 1986
Ken Schwaber and Mike Beedle. Agile Software Development with
Scrum. Prentice Hall, Upper Saddle River, New Jersey, 2002.
Ken Schwaber. SCRUM Development Process. OOPSLA’95
Workshop on Business Object Design and Implementation, 1995.
Mary Poppendieck and Tom Poppendieck. Lean Software
Development: An Agile Toolkit. Addison-Wesley, 2003.
Agile Manifesto – http://agilemanifesto.org/iso/ptbr/
Scrum Guide - versão de 2011 em português
Video: Scrum Master in Under 10 Minutes
NEW Scrum Master in Under 10 Minutes video
94
Referências
Scrum from the Trenches – livro com
exemplo de implantação de Scrum (
Português – Inglês)
Coletânea de Papers acadêmicos de Jeff Sutherl
State of Agile Development Survey Results
Disciplined Agile Delivery
Ferramenta para gerenciamento usando
Scrum – Rational Team Concert,
grátis para 10 usuários no jazz.net 95