Essa é a tradução para português brasileiro da apresentação do Henrik Kniberg, originalmente entitulada "10 ways to screw up with Scrum and XP" que foi apresentada no Agile 2008 em Toronto.
1. 10 maneiras de se dar mal com
Scrum e XP
Agile 2008
Toronto
Henrik Kniberg - Crisp AB
Mentor de Agile & cara de Java
Co-fundador / CTO de Goyada (serviços de mobile)
30 desenvolvedores
Arquitetro-chefe na Ace Interactive (jogos)
20 desenvolvedores
Chefe de desenvolvimento na Tain (jogos)
40 desenvolvedores
henrik.kniberg@crisp.se
+46 70 4925284
Tradução: Demetrius Nunes (www.demetriusnunes.com)
3. Como usar os cartões de feedback
Quando você vir esse sinal:
Vote!
= Não é um problema para nós. Sério.
= Temos alguns problemas com isso.
= Ai, que dor!
Henrik Kniberg 3
4. 10 maneiras de se dar mal com Scrum e XP Vamos virar Agile!
Oba!
1: Acreditar na onda Onde está o CD de
instalação?
Ai, que dor!
Não é um problema para nós.
Sério
Acreditar em mágica
Não estar disposto a mudar
Jogar fora o que funciona
Focar demais em Processos Perfeitos
Tentar acertar logo tudo desde o princípio
Culpar o mensageiro
Focar em ferramentas
Focar nos aspectos errados
Henrik Kniberg 4
5. 10 maneiras de se dar mal com Scrum e XP
Mas você falou que tava
pronto!
2: Definição de DONE Ver quem
está logado
Não existe
Não é respeitada 100 usuários
Time não tem controle disso simultâneos
Definição Padrão de Done Definição Padrão de Done
• Testes Unitários/Integração • ”Lançável”
• Pronto para Testes de Aceitação • Aprovado em testes de aceitação
• Implantado no servidor de demo • Notas do Release escritas
• Dívida técnica não aumentou
= eu não piorei
o código
Henrik Kniberg 5
6. 10 maneiras de se dar mal com Scrum e XP Qual sua velocidade?
3: Velocidade Ver quem
5
Hein?!
está logado
não se sabe
não é usada 3
é mal usada 100 usuários
simultâneos 8
marchas fúnebres
trapaceando
300
mínimo
velocidade iô-iô
EXEMPLO PO
• Hoje é 6/ago
400
máximo
• Duração do = 2 semanas
• Velocidade = 30 a 40
O que estará pronto até o Natal?
(10 sprints)
Henrik Kniberg 6
6
7. 10 maneiras de se dar mal com Scrum e XP
Estimando velocidade sem histórico
Como X
Eu quero Y
Fatos: Para que Z 8pts
Hmmm.... acho que ESSA
história é de 6 homens-dia
• Tamanho do time = 6 pessoas Como X ideais
• Duração do sprint = 2 semanas Eu quero Y 2pts
Para que Z
Como X
Estimativa: Eu quero Y 3pts
• 2 pts = 6 hdi Para que Z
• Fator de foco: 50% Como X
Eu quero Y
Para que Z 5pts
Cálculo:
• Dias úteis no sprint: 10 dias
• Homens-dia no sprint: 60 hd
• Homens-dia Ideais no sprint: 60 hd x 50% = 30 hdi
• Velocidade: 30 hdi / 3 = 10 pts / sprint
7
Henrik Kniberg 7
8. 10 maneiras de se dar mal com Scrum e XP
Estamos com pressa,
vamos começar o próximo
4: Retrospectiva sprint logo!
não é feita
não resulta em propostas concretas de melhoria
mudanças não são executadas & avaliadas
pessoas indesejadas na reunião
membros do time ou PO não participam
time penalizado por mudanças que dão errado
Velocidade
1 2 3 4 5 6 7 8 9 10 11 12 13
Sprint
Henrik Kniberg 8
9. 10 maneiras de se dar mal com Scrum e XP
Retrospectiva do Sprint
Parte 1: O que aconteceu?
1a história
pronta para João
testes doente
Bug #25
Removido
do Sprint
Mesas novas Demo da
instaladas Grande Rede Time Sprint
discussão apagou concentrado!
Semana 1 Semana 2 Semana 3
9
Henrik Kniberg 9
10. 10 maneiras de se dar mal com Scrum e XP
Retrospectiva do Sprint
Part 2: O que faremos de
diferente no próximo Sprint?
10
Henrik Kniberg 10
11. 10 maneiras de se dar mal com Scrum e XP Vocês tem que fazer mais!
Tá bom, a gente vai tentar.
5: Comprometimento
Velocidade Velocidade
Time é pressionado
Estimada Real
Time não senta junto
40 30
Time não registra & aprende
30 28
Sempre superestimando
Sempre subestimando
30 33
Velocidade = 0 30 30
Não há ”folga”
Estimado Real Estimado Real
40 30 40 30
40 30 50 30
40 30 60 30
Henrik Kniberg 11
12. 10 maneiras de se dar mal com Scrum e XP
Nós não temos tempo
para escrever testes
6: Dívida técnica unitários ou refatorar o
código!
Deixando acumular • Código duplicado
• Falta de cobertura de testes
Ignorando • Código ilegível
Consertando o produto mas não o processo
Re-fazer do zero
Vmax Vmax
Vreal
Vreal
Ritmo sustentável!
velocidade
velocidade
tempo tempo
Henrik Kniberg 12
13. 10 maneiras de se dar mal com Scrum e XP
Lidando com dívida técnica
Segundo passo
Vmax (se for economicamente viável)
Vreal Reduza ainda mais
Primeiro passo Comece a pagar a dívida!
Reduza o ritmo
velocidade
Pare de acumular dívida técnica!
Ritmo sustentável
Definição de Done Definição de Done
• .... bla bla .... • .... bla bla ....
• Não há aumento da dívida técnica • Dívida técnica diminui
tempo
Henrik Kniberg 13
14. 10 maneiras de se dar mal com Scrum e XP
Bem, pelo menos eu
terminei as minhas coisas!
7: Trabalho de Equipe
Papéis fixos
Backlogs pessoais
Ninguém ajuda
ninguém
Política de incentivos
pessoais
Tocando as histórias
em paralelo
Interferência da
gerência
Henrik Kniberg 14
15. 10 maneiras de se dar mal com Scrum e XP
Eu não tenho tempo de
manter esse maldito
8: Backlog do Produto & backlog!
Product Owner / Cliente Ver quem
PBL não existe está logado 5
PO
PBL não é visível Backlog
3
Histórias grandes e/ou
100 usuários 8
que nunca acabam simultâneos 8 5
PO sem autoridade e/ou 5
conhecimento do domínio 3
5
Múltiplos POs em conflito
5
PBL não é mantido pelo PO
8
PO surpreso na demo do sprint
5
PO sendo um gargalo 3
5
PO não prioriza PBL
Henrik Kniberg 15
16. 10 maneiras de se dar mal com Scrum e XP V
V V
V
2010
Abr
2009
Mai
2009
Jun
2009
2011
Q3
2009
Q4 2012
2009
2010
2013
Henrik Kniberg 16
17. 10 maneiras de se dar mal com Scrum e XP
Merges são muito
dolorosos, então a gente
9: Medo de Merge faz merge o menos
possível
não existe um branch ”Done”
não há política de branches
não há integração cedo e freqüente
não assumindo a responsabilidade
se escondendo atrás de branches
Me desculpe, mas
Você não consegue se tornar ágil sem
práticas de engenharia ágeis
Vai um XP aí?
Henrik Kniberg 17
18. 10 maneiras de se dar mal com Scrum e XP
Controle de versão – múltiplos times
http://www.infoq.com/articles/agile-version-control
Guia Sprint 1
• Nada de lixo no trunk Dia 1 Dia 2 Dia 3 Dia 4 Dia 5 Dia 6
• Trunk sempre ”lançável”
• Trunk quebrado = pára tudo! Release!
• Merge a partir do trunk todo dia
• Copie para o trunk toda vez que uma Trunk
Regra:
m1 m2
história for completada Só o que
estiver
PRONTO!
Time A a1 a2 a3 a4
Regra:
Testado
unitariamente
Time B b1 b2 b3
Regra:
Testado
unitariamente
Tempo
Henrik Kniberg 18
19. 10 maneiras de se dar mal com Scrum e XP
Ah, você diz aquela coisa
que o ScrumMaster fica
10: Backlog do Sprint mexendo de vez em
quando?
/ quadro de tarefas
não existe
muito longe do time
muito complicado
não usado na Reunião Diária
não pertence ao time
não tem gráfico
burndown
não é atualizado
diariamente
sinais de alerta
ignorados
Henrik Kniberg 19
20. 10 maneiras de se dar mal com Scrum e XP Nt
o
ch cke o
e d ut D ne :o
o ! ) S R T G A B t a a re a !
P IN OL: e -re dy le se
ch cke o
e d ut
Sinais de alerta D e p o si t
In t eg r
2 d
W r it e
f a il in g
t e s t
C od e
p
D A O
Burndo n
w
c l e a n uD B
t es t
2 d d e s ig n
1 d
Burndown
0.5d
2d
1d
M ig r a t io n
G U I
s p ec
2d
tool
T a p e
W ri t e
f a i li n g
2 d t es t
st r y
sp i k e I m1 p l. 3 d
d
m ig r a t io n
1 d
2d 8d
Im p l W ri t e
B ak of i c e
c f G U I
1 d
f a i li n g
t es t
2 d
Lo n
gi In t eg r.
wi t h
U la d it e s
np nne m N xt
e
J B o s s
2 d
F ixm
e m o r y W i t f htdr e atws
W P i e tr h d r a w
W ri t e le a k
f a i li n g (J I R A S a les s u p p o rt
Bc k o f f i c e
a t es t
3 d
2d 1 2 5 )
3 d W r it e
Ue r a d m in
s w h it e p a p e r
4 d
G U I C la ri f y
d e s ig n Im p l
req u i re-
(C S S ) G U I
m en t s
1 d 2d 6d
h
w it
n g
e ti e
M e J o
Henrik Kniberg 20
21. É isso!
10 maneiras de se dar mal com
Scrum e XP
Ah, espere....
Ainda tem mais um...
Henrik Kniberg 21
22. 10 maneiras de se dar mal com Scrum e XP
Vamos parar com esse
negócio de ”agile”, já que
11: Preocupando-se demais a gente tá fazendo tudo
errado mesmo
com as outras 10
Problemas são normais/esperados
Nunca pare de procurar pelos problemas
Não entre em pânico nem se desespere
Problema visível = problema tratável
= oportunidade de melhorar!
Priorize e conserte os problemas – um a um!
Olhe para trás de vez em quando e
se dê um tapinha nas costas
Henrik Kniberg 22
23. 10 ways to screw up with Scrum and XP
Quer mais? Tente usar o Scrum Checklist
http://www.crisp.se/scrum/checklist
Henrik Kniberg 23
What’s he thinking? Chainsaw not best tool for everything. Brushing teeth. Good for cutting down trees, if you know how to use it.
Look around! Not alone. Or alone. werewolves on the team. The customer attacked at full moon. so many interesting sessions to choose from, and I can only be in one place at a time. WIN BOOK!
Wrong issues: Too crowded in front of task board Estimate in story points or ideal days
17:20
misuse – compensation plan cheating – including stories that aren’t done
James Surowiecki – Wisdom of Crowds keynote
Team doesn’t track: Making same mistakes over and over, not talking about it
17:40
clear goal same direction impediments MUSIC. Jamming – no clear goal. Fun. Performing – clear goal. Sounds OK, despite amateurs. One person can spoil. One person can lead by example Self-organizing. Forming, storming, norming, performing Team size Don’t know exactly how to get it right, but know when you are there!