O documento apresenta um resumo sobre Scrum e Agile. No início, apresenta o autor e objetivos do treinamento. Em seguida, descreve a história e conceitos do Agile, faz um overview do Scrum e explica como começar um projeto usando Scrum, incluindo a criação da visão do produto, do Product Backlog inicial e do plano de release inicial.
2. Sobre o Autor
S C R U M T R E I N A M E N T O
www.certsys.com.br 2
Guilherme Magalhaes (guiandmag@gmail.com - @guiandmag)
Arquiteto de software, Coach Agile e Palestrante, trabalha com
tecnologia da informação há sete anos e atualmente trabalha
na Certsys. Possui as certificações OCAJP, OCWSD, OCJPJ,
Groovy Certified e Scrum Master Certified. Seus interesses
incluem arquitetura de software, metodologias ágeis e
conteúdo como Learning 3.0 e Management 3.0. Tecnólogo em
Análise e Desenvolvimento de Sistemas (Fiap)
3. Objetivos
S C R U M T R E I N A M E N T O
www.certsys.com.br 3
História & Conceitos
do Agile
Scrum Overview &
Começando um
projeto Scrum
Executando a Sprint &
Finalizando a Sprint
4. Scrum Guide
S C R U M T R E I N A M E N T O
www.certsys.com.br 4
5. Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 5
6. Agenda
S C R U M T R E I N A M E N T O
História do
Agile
Conceitos do
Agile
Scrum
Overview
Começando
um Projeto
Scrum
Executando
a Sprint
Finalizando a
Sprint
12. Modelo Waterfall
S C R U M T R E I N A M E N T O
www.certsys.com.br 12
Análise Design Desenv Teste Deploy
Big Design Up Front (BDUF)
13. Um Modelo Mais Ágil
S C R U M T R E I N A M E N T O
www.certsys.com.br 13
14. Análise
Um Modelo Mais Ágil
S C R U M T R E I N A M E N T O
www.certsys.com.br 14
Análise Design Desenv Test Deploy
Análise Design Desenv Test Deploy
DesignDesenvTestDeploy
15. Manifesto Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 15
Scrum
Extreme
Programming
(XP)
Crystal Clear
Lean Kanban
Dynamic
Systems
Development
Agile Unified
Process
Feature Driven
Development Agile Modeling
17. Manifesto Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 17
Indivíduos e Interações Processos e Ferramentas
Criar Software Documentação Compreensiva
Colaboração do Cliente Negociação de Contrato
Responder a Mudanças Seguir um Plano
18. Manifesto Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 18
Nossa maior prioridade é satisfazer o cliente através da entrega
contínua e adiantada de software com valor agregado.
Software funcionando é a medida primária de progresso.
Mudanças nos requisitos são bem-vindas, mesmo tardiamente
no desenvolvimento. Processos ágeis tiram vantagem das
mudanças visando vantagem competitiva para o cliente.
Os processos ágeis promovem desenvolvimento sustentável.
Os patrocinadores, desenvolvedores e usuários devem ser
capazes de manter um ritmo constante indefinidamente.
Entregar frequentemente software funcionando, de poucas
semanas a poucos meses, com preferência à menor escala de
tempo.
Contínua atenção à excelência técnica e bom design aumenta
a agilidade.
Pessoas de negócio e desenvolvedores devem trabalharo
diariamente em conjunto por todo o projeto.
Simplicidade--a arte de maximizar a quantidade de trabalho não
realizado--é essencial.
Construa projetos em torno de indivíduos motivados.
Dê a eles o ambiente e o suporte necessário e confie neles
para fazer o trabalho.
As melhores arquiteturas, requisitos e designs emergem de
equipes auto-organizáveis.
O método mais eficiente e eficaz de transmitir informações para
e entre uma equipe de desenvolvimento é através de conversa
face a face.
Em intervalos regulares, a equipe reflete sobre como se tornar
mais eficaz e então refina e ajusta seu comportamento de
acordo.
20. Conceitos Agile – Feedback
S C R U M T R E I N A M E N T O
www.certsys.com.br 20
21. Conceitos Agile – Just in Time – Requisitos e Design
S C R U M T R E I N A M E N T O
www.certsys.com.br 21
22. Conceitos Agile – Entregar Valor de Forma Incremental
S C R U M T R E I N A M E N T O
www.certsys.com.br 22
23. Conceitos Agile – Lançar Entregáveis Prontos
S C R U M T R E I N A M E N T O
www.certsys.com.br 23
Integrado
Documentado
Deployável
Código Completo
Testado
24. Conceitos Agile – Ritmo Sustentável
S C R U M T R E I N A M E N T O
www.certsys.com.br 24
25. Conceitos Agile – Gerenciamento Lean
S C R U M T R E I N A M E N T O
www.certsys.com.br 25
26. Conceitos Agile – Times Auto-Organizados
S C R U M T R E I N A M E N T O
www.certsys.com.br 26
27. Conceitos Agile – Valores
S C R U M T R E I N A M E N T O
www.certsys.com.br 27
Confiança, Coragem e Transparência
28. Conceitos Agile – Continuous Delivery
S C R U M T R E I N A M E N T O
www.certsys.com.br 28
29. Conceitos Agile – Abraçando Mudanças
S C R U M T R E I N A M E N T O
www.certsys.com.br 29
30. Conceitos Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 30
Inspecionar e Adaptar
31. Conceitos Agile – Conceito vs Implementação
S C R U M T R E I N A M E N T O
www.certsys.com.br 31
32. Conceitos Agile – Conceito vs Implementação
S C R U M T R E I N A M E N T O
www.certsys.com.br 32
33. Conceitos Agile – Conceito vs Implementação
S C R U M T R E I N A M E N T O
www.certsys.com.br 33
Scrum
XP
Lean/Kanban
35. Scrum Overview
S C R U M T R E I N A M E N T O
www.certsys.com.br 35
Papeis
Eventos
Artefatos
36. Scrum Overview - Roles
S C R U M T R E I N A M E N T O
www.certsys.com.br 36
37. Scrum Overview – Product Owner
S C R U M T R E I N A M E N T O
www.certsys.com.br 37
Maximiza o Valor do Produto
Gerencia o Product Backlog
Representa o Usuário
Única Pessoa
38. Scrum Overview – Scrum Master
S C R U M T R E I N A M E N T O
www.certsys.com.br 38
Pastor do Scrum
Líder Servo
Remove Impedimentos
Resolve Conflitos
39. Scrum Overview – Time de Desenvolvimento
S C R U M T R E I N A M E N T O
www.certsys.com.br 39
Cross Funcional
Auto Organizável
Altamente Colaborativo
5 a 9 Membros
40. Scrum Overview – Artefatos
S C R U M T R E I N A M E N T O
www.certsys.com.br 40
Mercado Alvo
Necessidade / Oportunidade de Negócio
Funcionalidades Chave
Valor para a Empresa
41. Scrum Overview – Artefatos – Product Backlog
S C R U M T R E I N A M E N T O
www.certsys.com.br 41
Fonte Única de Requisitos
Evoluindo Constantemente
Priorizado com Base no Valor
Estimado pelo Time de Desenvolvimento
42. Scrum Overview – Artefatos – Plano de Release
S C R U M T R E I N A M E N T O
www.certsys.com.br 42
Previsão Baseada em Dados Empíricos
Sobreposição no Product Backlog
Atualizado em Toda Sprint
43. Scrum Overview – Artefatos – Sprint Backlog
S C R U M T R E I N A M E N T O
www.certsys.com.br 43
Itens do Product Backlog para a Sprint
Plano para Entregar um Incremento de
Produto
Time de Desenvolvimento é o Dono
Dinâmico e Altamente Visível
44. Scrum Overview – Artefatos – Burndown Chart
S C R U M T R E I N A M E N T O
www.certsys.com.br 44
Acompanha o Trabalha Restante por Dia
Atualizado pelo Time de Desenvolvimento
Mostrado Permanentemente
45. Scrum Overview – Artefatos – Lista de Impedimento
S C R U M T R E I N A M E N T O
www.certsys.com.br 45
Bloqueador da Performance
Atualizado pelo Time Scrum
Monitorado pelo Scrum Master
46. Scrum Overview – Eventos – Sprint Planning
S C R U M T R E I N A M E N T O
www.certsys.com.br 46
Determina o que será Entregue
Performance / Capacidade Passado
Determina como será Entregue
Cria o Sprint Backlog
47. Scrum Overview – Eventos – Sprint
S C R U M T R E I N A M E N T O
www.certsys.com.br 47
1 Mês ou Menos
Objetivo Claro
Potencial Entrega de um Incremento
Escopo é Definido pelo Time Scrum
48. Scrum Overview – Eventos – Daily Scrum
S C R U M T R E I N A M E N T O
www.certsys.com.br 48
15 Minutos
Inspecionar o Trabalho Feito Ontem
Plano de Trabalho pra Hoje
Identificar Possíveis Impedimentos
49. Scrum Overview – Eventos – Product Backlog Gromming
S C R U M T R E I N A M E N T O
www.certsys.com.br 49
Esclarecer e Estimar Novos Itens
Rever a Prioridade dos Itens
Menos Detalhes em Itens com Baixa
Prioridade
Em torno de 10% da Sprint
50. Scrum Overview – Eventos – Sprint Review
S C R U M T R E I N A M E N T O
www.certsys.com.br 50
Demo Incremento do Produto
Extrair Feedback dos Stakeholders
Planejar o que Virá Depois
Rever o Plano de Release
51. Scrum Overview – Eventos – Sprint Retrospective
S C R U M T R E I N A M E N T O
www.certsys.com.br 51
Inspecionar e Adaptar
O que foi bom?
O que pode ser melhor?
Plano para Melhorias
52. Scrum Overview – O que vem a seguir?
S C R U M T R E I N A M E N T O
www.certsys.com.br 52
54. Começando um Projeto Scrum – Sprint Zero
S C R U M T R E I N A M E N T O
www.certsys.com.br 54
Visão do Produto
Product Backlog
Inicial
Plano de Release
Inicial
Modelo de Arquitetura
& Práticas de Código
Ambiente de
Integração Continua
Pequenas Entregas
Incrementais
55. Começando um Projeto Scrum – Criar a Visão do Produto
S C R U M T R E I N A M E N T O
www.certsys.com.br 55
Mercado Alvo
Funcionalidades Principais
Necessidade de Mercado
Valor para a Empresa
56. Começando um Projeto Scrum – Qualidades de um Visão de Produto
S C R U M T R E I N A M E N T O
www.certsys.com.br 56
Amplo e Inspirador
Pequeno e Compreensível
Claro e Estável
De Fácil Acesso
Frequentemente Revesitado
57. Começando um Projeto Scrum – O que vai no Product Backlog?
S C R U M T R E I N A M E N T O
www.certsys.com.br 57
Requisitos do Usuário
Bugs
Requisitos Técnicos
58. Começando um Projeto Scrum – User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 58
Pequena e Simples
Focado em Discussões
Perspectiva do Usuário
Como um (Papel) Eu quero
(Alguma Funcionalidade)
Para então
(Algum Beneficio).
59. Começando um Projeto Scrum – User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 59
“Como um comprador online, eu
quero poder fazer a busca no
catalogo do site, para então,
conseguir encontrar itens para
comprar.”
60. Começando um Projeto Scrum – User Story Card
S C R U M T R E I N A M E N T O
www.certsys.com.br 60
Catalogo de Busca
Como um comprador online, eu quero poder
fazer a busca no catalogo do site, para então,
conseguir encontrar itens para comprar.
61. Começando um Projeto Scrum – Condição de Satisfação
S C R U M T R E I N A M E N T O
www.certsys.com.br 61
Requerimento para Aceitação
Especificações não Detalhadas
Representar Testes
62. Começando um Projeto Scrum – Condição de Satisfação para essa user story
S C R U M T R E I N A M E N T O
www.certsys.com.br 62
• Deve buscar pelo titulo, descrição e categoria.
• Permitir técnicas avançadas de busca, como por
exemplo, aspas duplas, AND, OR, +, -.
• Resultados devem retornar em menos de 5 segundos
63. Começando um Projeto Scrum – Condição de Satisfação para essa user story
S C R U M T R E I N A M E N T O
www.certsys.com.br 63
1. Abrir a página.
2. Entrar com palavras.
3. Iniciar busca.
4. Verificar o resultado do catalogo, e se retorna os itens
corretos.
64. Começando um Projeto Scrum – User Story Card – Atrás
S C R U M T R E I N A M E N T O
www.certsys.com.br 64
Como testar
1. Abrir a página.
2. Entrar com palavras.
3. Iniciar busca.
4. Verificar o resultado do catalogo, e se retorna os itens
corretos.
Outros Testes:
• Deve buscar pelo titulo, descrição e categoria.
• Permitir técnicas avançadas de busca, como por exemplo,
aspas duplas, AND, OR, +, -.
• Resultados devem retornar em menos de 5 segundos
65. Começando um Projeto Scrum – Qualidade de boas User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 65
I
n
v
e
s
t
ndependente
egociável
aloroso
stimável
mall/pequeno
estável
66. Começando um Projeto Scrum – Quebrando as User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 66
Tema
User Story
Épico
67. Começando um Projeto Scrum – Como quebrar as User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 67
Catalogo
Online
Pagamento
Online
Minha Conta
Adicionar Item
do Catalogo ao
Carrinho
Navegar pelo
Catalogo
Buscar no
Catalogo
Busca
Avançada
Refinar Busca
Tema Épico User
Story
68. Começando um Projeto Scrum – Papeis e Personas
S C R U M T R E I N A M E N T O
www.certsys.com.br 68
Comprador Frequente
Suzy
Comprador não frequente
João
69. Começando um Projeto Scrum – Priorizando o Product Backlog
S C R U M T R E I N A M E N T O
www.certsys.com.br 69
Valor de Negócio
ROI (Valor/Esforço)
Politica
Agrupamento de Funcionalidades
70. Manter os Clientes
Começando um Projeto Scrum – Priorizando o Product Backlog
S C R U M T R E I N A M E N T O
www.certsys.com.br 70
Determinando Valor de Negócio
Aumento de Receita
Redução de Custo
Atração para Novos Usuários
71. Começando um Projeto Scrum – Priorizando o Product Backlog
S C R U M T R E I N A M E N T O
www.certsys.com.br 71
Catalogo de Busca
Como um comprador online, eu quero poder
fazer a busca no catalogo do site, para então,
conseguir encontrar itens para comprar.
Registrar novo usuário
Como uma pessoa, eu quero a seguinte
habilidade para o seguinte valor de negócio
Login
Como uma pessoa, eu quero a seguinte
habilidade para o seguinte valor de negócio
Inserir Itens no Catálogo
Como uma pessoa, eu quero a seguinte
habilidade para o seguinte valor de negócio
50
25
15
10
100 Pontos
800
700
500
100
1 para 1000
72. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 72
Estimando Agile
73. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 73
Granularidade
74. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 74
Estimando com Time Boxes
75. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 75
Story Points
Estimativa de Tamanho High Level
Baseado em Escala Relativa
Estimado pelo Time
Não Baseado em Duração
76. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 76
Story Points
1
10
2
20
3
30
5
40
8
50
77. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 77
Story Points
Catalogo de Busca
Como um comprador online, eu quero poder
fazer a busca no catalogo do site, para então,
conseguir encontrar itens para comprar.
Valor de Negócio: 600
Registrar novo usuário
Como uma pessoa, eu quero a seguinte
habilidade para o seguinte valor de negócio
Valor de Negócio: 900
Login
Como uma pessoa, eu quero a seguinte
habilidade para o seguinte valor de negócio
Valor de Negócio: 700
5 38
78. Começando um Projeto Scrum – Estimando de maneira Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 78
Plano de Entrega
2
5
3
5
3
3
5
3
3
Velocidade = 8
{
{
{
}
}
80. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 80
Determinando o que será trabalhado
2
5
3
5
3
3
5
3
3
Velocidade = 11
Capacidade do Time
João está de férias por 1
semana
Marcos está doente, 2
semanas de licença
81. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 81
Determinando o Tamanho de uma
Sprint
82. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 82
Identificando o Objetivo da Sprint
“Implementar a busca no catálogo
com opções avançadas de busca”
83. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 83
Criando o Sprint Backlog
Catalogo de Busca
Como um comprador online, eu quero poder
fazer a busca no catalogo do site, para então,
conseguir encontrar itens para comprar.
Criar a página de
busca: 6 horas
Lógica da query: 8
horas
Teste da busca: 12
horas
84. Começando um Projeto Scrum – Qualidade de boas User Stories
S C R U M T R E I N A M E N T O
www.certsys.com.br 84
S
M
A
R
T
pecific
easurable
chievable
elevant
ime Boxed
85. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 85
Catalogo de Busca
Como um comprador online, eu quero poder
fazer a busca no catalogo do site, para então,
conseguir encontrar itens para comprar.
Criar a página de
busca: 6 horas
Lógica da query: 8
horas
Teste da busca: 12
horas
Nós estamos
comprometid
os com isso!
86. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 86
Trabalhando como um time Scrum
Sentar Junto
Trabalhar iteritavamente
Limitar o Trabalho com progresso
87. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 87
Executando o Daily Scrum
88. Executando uma Sprint – Executando o Daily Scrum
S C R U M T R E I N A M E N T O
www.certsys.com.br 88
Mesmo Lugar & Tempo
Reunião de Planejamento
Média de 15 Minutos
Inspecionar o Progresso
89. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 89
Executando o Daily Scrum
O que você fez
ontem?
O que você vai
fazer hoje?
Houve algum
impedimento?
90. Executando uma Sprint – Executando
S C R U M T R E I N A M E N T O
www.certsys.com.br 90
Práticas de Engenharia
91. Executando uma Sprint – Práticas de Engenharia
S C R U M T R E I N A M E N T O
www.certsys.com.br 91
Camada Database
Lógica de Negócio
Serviços
Apresentação
RegistrarNovoUsuário
Login
CatálogodeBusca
Funcionalidades sobre Camadas
92. Executando uma Sprint – Práticas de Engenharia
S C R U M T R E I N A M E N T O
www.certsys.com.br 92
YAGNI Principio
93. Executando uma Sprint – Práticas de Engenharia
S C R U M T R E I N A M E N T O
www.certsys.com.br 93
Code Review
94. Executando uma Sprint – Práticas de Engenharia
S C R U M T R E I N A M E N T O
www.certsys.com.br 94
Integração Continua
95. Executando uma Sprint – Práticas de Engenharia
S C R U M T R E I N A M E N T O
www.certsys.com.br 95
TDD
96. Executando uma Sprint – Testes + Testes = Sucesso
S C R U M T R E I N A M E N T O
www.certsys.com.br 96
Teste Unitário
Teste de Funcionalidade
Teste Integrado
97. Executando uma Sprint – Definição de Pronto
S C R U M T R E I N A M E N T O
www.certsys.com.br 97
98. Executando uma Sprint – QA no Agile
S C R U M T R E I N A M E N T O
www.certsys.com.br 98
90%
10%
Funcionalidades
Outros
Tempo Produtivo
Tempo perdido
• bugs
• Tasks manuais
• Burocrácia
• Baixa qualidade
Funcionalidades
Automação de Testes
Necessidades internas
(Rituais, Reuniões, Build …)
Melhoria continua
(Ferramentas, Processos…)
Refatoração
Outros
Realidade Ideal
Dedicar tempo para automação e necessidades
internas faz a equipe mais produtiva. Além disso, os
membros da equipe terá mais tempo para desenvolver
novos recursos e inovação de produtos
99. Executando uma Sprint – Melhores Práticas
S C R U M T R E I N A M E N T O
www.certsys.com.br 99
Kanban
Lean UX
Continuous integration
Agile Portfolio Management
DevOps
Lean Startup
XP
Scrum
AutonomyIncreased accountability
Meaning
Cross-functional teams
Metric-Driven
Frugal Innovation
Continuous
Deployment
TDD
100. Executando uma Sprint – Melhores Práticas
S C R U M T R E I N A M E N T O
www.certsys.com.br 100
Gerenciamento &
Organização
Processo &
Metodologia
Business &
Produto
Engenharia de
Software
101. Executando uma Sprint – Grooming PB
S C R U M T R E I N A M E N T O
www.certsys.com.br 101
10% da Sprint
Estimar Novas Estórias
Revisar Estórias com
Alta Prioridade
MaisDetalhes
103. Finalizando a Sprint – Sprint Review
S C R U M T R E I N A M E N T O
www.certsys.com.br 103
104. Finalizando a Sprint – Sprint Review
S C R U M T R E I N A M E N T O
www.certsys.com.br 104
Demo do que está feito
Rever o Progresso
Rever o que não foi feito
Discutir os Próximos Passos
105. Finalizando a Sprint – Entregando um Incremento de Produto
S C R U M T R E I N A M E N T O
www.certsys.com.br 105
Potencialmente Empacotável
Endurecimento da Sprint
Entrega não deve ser um evento
106. Finalizando a Sprint – Sprint Retrospectiva
S C R U M T R E I N A M E N T O
www.certsys.com.br 106
107. Finalizando a Sprint – Sprint Retrospectiva
S C R U M T R E I N A M E N T O
www.certsys.com.br 107
Todas as Vozes são Iguais
Priorizar (Voto)
Focar em Melhoria
Agir
108. Finalizando a Sprint – Sprint Retrospectiva
S C R U M T R E I N A M E N T O
www.certsys.com.br 108
O que foi bom? O que foi ruim?
Time tem
Melhor
Visibilidade
Melhor ideia
sobre o que
trabalhar
Eu gostei do
Board
Melhorar
Testes
Unitários
Daily Dura
Muito
Testes
Unitários
Melhor input
da Gerencia
Testes
Poderiam
Ser melhor
Daily Não
Traz Valor
109. Resources
S C R U M T R E I N A M E N T O
www.certsys.com.br 109
https://www.agilealliance.org/pt/
https://www.scrumalliance.org/
https://www.scrum.org/
111. Para mais informações sobre a certsys entre no site
www.certsys.com.br
Muito Obrigado!
Notas do Editor
Comentar sobre os objetivos desse treinamento, um brief sobre os capítulos
Esse treinamento é baseado no Scrum Guide, criado por Jeff Sutherland e Ken Schwaber. Com a primeira publicação do Scrum Guide em 2010, e suas atualizações incrementais em 2011 e 2013, Jeff e Ken estabeleceram o corpo globalmente reconhecido de conhecimento do Scrum.
Visão geral sobre os rumos que a agilidade tomou ao decorrer do tempo.
Nesse capitulo, nós vamos falar sobre a história do Agile e como se desenvolveu ao longo dos anos, vamos falar sobre como era desenvolvido software antes, com o modelo waterfall, vamos falar sobre os principais problemas do modelo waterfall e a partir disso, vamos falar sobre como o Agile começou e se tornou o Agile Manifesto
O que é o agile?
Não é uma questão simples de responder, e existem mais de dez formas de responder a essa questão.
Mas para entendermos melhor e responder essa questão, precisamos entender a história antes do Agile, conhecer o Waterfall.
O que é o Waterfall?
O Modelo Waterfall foi o primeiro Modelo de Processo de desenvolvimento a ser introduzido. É também referido como um modelo de ciclo de vida linear-sequencial. É muito simples de entender e usar. Em um modelo de cascata, cada fase deve ser concluída antes da próxima fase poder começar e não há sobreposição nas fases.
Ela foi apresentada pela primeira vez pelo Herbert D. Benington nos 70
Desenvolver software antigamente, era como construir ou fazer uma reforma em uma grande casa, com uma complexidade enorme, na maioria das vezes sendo necessário a inclusão de um engenheiro elétrico para efetuar as alterações no software, era necessário tempo e muito esforço.
Então, para criar algo padrão e senquencial para o desenvolvimento de software, foi pensado um modelo com sequencias simples e lógicas. Primeiro fazer toda a analise do sistema e mudanças, depois fazer o design, depois desenvolver, depois testar e então fazer o deploy. Nesse modelo, cada profissional trabalhava no seu silo, interagia e participava somente no seu ciclo.
E qual o problema desse modelo?
Os gaps entre cada fase.
É necessário trafegar dados por cada fase do desenvolvimento waterfall, e para isso, é criado na fase inicial, o documento de requisitos, funcional, de testes e etc.
Depois passa para a fase de Design, onde a partir dos dados providos na fase anterior, será criado os documentos de Arquitetura, UML, UX e etc.
Esses dois ciclos criam o big design up front, onde requisitos e definições de documentação é desenhada.
Depois que essa fase é completa, então é entregue para os desenvolvedores começarem a criar o software até o término, conforme o documentado, e então entregar para o time de QA fazer todos os testes, gerados do BDUF, irá gerar todas as evidencias de testes, e somente então, irá entregar para o time de infraestrutura para implementar esse software.
Esse é o processo sequencial do modelo waterfall, do começo ao fim.
Com todo esse cenário apresentado do waterfall, a partir dos anos 90, a demanda por atender diferentes tipos de clientes e máquinas, requisitou um modelo mais ágil de trabalho das empresas. A internet chegou, os telefones celulares chegaram, e a necessidade por entregar de forma mais rápida para o cliente final.
Também houve a chegada de mais desenvolvedores no mercado, pois não era mandatório um diploma para exercer a função, e agora eram mais capazes de desenvolver os aplicativos de forma independente.
E para finalizar, agora não era somente o governo ou institutos científicos que utilizavam a internet, agora as industrias, comércios, empresas estavam entrando no modelo digital para se manter competitivo. Precisamos de um formato mais ágil.
Por isso juntaram os processos e tiraram o gap, fazendo todos os ciclos ficarem próximos ou sob o próximo ciclo.
Chegando até um modelo Scrum.
Temos muitos frameworks e modelos de trabalho ágil. Cada um com seus prós e contras, mas os valores core eram os mesmos para ambo o framework.
Temos a chegada do Agile Manifesto, a integração de todos os frameworks, mostrando que os valores principais de cada um, era o mesmo.
E quais são esses valores core?
E quais são esses valores core?
Nesse capitulo, nós vamos falar sobre conceitos por de trás das muitas implementações do Agile. Vamos falar sobre como separar o conceito da implementação, e, finalmente, vamos falar sobre vamos falar sobre os muitos processos e frameworks Agile existentes.
O conceito inicial é o feedback continuo e curto.
Acertar o que estiver errado antes de chegar ao final do projeto.
O segundo conceito, é o de criar os requisitos e design em tempo de desenvolvimento, o que isso significa?
Desenvolver uma aplicação não é como construir uma casa, que temos todo o design e requisitos logo no começo e dificilmente aquilo irá mudar, por esse motivo, a melhor maneira de desenvolver software com requisitos e design atualizado, é criar uma lista do que é preciso atender o software e montar o design com base nesses requisitos para o desenvolvimento.
O terceiro conceito, é o de entregar valor ao cliente de forma incremental.
Quando estamos trabalhando em um novo produto, queremos entregar valor ao nosso cliente, independentemente dele ser o cliente final ou não, porém, devemos entregar de forma que ele possa ver e validar o que está sendo feito, para assim enxergar valor em todo o trabalho que está sendo feito.
O quarto conceito, é o de lançar entregáveis prontos.
Você pode imaginar que isso é básico para os entregáveis, estarem prontos! Porém, o significado aqui, é o de estar de acordo com todas as fases e papéis.
O quinto conceito, é o ritmo sustentável.
Manter um padrão e ritmo de trabalho totalmente sustentáveis, quando falamos em modelos com death marchs, onde temos uma grande release daqui 12, 18 ou 24 meses, o comum é o trabalho começar de forma lenta e ir acelerando conforme for chegando a data, até chegar um ponto em que se é necessário trabalhar noite e dia para atender a entrega.
O gerenciamento lean, é definir as pessoas que podem definir e apitar sobre mudanças durante todo o processo, evitando assim que muitas pessoas se envolvam e acabem definindo coisas totalmente diferentes uma da outra, e fazendo isso, enquanto o trabalho está sendo feito. Evitar grandes hierarquias.
Outro conceito importante no Agile, são os times auto-organizáveis.
Os times são formados por diferentes perfis dentro da empresa, capaz de criar todo o projeto, desde o seu inicio, até o final.
Times são formados de pessoas competentes e capazes de tomar a decisão, sem a necessidade interferência externa para isso. Deixar os times capazes de tomar as suas decisões, transforma esses times, em times ainda melhores, pois podem tomar a melhor decisão, sendo que eles vivem o dia-a-dia do projeto/produto.
O Agile traz consigo, também, valores, que não podem ser esquecidos em momento algum.
É necessário haver confiança entre todos os envolvidos no projeto, coragem e transparência.
Se os gerentes confiam nos seus times, e os times tem a coragem de dar as noticias para os gerentes, isso transforma todo o processo, em um modelo totalmente transparente.
Quando falamos em agile e cotinuous feedback, precisamos falar sobre a entrega continua de software.
É necessário também, abraçar as mudanças e acreditar que elas vem para o bem. Mudanças são as coisas mais comuns quando falamos nos clientes, o que é bom hoje, pode ser ruim amanhã. E essas mudanças vem de forma muito frequente e em diferente estágios do desenvolvimento do que o cliente deseja.
Abraçar a mudança é vê-la como uma oportunidade, diferente do modelo waterfall, que tenta contornar e evitar ao máximo as mudanças.
E por último, falamos de inspecionar e adaptar.
Cada time e empresa tem seus valores e cultura, o Agile vem para ser totalmente adaptativo, e para adaptar o que se encaixa melhor no seu modelo, é necessário inspecionar o que não está bom e não está funcionando.
Inspecionar e se adaptar, esse é talvez o principal conceito do Agile.
É importante também, falarmos sobre conceito vs mecanismos.
Até agora foi falado sobre os conceitos do Agile, porém, é necessário lembrar sobre os mecanismos que usamos para implementar o Agile, com roles, artefatos, rituais e etc. Conhecendo e entendo todo o conceito, é o principal passo para definir se tal implementação se adequa ou não no seu time.
Por que o Scrum é o mais utilizado?
Alguns dizem que é por ser mais fácil de adaptar, outros dizem que por seu modelo mais completo, com papeis, entregáveis, rituais e etc.
Vamos falar de Scrum, mas também gosto de lembrar que existem outros frameworks que podem entregar mais valor ainda se combinados com o Scrum, o XP, Lean e o Kanban.
Scrum é ótimo para gerenciar times. O XP é ótimo para o time de engenharia. E o Lean/Kanban é ótimo para o fluxo do trabalho.
Nós vamos focar no Scrum nesse treinamento, mas sempre irei apontar sobre aspectos desses outros frameworks.
Nesse capitulo vamos falar sobre um overview geral do Scrum, os papeis, eventos e artefatos que montam essa metodologia.
Conceitos principais para um overview geral sobre o Scrum.
Para falar sobre roles, precisamos comentar sobre a história do porco e da galinha.
O porco e a galinha estavam andando pela rua, e a galinha para e fala que teve uma ótima ideia, criar um restaurante com o porco.
O porco pergunta qual seria o nome do restaurante e a galinha responde: “Bacon e Ovos”.
O porco declina, pois, ele vai ter que estar totalmente entregue ao projeto, enquanto, a galinha só parcialmente.
Isso serve para mostrar que as vezes, gerentes, stakeholders e etc. não estão totalmente envolvidos ou engajados com o projeto como deveriam estar. Eles decidem sobre o projeto, mas não desenvolvem nada.
O product owner.
O scrum master.
O time de desenvolvimento.
Artefatos do Scrum.
Artefatos do Scrum.
Artefatos do Scrum.
Artefatos do Scrum.
Artefatos do Scrum.
Artefatos do Scrum.
Eventos do Scrum.
Eventos do Scrum.
Eventos do Scrum.
Eventos do Scrum.
Eventos do Scrum.
Eventos do Scrum.
Nesse capitulo vamos falar sobre como pensar com uma visão para o produto, e dessa forma, montaremos o nosso modelo Scrum.
Com base nisso, iremos criar o backlog inicial do produto, as user stories, os papeis e a priorização do Product Backlog.
Vamos aprender como começar um time Scrum, e fazer a estimação das user stories de forma Agile, e como criar um Plano de Entrega.
Esse é o processo de uma Sprint Zero, deve ser usada somente se necessário, pois pode lembrar um modelo waterfall.
Existe várias formas de iniciar um projeto com o Scrum.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
É aqui que vem o grande truque do Agile, não se trata sobre estimar de maneira precisa, e sim te estimar de maneira que alcance um perímetro aceitável e possibilite o time a fazer decisões mais inteligentes para acertar a situação.
Quanto menor uma estória é, mais fácil é estimar ela.
Quanto menor uma estória é, mais fácil é estimar ela.
"Story Point é uma unidade relativa de medida usada por times Scrum. Isso e usado para mensurar a quantidade de esforço necessário para implementar uma história." ou "...um story point é uma junção da quantidade de esforço envolvido no desenvolvimento de uma feature, a complexidade desse desenvolvimento, o riso contido nele, e por aí vai."
Story Points são uma forma relativa de medir o tempo necessário para se implementar uma história (termo emprestado do XP, bem como sua definição). Destinam-se a ser uma forma de estimar a dificuldade sem se comprometer com uma duração de tempo específico, de modo que as variações no tamanho da equipe ou tempo na tarefa não afete isso
Modelo Fibonacci.
Modelo Fibonacci.
"Story Point é uma unidade relativa de medida usada por times Scrum. Isso e usado para mensurar a quantidade de esforço necessário para implementar uma história." ou "...um story point é uma junção da quantidade de esforço envolvido no desenvolvimento de uma feature, a complexidade desse desenvolvimento, o riso contido nele, e por aí vai."
Story Points são uma forma relativa de medir o tempo necessário para se implementar uma história (termo emprestado do XP, bem como sua definição). Destinam-se a ser uma forma de estimar a dificuldade sem se comprometer com uma duração de tempo específico, de modo que as variações no tamanho da equipe ou tempo na tarefa não afete isso
"Story Point é uma unidade relativa de medida usada por times Scrum. Isso e usado para mensurar a quantidade de esforço necessário para implementar uma história." ou "...um story point é uma junção da quantidade de esforço envolvido no desenvolvimento de uma feature, a complexidade desse desenvolvimento, o riso contido nele, e por aí vai."
Story Points são uma forma relativa de medir o tempo necessário para se implementar uma história (termo emprestado do XP, bem como sua definição). Destinam-se a ser uma forma de estimar a dificuldade sem se comprometer com uma duração de tempo específico, de modo que as variações no tamanho da equipe ou tempo na tarefa não afete isso
Criar um produto focado para o cliente.
Criar um produto focado para o cliente.
Esse processo pode ser muito amarrado, uma opção melhor, seria utilizar um quadro Kanban explicando onde todos estão.