O que é Kanban?

Kanban é um termo japonês que significa letreiro ou outdoor. Um engenheiro industrial chamado Taiichi Ohno desenvolveu o Kanban na Toyota Motor Corporation para melhorar a eficiência de fabricação.

Embora o Kanban tenha sido criado para a fabricação, o desenvolvimento de software compartilha muitos dos mesmos objetivos, como aumentar o fluxo e a produtividade. As equipes de desenvolvimento de software podem melhorar sua eficiência e entregar valor aos usuários mais rapidamente usando princípios e métodos de orientação do Kanban.

Image that shows people using Kanban boards.

Princípios Kanban

A adoção do Kanban requer a adesão a algumas práticas fundamentais que podem variar dos métodos anteriores das equipes.

Visualizar trabalho

Entender o status da equipe de desenvolvimento e o progresso do trabalho pode ser um desafio. O progresso do trabalho e o estado atual são mais fáceis de entender quando apresentados visualmente em vez de como uma lista de itens de trabalho ou um documento.

A visualização do trabalho é um princípio fundamental que o Kanban aborda principalmente por meio de quadros Kanban. Esses quadros usam cartões organizados por progresso para comunicar o status geral. Visualizar o trabalho como cartões em diferentes estados em um quadro ajuda a ver facilmente o panorama geral de onde um projeto está atualmente, bem como identificar possíveis gargalos que podem afetar a produtividade.

Diagram showing a Kanban board.

Usar um modelo de pull

Historicamente, as partes interessadas solicitavam funcionalidade empurrando o trabalho para as equipes de desenvolvimento, muitas vezes com prazos apertados. A qualidade sofria se as equipes precisassem usar atalhos para entregar a funcionalidade dentro do prazo.

O Kanban concentra-se em manter um nível acordado de qualidade que deve ser atendido antes de considerar o trabalho como realizado. Para apoiar esse modelo, as partes interessadas não empurram o trabalho para equipes que já estão trabalhando na capacidade. Em vez disso, as partes interessadas adicionam solicitações a uma lista de pendências que uma equipe puxa para seu fluxo de trabalho à medida que a capacidade se torna disponível.

Impor um limite de WIP

As equipes que tentam trabalhar em muitas coisas ao mesmo tempo podem sofrer com a redução da produtividade devido à troca frequente e dispendiosa de contexto. A equipe está ocupada, mas o trabalho não é feito, resultando em prazos de entrega inaceitavelmente altos. Limitar o número de itens da lista de pendências nos quais uma equipe pode trabalhar por vez ajuda a aumentar o foco e, ao mesmo tempo, reduz a mudança de contexto. Os itens em que a equipe está trabalhando atualmente são chamados de trabalho em andamento (WIP).

As equipes decidem um limite de WIP ou o número máximo de itens em que podem trabalhar ao mesmo tempo. Uma equipe bem disciplinada garante que o seu limite de WIP seja excedido. Se as equipes excederem seus limites de WIP, elas investigarão o motivo e trabalharão para abordar a causa raiz.

Medir o aprimoramento contínuo

Para praticar a melhoria contínua, as equipes de desenvolvimento precisam de uma maneira de medir a eficácia e o rendimento. Os quadros Kanban fornecem uma visão dinâmica dos estados de trabalho em um fluxo de trabalho, para que as equipes possam experimentar processos e avaliar mais facilmente o impacto nos fluxos de trabalho. As equipes que adotam o Kanban para melhoria contínua usam medidas como prazo e tempo de ciclo.

Quadros kanban

O quadro Kanban é uma das ferramentas que as equipes utilizam para implementar as práticas Kanban. Um quadro Kanban pode ser um quadro físico ou um aplicativo de software que mostra cartões organizados em colunas. Os nomes típicos das colunas são Iniciar, Em andamento e Concluído, mas as equipes podem personalizar os nomes para corresponder aos estados do fluxo de trabalho. Por exemplo, uma equipe pode preferir usar Novo, Desenvolvimento, Teste, UAT e Concluído.

Os quadros Kanban baseados em desenvolvimento de software exibem cartões que correspondem a itens da lista de pendências do produto. Os cartões incluem links para outros itens, como tarefas e casos de teste. As equipes podem personalizar os cartões para incluir informações relevantes para seu processo.

Screenshot of a software development Kanban board.

Em um quadro Kanban, o limite de WIP se aplica a todas as colunas em andamento. Os limites de WIP não se aplicam à primeira e à última colunas, porque essas colunas representam o trabalho que não foi iniciado ou foi concluído. Os quadros Kanban ajudam as equipes a se manterem dentro dos limites de WIP, chamando a atenção para colunas que excedem os limites. As equipes podem então determinar um curso de ação para remover o gargalo.

Diagramas de fluxo cumulativo

Uma adição comum aos quadros Kanban baseados em desenvolvimento de software é um gráfico chamado diagrama de fluxo cumulativo (CFD). O CFD ilustra o número de itens em cada estado ao longo do tempo, normalmente ao longo de várias semanas. O eixo horizontal mostra a linha do tempo, enquanto o eixo vertical mostra o número de itens da lista de pendências do produto. As áreas coloridas indicam os estados ou colunas em que os cartões estão atualmente.

O CFD é particularmente útil para identificar tendências ao longo do tempo, incluindo gargalos e outras interrupções na velocidade de progresso. Um bom CFD mostra uma tendência ascendente consistente enquanto uma equipe está trabalhando em um projeto. As áreas coloridas no gráfico devem ser aproximadamente paralelas se a equipe estiver trabalhando dentro de seus limites de WIP.

Image showing a cumulative flow diagram.

Uma protuberância em uma ou mais das áreas coloridas geralmente indica um gargalo ou impedimento no fluxo da equipe. No CFD seguinte, o trabalho concluído em verde está fixo, enquanto o estado de teste em azul está crescendo, provavelmente devido a um gargalo.

Image showing a bottleneck in a cumulative flow diagram.

Kanban e Scrum no desenvolvimento Agile

Embora se encaixem amplamente sob o guarda-chuva do desenvolvimento Agile, Scrum e Kanban são bem diferentes.

  • O Scrum se concentra em sprints de comprimento fixo, enquanto o Kanban é um modelo de fluxo contínuo.
  • O Scrum tem funções definidos, enquanto o Kanban não define nenhuma função de equipe.
  • O Scrum usa a velocidade como métrica chave, enquanto o Kanban usa o tempo de ciclo.

As equipes geralmente adotam aspectos do Scrum e do Kanban para ajudá-los a trabalhar de forma mais eficaz. Independentemente das características que escolherem, as equipas podem sempre rever e adaptar-se até encontrarem o melhor ajuste. As equipes devem começar simples e não perder de vista a importância de entregar valor regularmente aos usuários.

Kanban com o GitHub

O GitHub oferece uma experiência Kanban por meio de quadros de projeto (clássico). Esses quadros ajudam você a organizar e priorizar o trabalho para o desenvolvimento de recursos específicos, roteiros abrangentes ou listas de verificação de lançamento. Você pode automatizar quadros de projeto (clássico) para sincronizar o status do cartão com problemas associados e solicitações pull.

Kanban com o Azure Boards

O Azure Boards fornece uma solução Kanban abrangente para planejamento de DevOps. O Azure Boards tem uma integração profunda entre o Azure DevOps e também pode fazer parte da integração do Azure Boards-GitHub.