O documento apresenta um método chamado Kanban para melhorar o fluxo de trabalho de uma equipe de software. O método envolve visualizar o trabalho, limitar o trabalho em andamento e gerenciar o fluxo através do processo. Exemplos mostram como a equipe identificou e resolveu gargalos no fluxo, melhorando métricas como tempo de ciclo ao longo do tempo.
2. Oe!
Rodrigo Vieira
Pai, nerd, agilista, programador, gerente de produto e de projeto
Uso Kanban há mais ou menos 6 meses
(em TI isso significa que já sou sênior)
3. Agenda
1. Jogo das Cartas: Lei de Little na prática
2. Conceitos básicos
3. Cenários baseados em casos reais (ou seja, no meu trabalho)
4. Perguntas, bate-papo
11. Kanban: Sinalização
● Sinalização de capacidade
● Trabalho é sempre “puxado”, e não “empurrado”
● Sistematizado na Toyota/Japão (TPS)
● Todos nós usamos há muito tempo!
14. Três regras “oficiais”
1. Comecem onde vocês estão
2. Evoluam gradualmente e observem resultados
3. Respeitem papéis e responsabilidades
Como adotar Kanban
15. Conheça a...
Softweria
■ Startup com 6 empregados, desenvolvem software mobile e Web
■ 1 admin/comercial/gerente de produtos (PO)
■ 3 devs
■ 1 designer
■ 1 QA/suporte
■ Estão tocando 3 projetos e tentando desenvolver um produto próprio
16. A lista é longa...
1. Muitos atrasos nas entregas e correria
2. Não sabem quem está fazendo o quê
3. O QA reclama que chegam muitos bugs “básicos” na mão dele e que precisa testar
na pressa por causa dos prazos estourados
4. O PO reclama que o produto deles está abandonado e defasado
5. Tarefas sem priorização clara, priorizadas pelo “grito” do cliente ou do chefe
6. Tarefas abandonadas na metade
7. Alguns desenvolvedores são especialistas em algumas partes dos projetos mas não
sabem como trabalhar em outras partes (cada área do projeto tem um “dono”)
8. Ninguém quer fazer deploy (colocar a nova versão no ar) por que é um trabalho
muito longo e tem que ser feito à noite
9. Não veem uma saída pra essa situação a não ser trabalhar ainda mais!
19. Backlog Pronto
1. Separaram o que estava em andamento e o que não
tinha sido iniciado ainda (backlog)
Em Andamento
20. 2. Removeram do backlog as tarefas que não estavam
prontas para serem trabalhadas
Backlog ProntoEm Andamento
21. Backlog Aceite POEm dev QA DeployDesign Feito!
3. Mapearam em maior detalhe o processo atual
22. Anatomia de um Post-It
Kanban
#435
RV
15/11 27/11
Bug no gráfico
de acessos
Número de
referência (ex
no Trello, Jira,
TFS)
Título
Data de início Data de fim
Responsável
Use o post-it
para outras
sinalizações
relevantes ao
time
24. Efeito Zeigarnik
(1927)
1. Um sistema de tensão será criado quando o indivíduo receber uma tarefa
para realizar.
2. Quando a tarefa for concluída, a tensão desaparecerá.
3. Se a tarefa não for concluída, a persistência da tensão resultará na maior
probabilidade de o indivíduo lembrar-se da tarefa.
https://revistaculturacidadania.blogspot.com.br/2012/06/artigos-o-efeito-zeigarnik-e-motivacao.html
27. 4. Definiram WIP desejado (decidiram reduzir 30% o
atual)
Backlog Em dev QA DeployDesign Feito!Aceite PO
Limite WIP = 20 (atual: 33)
28. Doing Fila Doing Fila Doing Fila Doing Fila Doing
5. Para parar de “empurrar” tarefas, criaram filas por
serviço
Backlog Em dev QA DeployDesign Feito!Aceite PO
Limite WIP = 20 (atual: 33)
29. Doing Fila Doing Fila Doing Fila Doing Fila Doing
6. Para chegar ao limite WIP de 20, eles combinaram de
parar de puxar novas tarefas do backlog até terminar o
que já estava em progresso
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 33)
Aceite PO
30. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 33)
Pare de começar, e comece a
terminar!
Aceite PO
31. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 33)
Aceite PO
32. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 33)
Aceite PO
33. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 29)
Aceite PO
34. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 24)
Aceite PO
35. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
36. Doing Fila Doing Fila Doing Fila Doing Fila Doing
8. Chegaram a 20! Agora eles combinaram manter esse
limite por algumas semanas, e observar o que acontecia
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
37. Tempo de Ciclo
WIP diário
médio
Tempo de ciclo
médio (dias)
Semana 1 33 8.7
Semana 2 30 8.0
Semana 3 27 7.5
Semana 4 20 6.0
Semana 5 20 5.1
Semana 6 20 5.2
42. ToC: uma analogia
6 20 4 ?12 7
O rendimento global do sistema é determinado pelo rendimento
do gargalo.
Qualquer tentativa em forçar um rendimento no sistema acima
desse limite causará ineficiência e defeitos.
43. ToC: um processo de
melhoria contínua
1. Identifique o gargalo
2. Decida como tirar maior proveito do gargalo
3. Adeque todo o processo ao gargalo
4. Otimize o gargalo para aumentar sua capacidade
5. Repita o processo para encontrar o próximo gargalo
44. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Situação 1: Designer está disponível mas o sistema está
no limite de WIP
45. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão: O designer foi dar uma ajuda pro QA, e um
dev foi fazer o deploy para liberar 3 posições
46. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 17)
Aceite PO
Sugestão: O designer foi dar uma ajuda pro QA, e um
dev foi fazer o deploy para liberar 3 posições
47. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Situação 2: QA está sempre com muito trabalho pra
fazer (gargalo)
48. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão 1: Estabelecer limite WIP nesse serviço para
aumentar capacidade do gargalo (ToC)
49. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão 2: Trocar ordem dos serviços de QA e PO para
evitar que o trabalho passe duas vezes pelo gargalo de
QA
50. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão 3: O time de desenvolvimento vai começar a
escrever testes unitários e adotar “code review” para
aumentar a chance do trabalho passar pelo QA de
primeira (Kaizen)
51. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão 4: O time vai anotar nos post-its toda vez que
um trabalho voltar do QA para desenvolvimento, para
monitorar a métrica de “taxa de bugs” no tempo
52. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Situação 3: O gerente/comercial/PO nunca está
disponível para fazer o trabalho dele
53. Doing Fila Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 20 (atual: 20)
Aceite PO
Sugestão 1: Capacitar e dar autonomia para o time atuar
como PO quando preciso (Kaizen)
54. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Sugestão 2 (vinda do time): Avaliar se essa etapa é
realmente necessária. Testar processo sem essa etapa
por 4 semanas e checar métricas (taxa de bugs, tempo
de ciclo, taxa de falhas com clientes).
Como tem menos 1 pessoa, baixaram o limite WIP para
18
55. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18 (atual: 18 + 2 bugs inesperados)
Situação 4: trabalho emergencial bagunça todo o
processo!
56. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18 (atual: 18)
Sugestão: criar uma “linha expressa” para bugs urgentes,
com uma política de prioridade absoluta para o que
estiver lá
57. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Situação: o chefe começou a colocar trabalho na “linha
expressa” alegando que é trabalho muito muito
importante para a sobrevivência da empresa
58. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Sugestão: deixar o chefe usar a linha expressa, mas com
limite de 1 trabalho por semana (ele vai ter que priorizar)
59. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Situação 5: o time nunca tem tempo para trabalhar no
produto da empresa (ele nunca é priorizado)
60. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Sugestão: o time acordou que a cada 4 trabalhos para
clientes, 1 será para o produto (ou seja, darão 20% do
tempo ao produto)
61. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Situação 6: tem trabalho que só um dos
desenvolvedores sabe fazer
62. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Sugestão: o time de desenvolvedores concordou que
vão sempre pegar o trabalho no topo da fila, e se
necessário fazer “pair programming” (Kaizen)
63. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Situação: a fila de deploy fica grande e todo mundo
odeia fazer deploy à noite
64. Doing Fila Doing Fila Doing Fila Doing
Backlog Em dev QA (4) DeployDesign Feito!
Limite WIP = 18
Sugestão: o time decidiu liberar um dos colegas para
estudar “continuous integration” para um dia terem
deploy automático (Kaizen) e poderem baixar ainda mais
o WIP
65. Vamos ver aquela
lista
1. Muitos atrasos nas entregas e correria
2. Não sabem quem está fazendo o quê
3. O QA reclama que chegam muitos bugs “básicos” na mão dele e que precisa testar
na pressa por causa dos prazos estourados
4. O PO reclama que o produto deles está abandonado e defasado
5. Tarefas sem priorização clara, priorizadas pelo “grito” do cliente ou do chefe
6. Tarefas abandonadas na metade
7. Alguns desenvolvedores são especialistas em algumas partes dos projetos mas não
sabem como trabalhar em outras partes (cada área do projeto tem um “dono”)
8. Ninguém quer fazer deploy (colocar a nova versão no ar) por que é um trabalho
muito longo e tem que ser feito à noite
9. Não veem uma saída pra essa situação a não ser trabalhar ainda mais!
66. Quais métricas usar
■ Tempo de ciclo
■ Rendimento ou Taxa de entrega (Throughput)
■ Taxa de defeitos (cartas andando pra trás)
■ Tempo de fila
■ Tempo de trabalho efetivo (touch time)
■ Eficiência: Touch time/Tempo de ciclo