v
Casa do Código
compreender tudo aquilo. É muito difícil explicar Agile sem mostrar a prática. De
fato, frequentemente cito que a forma correta de explicar o que é Agile deveria ser
Ei, venha aqui ver como estou fazendo! E é neste ponto que destaco o valor de
cada uma das páginas deste livro, elas mostram o Agile do mundo real, infestado
de pragmatismo e de preciosas anotações de quem valoriza sim uma boa teoria, mão
não antes de pratica-la, de vê-la realmente funcionando.
Um livro de verdade sobre Agile não poderia ter capítulos cujos títulos fossem
puramente relacionados a uma regra, artefato ou ferramenta de um ou outro método
ágil. Um verdadeiro livro sobre Agile deveria manter o foco de seus capítulos na entrega de valor ao negócio, na otimização deste valor e na construção de um novo
ambiente de trabalho, uma nova gestão. Um verdadeiro livro de Agile tiraria os ho-
lofotes dos famosos métodos ágeis, tais como Scrum, XP e Kanban, e os apresentaria
apenas como um meio para se desenvolver da forma certa produtos que realmente
agreguem valor a quem paga a conta: nossos clientes.
Sendo assim, não exito em afirmar que este é um verdadeiro livro de Agile. É o
livro que você deve ler caso queira construir um novo e melhor caminho para a sua
carreira na área de projetos de software.
Alexandre Magno
Agile Expert e Fundador da AdaptWorks
vi
Casa do Código
Sumário
Sumário
1
Introdução à Métodos Ágeis
1
1.1
O Manifesto Ágil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Métodos Ágeis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3
Compreendendo os Valores Ágeis . . . . . . . . . . . . . . . . . . . . .
8
1.4
Benefícios dos Métodos Ágeis . . . . . . . . . . . . . . . . . . . . . . .
9
1.5
Agregando Mais Valor com Scrum . . . . . . . . . . . . . . . . . . . .
12
1.6
Excelência Técnica com XP . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.7
Fluxo Contínuo com Kanban
. . . . . . . . . . . . . . . . . . . . . . .
16
1.8
Qual é o Melhor Método? . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.9
E agora, o que eu faço amanhã? . . . . . . . . . . . . . . . . . . . . . .
19
2
Fluência Ágil
21
2.1
Evolução e Maturidade de uma Equipe Ágil . . . . . . . . . . . . . . .
23
2.2
Ordem, Caos e Complexidade . . . . . . . . . . . . . . . . . . . . . . . 26
2.3
E agora, o que eu faço amanhã? . . . . . . . . . . . . . . . . . . . . . . 29
3
Foco em Valor para o Negócio
31
3.1
Disseminando a Visão do Projeto . . . . . . . . . . . . . . . . . . . . .
33
3.2
Planejamento e Desenvolvimento Iterativo . . . . . . . . . . . . . . . .
35
3.3
Planejando uma Iteração . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.4
A Reunião Diária . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5
Limitando o Trabalho em Progresso . . . . . . . . . . . . . . . . . . . 44
3.6
Escrevendo Histórias de Usuário . . . . . . . . . . . . . . . . . . . . .
45
3.7
Mapeando histórias de usuários . . . . . . . . . . . . . . . . . . . . . .
51
3.8
Conhecendo os Usuários através de Personas . . . . . . . . . . . . . .
53
vii
Sumário
Casa do Código
3.9
Melhorando a Previsibilidade com Estimativas . . . . . . . . . . . . .
56
3.10 Definindo
Entregas com o Planejamento de Releases . . . . . . . . . .
57
3.11
Roadmap do Produto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.12
Mantenha as Opções Abertas
. . . . . . . . . . . . . . . . . . . . . . .
61
3.13
E agora, o que eu faço amanhã? . . . . . . . . . . . . . . . . . . . . . .
65
4
Entregando Valor
67
4.1
Testes Ágeis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2
Simplificando o Código com Refatoração . . . . . . . . . . . . . . . .
74
4.3
Código Limpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.4
Propriedade Coletiva do Código . . . . . . . . . . . . . . . . . . . . . .
77
4.5
Linguagem ubíqua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6
Design Ágil é Design Iterativo . . . . . . . . . . . . . . . . . . . . . . . 79
4.7
Definindo o significado de Pronto . . . . . . . . . . . . . . . . . . . . . 80
4.8
Integração Contínua . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
4.9
Programação em Par . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
4.10 Revisão de Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.11
Dívida Técnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.12 Agilidade Explícita com Mural de Práticas . . . . . . . . . . . . . . . . 90
4.13 E agora, o que eu faço amanhã? . . . . . . . . . . . . . . . . . . . . . .
91
5
Otimizando Valor
93
5.1
Direcionando a Equipe . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
5.2
Métricas Ágeis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
5.3
Apresente o Resultado em Reuniões de Demonstração . . . . . . . . . 101