Kanban – David Anderson
Introdução
• Sistema puxado
• Motivação 1: maneira sistemática de obter
  ritmo sustentável de trabalho
• Motivação 2: introduzir mudanças de
  processo com resistência mínima
• Kanban é o mecanismo que sustenta o
  Sistema Toyota de Produção e sua abordagem
  kaizen para melhoria contínua
• Crescimento em adoção após Agile 2007
Definições
• “kanban”: cartões sinalizadores
• “sistema kanban”: sistema puxado
  implementado por cartões sinalizadores
• “Kanban”: metodologia de melhoria de
  processo incremental e evolutiva que evolui
  na comunidade de desenvolvimento Lean de
  software
Kanban
• Qualquer situação em que se deseje limitar
  coisas dentro de um sistema (ex: jardim em
  Tóquio)
• Quantidade de cartões disponíveis limita WIP
• Políticas do processo explícitas
• Melhoria incremental através da descoberta
  repetitiva de problemas
Objetivos de Kanban
• Aperfeiçoar o processo atual
• Entregar com alta qualidade
• Melhorar a previsibilidade do lead time
• Melhorar a satisfação dos funcionários
• Proporcionar folga para permitir melhoria (requisições
  urgentes + melhorias processo)
• Simplificar priorização
• Fornecer transparência no projeto e operação do
  sistema
• Projetar um processo para viabilizar o surgimento de
  uma organização de Alta Maduridade
Definições
• Baixa qualidade pode representar o maior desperdício em
  desenvolvimento de software
• Reduzir trabalho em progresso aumenta a qualidade
• Melhoria na qualidade aumenta confiança com outras áreas (ex:
  operações)
• Entregas com frequência aumentam confiança com áreas de
  negócio/marketing
• Sistema puxado expõe gargalos e cria folgas
• Priorização vale pouco sem qualidade ou previsibilidade
• Fazer mudanças para reduzir variabilidade requer folga
• Reduzir variabilidade reduz a necessidade de folga
• Reduzir variabilidade reduz tokens, WIP e lead time
• Folgas viabilizam oportunidades de melhoria
Capacidade em Excesso
Custo de Atraso
Melhorias
• Gerenciar gargalos
• Eliminar desperdício
• Reduzir variabilidade
Cultura Kaizen
• Indivíduos se sentem com poder, agem sem
  medo, espontaneamente se
  unem, colaboram, inovam
• Confiança
• Transparência -> efeitos de falta de ação ou
  ações -> colaboração
• Limites -> “pare a linha” e swarming
• Limites e classes de serviço -> poder de
  puxar, tomar decisões -> auto-organização
Implementando
• Limite a implementação para dentro da área
  do departamento
• Modele o fluxo atual limitando WIP
• Defina tipos de item de trabalho
• Item de trabalho deve ter informação
  suficiente para equipe decidir o que puxar
• Sistema eletrônico para estatísticas + parede
  física
Reuniões
• Reuniões de priorização
• Standups diárias com foco no quadro, não nas
  pessoas
• Pós-standup -> melhorias no processo
• Triagem regular do backlog
Cadência de Entrega/Saída

• Entregas de software em intervalos regulares
• Kanban separa cadência de entrega da
  cadência de priorização
• Existem custos de transação/entrega (antes
  era de um dia)
Eficiência de Entrega

  Eficiência = (CT – CE) / CT
  – Onde CT é o Custo Total do software produzido
  – E CE é o Custo de Entrega




• Para aumentar eficiência de entrega:
  – Aumentar CT -> intervalo entre entregas (ocidental)
  – Diminuir os custos de entrega (Lean) – CONSEGUIMOS
    EVOLUIR BASTANTE NESTE PONTO!
Cadência de Entrada
• Acordar processo regular para priorizar novo
  trabalho
• Dissocia entrada e saída de trabalho
• Estimativas representam custos que devem
  ser medidos
• Pode ter reuniões regulares ou ser por
  demanda (quando os custos forem baixos,
  nosso caso!)
Estabelecendo Limites
• Limites de WIP devem ser acordados com todos
  os stakeholders (decisões unilaterais podem ser
  difíceis de defender com o sistema sob stress)
• Estabelecer baseado no número médio de
  itens/pessoa
• Pequenos
• Ajustados empiricamente
• Alocar capacidade por projetos/itens de trabalho
  utilizando raias (próxima figura)
Alocação de Capacidade
Classes de Serviço
•   Otimizar satisfação do cliente
•   De acordo com impacto no negócio
•   Fáceis de identificar (cores ou raias)
•   Definir políticas
•   Classes de risco maior podem requerer estimativa
•   Meta de lead time (SLA) por classe de serviço
•   Medir % de entregas que atendem lead time
•   Time puxa trabalho com base nas políticas
•   Capacidade também pode ser alocada por classe
    de serviço
Classe de serviço: Expedição
• Trazem valor pro negócio às custas do lead
  time de outros itens
