Close

kanban

Como a metodologia Kanban é aplicada ao desenvolvimento de software

Buscar tópicos

O que é o Kanban?

O Kanban é uma estrutura popular usada para implementar o desenvolvimento de software ágil e de DevOps. Ele precisa de comunicação de capacidade em tempo real e transparência total de trabalho. Os itens de trabalho ganham representação visual em um quadro Kanban, permitindo que os membros da equipe vejam o estado de cada parte do trabalho a qualquer momento.

Artigos do kanban

[CONTINUAÇÃO]

O Kanban é muito proeminente entre as equipes de software ágil e de DevOps de hoje, mas essa metodologia de trabalho remonta a mais de 50 anos. No fim dos anos 1940, a Toyota começou a otimizar seus processos de engenharia com base no mesmo modelo que os supermercados usavam para abastecer suas prateleiras. Os supermercados abastecem apenas a quantidade de produtos suficiente para atender à demanda dos consumidores, uma prática que otimiza o fluxo entre o supermercado e o consumidor. Como os níveis de estoque correspondem a padrões de consumo, o supermercado ganha uma eficiência significativa na gestão de estoques, reduzindo a quantidade excessiva de produtos a ser mantida a qualquer momento. Mesmo assim, o supermercado ainda consegue garantir que determinado produto do qual um consumidor precisa esteja sempre no estoque.

Quando a Toyota aplicou esse mesmo sistema em seu chão de fábrica, o objetivo era alinhar melhor seus níveis enormes de estoque com o consumo real de materiais. Para comunicar níveis de capacidade em tempo real no chão de fábrica (e aos fornecedores), os trabalhadores passavam um cartão, ou "kanban", entre as equipes. Quando um contêiner de materiais usados na linha de produção era esvaziado, um kanban era passado para o depósito, descrevendo o material que era necessário, a quantidade exata dessa material e assim por diante. O depósito contava com um novo contêiner desse material em espera, o qual era enviado para o chão de fábrica, que, por sua vez , enviava seu próprio kanban para o fornecedor. O fornecedor também tinha um contêiner desse material particular em espera, que deveria ser enviado para o depósito. Embora a tecnologia de sinalização desse processo tenha evoluído desde a década de 1940, esse mesmo processo de fabricação "just in time" (ou JIT) continua no centro do processo.

Kanban para equipes de software

Hoje, as equipes ágeis de desenvolvimento de software são capazes de aproveitar esses mesmos princípios do JIT, combinando a quantia do trabalho em andamento (WIP) com a capacidade da equipe. Isso proporciona às equipes opções de planejamento mais flexíveis, saída mais rápida, foco mais claro e transparência ao longo do ciclo de desenvolvimento.

Quadro Kanban | Coach Agile da Atlassian

Embora os princípios centrais da estrutura sejam atemporais e aplicáveis a quase todas as indústrias, as equipes de desenvolvimento de software encontraram um sucesso especial com a prática ágil. Isso ocorre, em parte, porque as equipes de software podem começar a praticar com pouca ou nenhuma sobrecarga, uma vez que entendem os princípios básicos. Ao contrário da implementação do Kanban no chão de fábrica, que envolveria mudanças nos processos físicos e a adição de materiais substanciais, as únicas coisas físicas que as equipes de software precisam são um quadro e cartões, que podem até mesmo ser virtuais.

Quadros do Kanban

O trabalho de todas as equipes Kanban gira em torno de um quadro do Kanban, uma ferramenta usada para visualizar o trabalho e otimizar o fluxo do trabalho entre a equipe. Embora os quadros físicos sejam populares entre algumas equipes, os quadros virtuais são um recurso crucial em qualquer ferramenta de desenvolvimento ágil de software para sua rastreabilidade, colaboração mais fácil e acessibilidade de vários locais.

Independentemente de o quadro de uma equipe ser físico ou digital, sua função é assegurar que o trabalho da equipe seja visualizado, que seu fluxo de trabalho seja padronizado e que todos os bloqueadores e dependências sejam imediatamente identificados e resolvidos. Um quadro básico do Kanban tem um fluxo de trabalho de três etapas: "To Do", "In Progress" e "Done" (a fazer, em andamento e feito). No entanto, dependendo do tamanho, da estrutura e dos objetivos da equipe, o fluxo de trabalho pode ser mapeado para atender ao processo exclusivo de qualquer equipe específica.

