Mais de 24 anos deScrum
by @andreitognolo
Ainda faz sentido utilizá-lo?
Agenda
Scrum é apenas uma peça em um grande quebra-cabeça
Ainda faz sentido usar Scrum?
Um Pouco Sobre Mim
2007 20142008
Projeto utilizando
RUP(Dextra)
Um Pouco Sobre Mim
2007 20142008
Projeto utilizando
RUP(Dextra)
Primeiroprojeto
utilizando Scrum
Foco em:- Scrum
Um Pouco Sobre Mim
2007 20142008
Projeto utilizando
RUP(Dextra)
Primeiroprojeto
utilizando Scrum
Foco em:- Kanban / XP / Lean- Clean Code- Refactoring- Continuous Delivery
Foco em:- Scrum
Um Pouco Sobre Mim
2007 2014 20162008
Projeto utilizando
RUP(Dextra)
Primeiroprojeto
utilizando Scrum
Foco em:- Kanban / XP / Lean- Clean Code- Refactoring- Continuous Delivery
Foco em:- Scrum
Foco em:- Lean- Microservices- DevOps- #NoEstimates
Martin FowlerSam Newman
Dan NorthNeal Ford
Um Pouco Sobre Mim
2007 20182014 20162008
Projeto utilizando
RUP(Dextra)
Primeiroprojeto
utilizando Scrum
Foco em:- Kanban / XP / Lean- Clean Code- Refactoring- Continuous Delivery
Foco em:- Scrum
Foco em:- Lean- Microservices- DevOps- #NoEstimates
Foco em:- Microservices- Lean
Martin FowlerSam Newman
Dan NorthNeal Ford
Ainda faz sentido usar Scrum?
DISCLAIMER: Esse é somente o meu ponto de vista
A long time ago…
A long time ago…
Frequentemente, o software era criado por uma fábrica de
software
Cada etapa era, geralmente, feita por diferente pessoas
A long time ago…
Frequentemente, o software era criado por uma fábrica de
software
Cada etapa era, geralmente, feita por diferente pessoas
Mas esse mesmo processofunciona muito bem
na fabricação de carros, não?
Construir um carro
Cynefin Framework
(COMPLICADO)
causa e efeito requer análise
Construir um carro
Cynefin Framework
(COMPLICADO)
causa e efeito requer análise
Criar software(COMPLEXO) (*)
causa e efeito só pode ser percebido em
retrospectiva, mas não de antemão
(*) Desenvolvimento de software não é feito somente de atividades complexas
Construir um carro
Cynefin Framework
(COMPLICADO)
causa e efeito requer análise
Criar software(COMPLEXO) (*)
causa e efeito só pode ser percebido em
retrospectiva, mas não de antemão
(*) Desenvolvimento de software não é feito somente de atividades complexas
Precisa testar depois!
Construir um carro
Cynefin Framework
(COMPLICADO)
processo repetitivo,
sempre com o mesmo resultado
Criar software(COMPLEXO)
nunca fazemos o mesmo software
duas vezes
Manifesto Ágil (2001)
Manifesto Ágil (2001)
Manifesto Ágil (2001)
Martin Fowler, Kent Beck, Robert Martin, Jeff Sutherland, Ken Schwaber, em outros
Scrum (~1994)
Scrum (~1994)
“Muito do pensamento agile é sobre construir ciclos de feedback de forma que a gente posse aprender
rapidamente”(Martin Fowler)
Scrum
Ainda faz sentido usar Scrum?
TL;DR: Scrum foi criado em um tempo onde desenvolvimento de software are visto como um
projeto, com começo e fim. Hoje em dia focamos em fazer produtos, que é algo “sem fim”
Scrum
‣ Planning ‣ Sprint review ‣ Planning poker ‣ Sprint retrospectiva ‣ Reunião diária
Ainda faz sentido usar Scrum?
Todo processo tira a liberdade. Se você consegue os mesmo benefícios sem o processo, então você
não precisa dele (ou parte dele)
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Quais as vantagens?
Sem reuniões no meio do sprint
É mais fácil para o time focar
Todos estão no mesmo barco
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Quais as desvantagens?
Tem que “estimar" o que cabe no Sprint
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Quais as desvantagens?
Pode acontecer Big Design Up Front
Tem que “estimar" o que cabe no Sprint
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Quais as desvantagens?
Pode acontecer Big Design Up Front
Tem que “estimar" o que cabe no Sprint
As atividades não acabam todas juntas bonitinhas no final do Sprint
Planning
Planejamento PlanejamentoExecução (2-4 semanas)
Quais as desvantagens?
Pode acontecer Big Design Up Front
Tem que “estimar" o que cabe no Sprint
As atividades não acabam todas juntas bonitinhas no final do Sprint
Pode aparecer algo mais importante no meio do Sprint
Planning
O que eu faço no meu dia a dia
Eu prefiro fazer um planejamento leve, que é basicamente uma sessão de priorização das atividades.
Priorização PriorizaçãoPlanejamento / Execução (1 semana)
Planning
Como ter as mesmas vantagens?
Sem reuniões no meio do sprint Não acho um grande problema
Planning
Como ter as mesmas vantagens?
Sem reuniões no meio do sprint
É mais fácil para o time focar
Não acho um grande problema
Só tem priorização no começo da sprint
Planning
ps: se você faz parte de uma fábrica de software eu vejo várias vantagens de fazer um planejamento como descrito no Scrum
Como ter as mesmas vantagens?
Sem reuniões no meio do sprint
É mais fácil para o time focar
Todos estão no mesmo barco
Não acho um grande problema
Só tem priorização no começo da sprint
Máximo de pessoas na mesma “atividade”
Sprint Review
Planejamento Execução (2-4 semanas) Review
Sprint Review
Planejamento Execução (2-4 semanas) Review
• Rever o trabalho que foi concluído e não concluído.
Sprint Review
Planejamento Execução (2-4 semanas) Review
• Rever o trabalho que foi concluído e não concluído.
Faz sentido se você está pensando como projetoA pergunta “como podemos melhorar” deve existir independentemente se concluiu algo ou não
Sprint Review
Planejamento Execução (2-4 semanas) Review
• Apresentar o trabalho realizado para os stakeholders (ou "a demo"). Um trabalho incompleto não pode ser demonstrado.
Sprint Review
Planejamento Execução (2-4 semanas) Review
• Apresentar o trabalho realizado para os stakeholders (ou "a demo"). Um trabalho incompleto não pode ser demonstrado.
Faz sentido se você está pensando como projeto
Os stakeholders são o próprio time!
Entrega contínua - faz sentido eu revisar o que já está em produção?
Planning Poker
Era uma vez um time que atingiu a maturidade nas estimativas usando planning poker…
Planning Poker
Estimativas trazem consigo vários problemas
Quando a estimativa não condiz com a realidade (bem comum) criamos a falsa sensação de que não fomos produtivos
Planning Poker
Estimativas trazem consigo vários problemas
Quando a estimativa não condiz com a realidade (bem comum) criamos a falsa sensação de que não fomos produtivos
Traz consigo um monte de cobrança e pressão
Planning Poker
Estimativas trazem consigo vários problemas
Quando a estimativa não condiz com a realidade (bem comum) criamos a falsa sensação de que não fomos produtivos
Traz consigo um monte de cobrança e pressão
Custam um tempo valioso que poderia ser utilizado de outra forma
Planning Poker
Estimativas trazem consigo vários problemas
Quando a estimativa não condiz com a realidade (bem comum) criamos a falsa sensação de que não fomos produtivos
Traz consigo um monte de cobrança e pressão
Times começam a focar mais em cumprir as estimativas do que fazer o trabalho com a qualidade necessária
Custam um tempo valioso que poderia ser utilizado de outra forma
Planning Poker
Por que você precisa estimar?
Eu preciso medir produtividade
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Eu preciso medir produtividade
Por que precisamos medir produtividade?
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Eu preciso medir produtividade
Alguém está me pedindo um estimativa
Por que precisamos medir produtividade?
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Eu preciso medir produtividade
Alguém está me pedindo um estimativa
Por que precisamos medir produtividade?
Cuidado com hierarquia top-down
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Ter uma estimativa motiva a gente a focar no resultado
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Ter uma estimativa motiva a gente a focar no resultado
Talvez, mas pode fazer o oposto também
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Ter uma estimativa motiva a gente a focar no resultado
Eu preciso estimativas para poder priorizar os items no backlog
Talvez, mas pode fazer o oposto também
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Por que você precisa estimar?
Ter uma estimativa motiva a gente a focar no resultado
Eu preciso estimativas para poder priorizar os items no backlog
Talvez, mas pode fazer o oposto também
Na verdade, você precisar conseguir comparar itens, e para isso você não precisa de estimativas
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Existe algum cenário em que faz sentido estimar?
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Existe algum cenário em que faz sentido estimar?
“Estimativas agregam valor quando elas nos ajudam a tomar decisões importantes”
(Martin Fowler)
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Planning Poker
Existe algum cenário em que faz sentido estimar?
“Estimativas agregam valor quando elas nos ajudam a tomar decisões importantes”
(Martin Fowler)
Qual é a decisão que você precisa tomar? Podemos tomar essa decisão sem precisar de estimativas?
http://tech.transferwise.com/4-fallacious-reasons-why-we-estimate/
Sprint Retrospectiva
Sprint Retrospectiva
Quais as vantagens?
Momento para refletir sobre o processo
Bom momento para o time entender o que os outros membros do time estão sentindo e pensando
Não sei :)
Quais as desvantagens?
Reunião Diária (stand up)
Reunião Diária (stand up)
Quais as vantagens?
Bom jeito de manter o time alinhado
Quais as desvantagens?
Pode acontecer de times utilizarem a reunião diária como muleta para não se comunicarem durante o dia
Existem técnicas que podem ajudar a se manter alinhado, como Pair Programming
Scrum - Resumo
… e faço reuniões diárias (na maioria dos casos)
Priorização RetrospectivaPlanejamento / Execução (1 semana)
Scrum - Resumo
Priorização RetrospectivaPlanejamento / Execução (1 semana)
"As atividades de estudo técnico ou negocial devem fazer parte da Sprint? Elas precisam ser orçadas como qualquer outra atividade?"
Scrum - Resumo
Priorização RetrospectivaPlanejamento / Execução (1 semana)
"Como trabalhar com sprints sabendo que o time é constantemente acionado para realizar atividades de suporte não relacionadas a Sprint?"
Scrum - Resumo
Priorização RetrospectivaPlanejamento / Execução (1 semana)
"Quais as abordagens possíveis para tarefas com mudança de escopo após o início de uma sprint?"
Scrum - Resumo
Priorização RetrospectivaPlanejamento / Execução (1 semana)
"Como terminar uma sprint com tarefas em andamento?"
Scrum é só uma parte um grande quebra-cabeça
Retrospectiva e
(re)Priorização
Direção
- Scrum - Data Driven
Retrospectiva e
(re)Priorização
Direção Técnicas de navegação
- Scrum - Data Driven
- Tests, TDD - Clean code, Refactoring - Pair programming - Continuous Delivery - Microservices - Lean Software
Development
ScrumLean SoftwareDevelopment
SE eu tiver que escolher…
Lean Software Development
Sem gordura desnecessária
Lean Software Development
Sem gordura desnecessária
Adaptação do lean manufacturing
Lean é um método sistemático eliminação de desperdício
Lean Software Development
1. Eliminar desperdício2. Aumentar o aprendizado
3. Decidir o mais tarde possível
4. Entregar o mais rápido possível
5. Empoderar o time
6. Construir qualidade
7. Otimizar o todo
Lean Software Development
1. Eliminar desperdício2. Aumentar o aprendizado
3. Decidir o mais tarde possível
4. Entregar o mais rápido possível
5. Empoderar o time
6. Construir qualidade
7. Otimizar o todo
MVP
Times autônomos
Atrito (friction)
http://www.leanessays.com/2015/08/friction.html
Eliminar desperdício
Colaboração com o cliente mais do que
negociação contratual
Colaboração com o cliente mais do que
negociação contratualPodemos achar maneiras de eliminar desperdício, ou…
Colaboração com o cliente mais do que
negociação contratual
Colaboraçãoentre os times (autônomos)
da mesma empresa
Podemos achar maneiras de eliminar desperdício, ou…
Como eu faço paraser mais preciso
nas minhas estimativas?
Como eu faço paraser mais preciso
nas minhas estimativas?
Podemos achar maneiras de eliminar desperdício, ou…
Como eu faço paraser mais preciso
nas minhas estimativas?
Podemos achar maneiras de eliminar desperdício, ou…
Existe uma maneira de tomara decisão
sem ter que estimar?
Como saber se um determinado processo é um desperdício?
Como saber se um determinado processo é um desperdício?
Pare de utilizá-lo e veja se você sente falta!
Um exemplo na TransferWise
100 GBP 4xx BRL
Um exemplo na TransferWise
100 GBP 4xx BRL
Raramente (uma vez por semana) acontece um problema com o payout e é necessário uma intervenção
manual
Um exemplo na TransferWise
100 GBP 4xx BRL
Criar uma tela listando os pagamentos que
necessitam de um empurrãozinho
Um exemplo na TransferWise
100 GBP 4xx BRL
Criar uma tela listando os pagamentos que
necessitam de um empurrãozinho
Capacitar o setor de operações para que eles
não precisem de um desenvolvedor
TestaCoda
TestaCoda TestaCoda TestaCoda TestaCoda
TestaCoda
Coda Testa
TestaCoda TestaCoda TestaCoda TestaCoda
TestaCoda
Coda Testa
Horas? Minutos?
Segundos?
Como podemos aprender mais?
Podcasts
Livros
Dojo (por exemplo para melhorar TDD)
Conferências (TDC é barato e com bom conteúdo)
Participar de treinamentos (recomendo Industrial Logic)
Consultoria (que tal a ThoughtWorks :)
Contratar pessoas com experiência