• Apenas 1 requisição de expedição é permitida
  em qualquer momento
• Uma requisição de expedição deve ser puxada
  imediatamente. Outro trabalho será colocado
  on hold para tratá-la
• Limites de WIP podem ser quebrados para
  acomodar uma requisição de expedição
Classe de serviço: data fixa
• Custo de atraso como multa ou 1º grau
• Exibir data de entrega na story
• Deve ser analisado e estimado (é viável?)
• Itens grandes devem ser quebrados e
  reanalisados (continuam sendo data fixa?)
• São puxados antes de itens de menor risco
• Aceitam os limites de WIP
• Podem ser promovidos para expedição
Classe de serviço: padrão
• Separados por tamanho: P, M ou G
• Usam mecanismo de fila (FIFO)
• Equipe puxa item padrão mais antigo (se não
  há item de expedição ou data fixa)
• Não é realizada estimativa de esforço ou
  tempo
• São entregues geralmente dentro de X dias
  em m% dos casos
Classe de serviço: intangível
• Custo de atraso intangível (ex: migrar sistema até
  2013)
• Pode ter capacidade alocada
• Fornece folga para itens de maior prioridade
• Pode não ter acordo de SLA ou ser muito mais
  frouxo
• Ex: migrar versão Badgeville (hoje é intangível,
  amanhã pode virar expedição)
• Faz sentido alocar 5% pra essa classe?
  Precisamos dela?
Métricas - CFD
Métricas – Lead Time
Métricas
• Lead time previsível permite time perguntar
  ao PO: “Qual feature você gostaria de ter no
  ar em X dias?”
• Medir demandas de valor x falha
• Medir % de itens entregues dentro do SLA
• Medir tempo/quantidade de itens bloqueados
Escalando
• Acompanhar 2 níveis hierárquicos de itens:
  – Customer marketable (ex: +marcas, home)
  – Granulares, tamanhos similares (user stories)
• Raias facilitam visualização
• Recursos compartilhados devem desenvolver
  seus próprios kanbans
• Portfolio de projetos para resolução de
  conflitos
Escalando – 2 níveis
Revisões Operacionais
• Reuniões mensais de 2 horas para toda a
  organização
• Departamentos reportam dados objetivos
• Feedback e melhoria contínua na empresa
• Constroem confiança mútua
• Entender problemas e desafios de todas as áreas
• Analisar dados ruins e exaltar os bons da mesma
  maneira
Por onde começar?
• Definir políticas iniciais e explícitas para:
   – Limites de WIP
   – Metas de lead time
   – Classes de serviço
   – Priorização
   – Entrega


Com todos os stakeholders!