A metodologia Kanban se baseia na plena transparência do trabalho e na comunicação em tempo real da capacidade, portanto, o quadro do Kanban deve ser visto como a única fonte de verdade para o trabalho da equipe.

Quadro Kanban Agile | Coach Agile da Atlassian

Cartões Kanban

Em japonês, kanban é traduzido literalmente como "sinal visual." Para as equipes Kanban, cada item de trabalho é representado como um cartão separado no quadro.

A principal finalidade de representar o trabalho como um cartão no quadro do Kanban é permitir que os membros da equipe acompanhem seu andamento por meio do fluxo de trabalho e de uma maneira altamente visual. Os cartões Kanban apresentam informações cruciais sobre determinado item de trabalho, dando visibilidade total à equipe sobre quem é o responsável por ele, uma breve descrição da tarefa sendo feita, qual a estimativa de tempo para essa parte do trabalho e assim por diante. Muitas vezes, os cartões nos quadros virtuais do Kanban também apresentarão capturas de tela e outros detalhes técnicos valiosos para o destinatário. Ao permitir que os membros da equipe visualizem não só a situação de cada item de trabalho a qualquer momento, mas também todos os detalhes associados, garante-se maior foco, total rastreabilidade e identificação rápida de bloqueadores e dependências.

Os benefícios do Kanban

O Kanban é uma das metodologias de desenvolvimento de software mais populares adotadas por equipes ágeis atualmente. Ele oferece várias vantagens adicionais para o planejamento e a transferência de tarefas para equipes de todos os tamanhos.

Flexibilidade de planejamento

Uma equipe Kanban concentra-se apenas no trabalho ativo em andamento. Depois que a equipe conclui um item de trabalho, ela remove o próximo item de trabalho do topo do backlog. O proprietário do produto é livre para priorizar o trabalho na lista de pendências sem interromper a equipe, porque qualquer alteração fora dos itens de trabalho atuais não impactam a equipe. Contanto que o proprietário do produto mantenha os itens de trabalho mais importantes no topo da lista de pendências, a equipe de desenvolvimento tem certeza de que está retornando o valor máximo para a empresa. Portanto, não há necessidade das iterações de extensão fixa que você encontra no scrum.

Dica profissional:

Proprietários de produtos experientes sempre se envolvem com a equipe de desenvolvimento ao levarem em consideração as mudanças na lista de pendências. Por exemplo, se as histórias dos usuários 1 a 6 estão na lista de pendências, a estimativa da história do usuário 6 pode ser baseada na conclusão das histórias dos usuários 1 a 5. É sempre uma boa prática confirmar as mudanças com a equipe de engenharia para garantir que não haja surpresas.

Tempos de ciclos reduzidos

O tempo de ciclo é uma métrica-chave para as equipes Kanban. O tempo de ciclo é a quantidade de tempo que uma unidade de trabalho leva para passar pelo fluxo de trabalho da equipe desde o momento que o trabalho é iniciado até o seu envio. Ao otimizar o tempo de ciclo, a equipe pode prever com confiança a entrega do trabalho futuro.

A sobreposição de conjuntos de habilidades leva a tempos de ciclo menores. Quando apenas uma pessoa detém um conjunto de habilidades, ela se torna um gargalo no fluxo de trabalho. Dessa forma, as equipes empregam as melhores práticas básicas, como revisão de código e ajuda em mentoria, para disseminar o conhecimento. Habilidades compartilhadas significam que os membros da equipe podem assumir um trabalho heterogêneo, o que otimiza ainda mais o tempo de ciclo. Isso também significa que, se houver um backup do trabalho, toda a equipe pode se mover para que o processo flua perfeitamente outra vez. Por exemplo, o teste não é feito apenas por engenheiros de controle de qualidade. Os desenvolvedores também o fazem.

Em uma estrutura Kanban, é responsabilidade de toda a equipe assegurar que o trabalho esteja avançando perfeitamente pelo processo.

Menos gargalos

Ser multitarefas mata a eficiência. Quanto mais itens de trabalho em curso em um determinado momento, mais troca de contexto, o que dificulta o caminho para a conclusão. É por isso que um dos princípios básicos do Kanban é limitar a quantidade de tarefas em andamento (WIP, Work in Progress). Esse recurso limita gargalos e backups em destaques no processo da equipe devido à falta de foco, pessoas ou conjunto de habilidades.

Por exemplo, uma equipe de software típica pode ter quatro estados de fluxo de trabalho: "A fazer", "Em andamento", "Análise de código" e "Concluído". Eles poderiam optar por definir um limite WIP de 2 para o estado de análise de código. Pode parecer um limite baixo, mas tem um bom motivo: muitas vezes os desenvolvedores preferem escrever um código novo em vez de gastar o tempo revendo o trabalho de outra pessoa. Um limite baixo encoraja a equipe a prestar atenção especial aos problemas no estado de análise e a analisar o trabalho de outros antes de criar suas próprias análises de código. Assim, o tempo total de ciclo é reduzido.

Métricas visuais

Um dos valores centrais é um foco robusto na melhoria continua da eficiência e eficácia da equipe com cada iteração do trabalho. Os gráficos fornecem um mecanismo visual para as equipes garantirem a continuidade da melhoria. Quando a equipe pode ver os dados, é mais fácil detectar os gargalos no processo e removê-los. Dois relatórios comuns usados pelas equipes Kanban são os de gráficos de controle e os de diagramas de fluxo cumulativos.

Um gráfico de controle mostra o tempo de ciclo para cada problema, bem como uma média contínua para a equipe.

Dica profissional:

O objetivo da equipe é reduzir o período de tempo que um item leva para passar por todo o processo. Ver a queda do tempo médio do ciclo no gráfico de controle é um indicador de sucesso.

Gráfico de controle Agile | Coach Agile da Atlassian

Um diagrama de fluxo cumulativo mostra o número de itens em cada estado. A equipe pode detectar bloqueios com facilidade vendo o número de aumento de itens em qualquer estado determinado. Os itens em estados intermediários, como "Em andamento" ou "Em revisão", ainda não foram enviados para clientes e um bloqueio nesses estados pode aumentar a probabilidade de conflitos de integração em massa quando o trabalho for incorporado a montante.

Diagrama de fluxo cumulativo

Serviço constante

A entrega contínua (CD) é a prática de lançar trabalhos com frequência para clientes. A integração contínua (CI) é a prática de fazer a compilação e o teste automáticos do código com incrementação ao longo do dia. Juntas, elas formam um pipeline de CI/CD que é essencial para que as equipes de desenvolvimento (em especial as equipes de DevOps) lancem mais rápido o software, garantindo alta qualidade.

O Kanban e a CD se complementam com perfeição, porque ambas as técnicas se concentram na entrega just-in-time (e one-at-a-time) de valor. Quanto mais rápido uma equipe puder oferecer inovação para o mercado, mais competitivo o produto vai estar no mercado. E o foco das equipes Kanban é bem este: otimizar o fluxo de trabalho para clientes.

Scrum vs. Kanban

Kanban e scrum compartilham alguns dos mesmos conceitos, mas têm diferentes abordagens. Eles não devem ser confundidos um com o outro.

Scrum

kanban
Ritmo

Sprints regulares com extensão fixa (2 semanas)

Fluxo contínuo
Metodologia de versões No final de cada sprint, se aprovado pelo proprietário do produto Entrega contínua ou a critério da equipe
Funções Proprietário do produto, mestre scrum, equipe de desenvolvimento Sem funções existentes. Algumas equipes recorrerem à ajuda de um agile coach.
Principais métricas Velocidade Tempo de ciclo
Filosofia de mudança As equipes devem se esforçar para não fazer alterações na previsão de sprint durante o sprint. Ao fazer isso, o aprendizado em torno da estimativa fica comprometido. Mudanças podem ocorrer a qualquer momento

Algumas equipes misturam os ideais do Kanban e do Scrum no "scrumban". Eles pegam os sprints de comprimento fixo e as funções do Scrum e o foco nos limites de trabalho em andamento e o tempo de ciclo do Kanban. Porém, para as equipes que acabaram de começar a usar o Agile, é altamente recomendável escolher uma metodologia ou outra e usá-la por um tempo. Você sempre pode adotar aquela que for ideal mais tarde.

Dan Radigan
Dan Radigan

O método ágil mudou a minha vida profissional e pessoal porque aprendi que as melhores experiências são ágeis, sejam em código ou na vida. Meus interesses se dividem entre tecnologia, fotografia e motociclismo. 

a seguir
Boards