Kanban

  • 1.
  • 2.
    Introdução • Sistema puxado •Motivação 1: maneira sistemática de obter ritmo sustentável de trabalho • Motivação 2: introduzir mudanças de processo com resistência mínima • Kanban é o mecanismo que sustenta o Sistema Toyota de Produção e sua abordagem kaizen para melhoria contínua • Crescimento em adoção após Agile 2007
  • 3.
    Definições • “kanban”: cartõessinalizadores • “sistema kanban”: sistema puxado implementado por cartões sinalizadores • “Kanban”: metodologia de melhoria de processo incremental e evolutiva que evolui na comunidade de desenvolvimento Lean de software
  • 4.
    Kanban • Qualquer situaçãoem que se deseje limitar coisas dentro de um sistema (ex: jardim em Tóquio) • Quantidade de cartões disponíveis limita WIP • Políticas do processo explícitas • Melhoria incremental através da descoberta repetitiva de problemas
  • 5.
    Objetivos de Kanban •Aperfeiçoar o processo atual • Entregar com alta qualidade • Melhorar a previsibilidade do lead time • Melhorar a satisfação dos funcionários • Proporcionar folga para permitir melhoria (requisições urgentes + melhorias processo) • Simplificar priorização • Fornecer transparência no projeto e operação do sistema • Projetar um processo para viabilizar o surgimento de uma organização de Alta Maduridade
  • 6.
    Definições • Baixa qualidadepode representar o maior desperdício em desenvolvimento de software • Reduzir trabalho em progresso aumenta a qualidade • Melhoria na qualidade aumenta confiança com outras áreas (ex: operações) • Entregas com frequência aumentam confiança com áreas de negócio/marketing • Sistema puxado expõe gargalos e cria folgas • Priorização vale pouco sem qualidade ou previsibilidade • Fazer mudanças para reduzir variabilidade requer folga • Reduzir variabilidade reduz a necessidade de folga • Reduzir variabilidade reduz tokens, WIP e lead time • Folgas viabilizam oportunidades de melhoria
  • 7.
  • 8.
  • 9.
    Melhorias • Gerenciar gargalos •Eliminar desperdício • Reduzir variabilidade
  • 10.
    Cultura Kaizen • Indivíduosse sentem com poder, agem sem medo, espontaneamente se unem, colaboram, inovam • Confiança • Transparência -> efeitos de falta de ação ou ações -> colaboração • Limites -> “pare a linha” e swarming • Limites e classes de serviço -> poder de puxar, tomar decisões -> auto-organização
  • 11.
    Implementando • Limite aimplementação para dentro da área do departamento • Modele o fluxo atual limitando WIP • Defina tipos de item de trabalho • Item de trabalho deve ter informação suficiente para equipe decidir o que puxar • Sistema eletrônico para estatísticas + parede física
  • 12.
    Reuniões • Reuniões depriorização • Standups diárias com foco no quadro, não nas pessoas • Pós-standup -> melhorias no processo • Triagem regular do backlog
  • 13.
    Cadência de Entrega/Saída •Entregas de software em intervalos regulares • Kanban separa cadência de entrega da cadência de priorização • Existem custos de transação/entrega (antes era de um dia)
  • 14.
    Eficiência de Entrega Eficiência = (CT – CE) / CT – Onde CT é o Custo Total do software produzido – E CE é o Custo de Entrega • Para aumentar eficiência de entrega: – Aumentar CT -> intervalo entre entregas (ocidental) – Diminuir os custos de entrega (Lean) – CONSEGUIMOS EVOLUIR BASTANTE NESTE PONTO!
  • 15.
    Cadência de Entrada •Acordar processo regular para priorizar novo trabalho • Dissocia entrada e saída de trabalho • Estimativas representam custos que devem ser medidos • Pode ter reuniões regulares ou ser por demanda (quando os custos forem baixos, nosso caso!)
  • 16.
    Estabelecendo Limites • Limitesde WIP devem ser acordados com todos os stakeholders (decisões unilaterais podem ser difíceis de defender com o sistema sob stress) • Estabelecer baseado no número médio de itens/pessoa • Pequenos • Ajustados empiricamente • Alocar capacidade por projetos/itens de trabalho utilizando raias (próxima figura)
  • 17.
  • 18.
    Classes de Serviço • Otimizar satisfação do cliente • De acordo com impacto no negócio • Fáceis de identificar (cores ou raias) • Definir políticas • Classes de risco maior podem requerer estimativa • Meta de lead time (SLA) por classe de serviço • Medir % de entregas que atendem lead time • Time puxa trabalho com base nas políticas • Capacidade também pode ser alocada por classe de serviço
  • 19.
    Classe de serviço:Expedição • Trazem valor pro negócio às custas do lead time de outros itens • Apenas 1 requisição de expedição é permitida em qualquer momento • Uma requisição de expedição deve ser puxada imediatamente. Outro trabalho será colocado on hold para tratá-la • Limites de WIP podem ser quebrados para acomodar uma requisição de expedição
  • 20.
    Classe de serviço:data fixa • Custo de atraso como multa ou 1º grau • Exibir data de entrega na story • Deve ser analisado e estimado (é viável?) • Itens grandes devem ser quebrados e reanalisados (continuam sendo data fixa?) • São puxados antes de itens de menor risco • Aceitam os limites de WIP • Podem ser promovidos para expedição
  • 21.
    Classe de serviço:padrão • Separados por tamanho: P, M ou G • Usam mecanismo de fila (FIFO) • Equipe puxa item padrão mais antigo (se não há item de expedição ou data fixa) • Não é realizada estimativa de esforço ou tempo • São entregues geralmente dentro de X dias em m% dos casos
  • 22.
    Classe de serviço:intangível • Custo de atraso intangível (ex: migrar sistema até 2013) • Pode ter capacidade alocada • Fornece folga para itens de maior prioridade • Pode não ter acordo de SLA ou ser muito mais frouxo • Ex: migrar versão Badgeville (hoje é intangível, amanhã pode virar expedição) • Faz sentido alocar 5% pra essa classe? Precisamos dela?
  • 23.
  • 24.
  • 25.
    Métricas • Lead timeprevisível permite time perguntar ao PO: “Qual feature você gostaria de ter no ar em X dias?” • Medir demandas de valor x falha • Medir % de itens entregues dentro do SLA • Medir tempo/quantidade de itens bloqueados
  • 26.
    Escalando • Acompanhar 2níveis hierárquicos de itens: – Customer marketable (ex: +marcas, home) – Granulares, tamanhos similares (user stories) • Raias facilitam visualização • Recursos compartilhados devem desenvolver seus próprios kanbans • Portfolio de projetos para resolução de conflitos
  • 27.
  • 28.
    Revisões Operacionais • Reuniõesmensais de 2 horas para toda a organização • Departamentos reportam dados objetivos • Feedback e melhoria contínua na empresa • Constroem confiança mútua • Entender problemas e desafios de todas as áreas • Analisar dados ruins e exaltar os bons da mesma maneira
  • 29.
    Por onde começar? •Definir políticas iniciais e explícitas para: – Limites de WIP – Metas de lead time – Classes de serviço – Priorização – Entrega Com todos os stakeholders!