Como a metodologia Kanban é aplicada ao desenvolvimento de software
Maximize a eficiência observando e fazendo avançar o trabalho que mais importa.
O método 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.
O fluxo Kanban, um pilar das metodologias ágil e DevOps, impulsiona a eficiência ao orquestrar a progressão harmoniosa das tarefas por meio de fluxos de trabalho visualizados. O fluxo Kanban reflete o gerenciamento simplificado de estoque dos supermercados, garantindo que as tarefas passem pelos processos de desenvolvimento sempre que necessário.
Visualizadas em quadros Kanban, as tarefas representadas como cartões permitem o monitoramento transparente do progresso e a identificação rápida de gargalos. Ao limitar o trabalho em andamento (WIP), as equipes otimizam a alocação de recursos e mantêm um fluxo de trabalho estável. O foco do Kanban na melhoria contínua é facilitado por métricas como gráficos de controle e diagramas de fluxo cumulativos, possibilitando às equipes refinar fluxos de trabalho de forma iterativa.
No desenvolvimento de software, o fluxo Kanban promove o gerenciamento dinâmico de tarefas, acelera os ciclos de entrega e melhora a satisfação dos clientes por meio de um trabalho focado e ininterrupto. Em essência, o fluxo Kanban simboliza a eficiência — uma combinação harmoniosa de transparência, adaptabilidade e aprimoramento contínuo — liberando todo o potencial das metodologias ágeis.
Estabelecer um fluxo estruturado de Kanban na equipe de desenvolvimento de software é essencial para a implementação eficaz do Kanban. Isso garante o bom andamento das tarefas e a otimização do gerenciamento do fluxo de trabalho. Confira abaixo como estruturar o fluxo de Kanban:
Visualize o fluxo de trabalho: comece com a visualização do fluxo de trabalho da equipe no quadro Kanban. Seja físico ou virtual, o quadro deve descrever cada estágio do processo de desenvolvimento, do início à conclusão das tarefas.
Padronize o fluxo de trabalho: defina e padronize as etapas do fluxo de trabalho de acordo com os processos e requisitos da equipe. As etapas mais comuns incluem "Pendente", "Em andamento" e "Concluído", mas é possível personalizar de acordo com o fluxo de trabalho que você usa.
Identifique bloqueadores e dependências: garanta que o quadro Kanban possibilite a identificação imediata de bloqueadores e dependências. Essa transparência permite resoluções rápidas e evita interrupções no fluxo de trabalho.
Defina limites de trabalho em andamento (WIP): implemente limites de WIP para todas as etapas do fluxo de trabalho, para evitar a sobrecarga e manter um ritmo consistente. Os limites de WIP ajudam a otimizar a alocação de recursos e a reduzir a necessidade de executar várias tarefas ao mesmo tempo, o que estimula o aumento da produtividade.
Incentive a colaboração: promova uma cultura de colaboração na equipe. Assim, os membros lidam em grupo com os gargalos e trabalham juntos para garantir o bom andamento do fluxo de trabalho. Essa abordagem colaborativa promove eficiência e acelera a conclusão de tarefas.
Use cartões Kanban: represente cada tarefa como um cartão Kanban no quadro, incluindo informações essenciais, como a descrição da tarefa, a pessoa responsável e o tempo estimado para a conclusão. Os cartões Kanban possibilitam o rastreamento visual do progresso das tarefas e promovem transparência entre os membros da equipe.
Ao estruturar o fluxo Kanban assim, você otimiza os processos de desenvolvimento de software, aprimora a colaboração em equipe e maximiza a eficiência no gerenciamento de tarefas.
O Kanban é proeminente entre as equipes atuais de software ágil e DevOps, mas a metodologia Kanban tem mais de 50 anos. No final da década de 1940, a Toyota começou a otimizar os processos de engenharia com base no mesmo modelo que os supermercados usavam para abastecer as prateleiras.
Os supermercados estocam inventário suficiente para atender à demanda do consumidor, uma prática que otimiza o fluxo entre o supermercado e o consumidor. Como os níveis de estoque correspondem aos padrões de consumo, o supermercado ganha eficiência significativa na gestão de estoque ao diminuir o excesso de inventário que deve conter a qualquer momento. Enquanto isso, o supermercado ainda pode garantir que os produtos essenciais estejam sempre em estoque.
Quando a Toyota aplicou esse mesmo sistema nas fábricas, o objetivo era alinhar melhor os enormes níveis de inventário com o consumo real de materiais. Para comunicar os níveis de capacidade em tempo real no chão de fábrica (e aos fornecedores), os trabalhadores passariam um cartão, ou "kanban", entre as equipes.
Quando alguém esvaziava uma caixa de materiais usados na linha de produção, um cartão kanban era passado para o depósito descrevendo qual material era necessário, a quantidade exata desse material e assim por diante. O depósito teria uma nova caixa desse material esperando, que eles enviariam para o chão de fábrica e, por sua vez, enviariam um kanban próprio ao fornecedor. Embora esse processo tenha evoluído desde a década de 1940, esse mesmo processo de fabricação "just in time" (JIT) continua sendo central para a metodologia kanban.
Hoje, as equipes ágeis de desenvolvimento de software conseguem aproveitar os mesmos princípios do JIT, combinando a quantidade do trabalho em andamento (WIP) com a capacidade da equipe. Essa capacidade proporciona às equipes opções de planejamento mais flexíveis, saída mais rápida, foco mais claro na melhoria contínua e transparência ao longo do ciclo de desenvolvimento.
Embora os princípios centrais da estrutura Kanban sejam atemporais e válidos a quase todos os setores, equipes de desenvolvimento de software alcançaram grande sucesso com a prática ágil. Ao contrário da implementação do método Kanban no chão de fábrica, que envolveria alterações nos processos físicos e a adição de materiais substanciais, as únicas coisas físicas que as equipes de software precisam são o quadro e os cartões de tarefas, que podem até mesmo ser virtuais.
O trabalho de todas as equipes Kanban gira em torno do quadro Kanban, uma ferramenta usada para visualizar e otimizar o fluxo de trabalho entre as equipes. Embora os quadros físicos sejam populares entre algumas equipes, os quadros virtuais são cruciais em qualquer ferramenta ágil de desenvolvimento de software para a rastreabilidade, colaboração e acessibilidade de vários locais.
Não importa se o quadro Kanban é digital ou físico, ele garante que a equipe visualize as tarefas, padronize o fluxo de trabalho e identifique e resolva no ato todos os bloqueadores e dependências. O quadro Kanban básico tem um fluxo de trabalho de três etapas: "Pendente", "Em andamento" e "Concluído". No entanto, dependendo do tamanho, da estrutura e dos objetivos da equipe, o fluxo de trabalho pode ser mapeado para corresponder a processos específicos.
A metodologia Kanban depende da transparência total do trabalho e da comunicação em tempo real. Portanto, o quadro Kanban atua como única fonte de verdade para o trabalho da equipe.
Em japonês, kanban é traduzido literalmente como "quadro indicador". As equipes Kanban representam cada item de trabalho como um cartão separado no quadro. O objetivo principal de representar o trabalho como um cartão no quadro Kanban é permitir que os membros da equipe acompanhem o progresso do fluxo de trabalho de maneira altamente visual. Os
cartões Kanban apresentam informações essenciais sobre as tarefas do projeto, dando às equipes visibilidade sobre quem é responsável por quais tarefas, além de uma breve descrição do trabalho e da duração estimada de cada uma. Os cartões em quadros Kanban virtuais geralmente incluem capturas de tela e outros detalhes técnicos que são valiosos para o responsável.
Permitir que os membros da equipe vejam o status de cada tarefa e outros detalhes relevantes a qualquer momento promove maior foco, rastreabilidade abrangente e identificação rápida de bloqueadores e dependências.
O Kanban é uma das metodologias de desenvolvimento de software mais populares que as equipes ágeis usam hoje em dia. O Kanban oferece vantagens adicionais ao planejamento e produtividade de tarefas para equipes de todos os tamanhos.
A equipe Kanban se concentra apenas no trabalho que está ativo e em andamento. Depois que a equipe conclui a tarefa, ela seleciona a próxima tarefa do backlog. O proprietário do produto tem a liberdade de repriorizar o trabalho no backlog sem interromper a equipe, pois qualquer alteração fora dos itens de trabalho atuais não afeta a equipe.
Desde que o proprietário do produto mantenha os itens de trabalho mais importantes no topo do backlog, a equipe de desenvolvimento pode ter certeza de que está entregando o máximo valor à empresa.
Proprietários de produtos experientes sempre se envolvem com a equipe de desenvolvimento ao levarem em consideração as alterações no backlog. Por exemplo, se as histórias de usuário 1 a 6 estiverem no backlog, a estimativa da 6 pode ser baseada na conclusão das histórias 1 a 5. É sempre boa prática confirmar as alterações com a equipe de engenharia para garantir que não haja surpresas.
O tempo de ciclo é a métrica fundamental para equipes Kanban. O tempo de ciclo é o tempo necessário para que a unidade de trabalho percorra o fluxo de trabalho da equipe, desde o momento em que o trabalho começa até o momento em que é enviado. Ao otimizar o tempo de ciclo, a equipe pode prever com confiança a entrega de trabalhos futuros.
A sobreposição de conjuntos de habilidades leva a tempos de ciclo mais curtos. Quando apenas uma pessoa tem o conjunto de habilidades, essa pessoa se torna o gargalo no fluxo de trabalho. Portanto, as equipes empregam as melhores práticas, como revisão de código e orientação, para ajudar a disseminar o conhecimento. Habilidades compartilhadas significam que os membros da equipe podem fazer trabalhos heterogêneos, otimizando ainda mais o tempo de ciclo.
Além disso, essa abordagem capacita toda a equipe a lidar com quaisquer gargalos de trabalho em coletivo, viabilizando a resolução rápida e garantindo o fluxo de trabalho tranquilo. Por exemplo, as responsabilidades de teste vão além dos engenheiros de controle de qualidade, incluindo desenvolvedores, promovendo esforço colaborativo para manter a eficiência. No sistema Kanban, toda a equipe garante que o trabalho prossiga sem problemas durante o processo.
A multitarefa mata a eficiência. O aumento da carga de trabalho leva ao mesmo tempo a mudança de contexto mais frequente, impedindo o progresso das tarefas até a conclusão. É por isso que o princípio vital do processo Kanban é limitar o trabalho em andamento (WIP). Os limites do trabalho em andamento destacam os gargalos no processo da equipe devido à falta de foco, pessoas ou conjuntos de habilidades.
Por exemplo, a equipe de software típica pode ter quatro estados de fluxo de trabalho: A fazer, Em andamento, Revisão de código e Concluído. Eles poderiam definir o limite de WIP de 2 para o estado de revisão do código. Pode parecer que é um limite baixo, mas há uma boa razão para isso.
Os desenvolvedores em geral preferem escrever um novo código em vez de gastar tempo revisando o trabalho de outra pessoa. O limite baixo incentiva a equipe a prestar atenção especial aos itens no estado de revisão e revisar o trabalho de outras pessoas antes de aumentar as revisões de código, reduzindo, em última análise, o tempo geral do ciclo.
Um dos valores fundamentais é o forte foco na melhoria contínua da eficiência e eficácia da equipe a cada iteração do trabalho. Os gráficos oferecem o mecanismo visual para as equipes garantirem que continuem melhorando.
Quando a equipe pode ver os dados, é mais fácil identificar gargalos no processo (e os remover). Dois relatórios comuns usados pelas equipes Kanban são gráficos de controle e diagramas de fluxo cumulativos. O gráfico de controle mostra o tempo de ciclo de cada item e a média contínua da equipe.
A meta da equipe é reduzir o tempo que qualquer item leva para passar por todo o processo. Ver a média do tempo de ciclo cair no gráfico de controle é um indicador de sucesso.
Um diagrama de fluxo cumulativo mostra o número de itens em cada estado. A equipe pode detectar bloqueadores com facilidade, visualizando o número de aumento de itens em um determinado estado. Itens em estados intermediários como "Em andamento" ou "Em análise" ainda não foram lançados para os clientes, e um bloqueador nesses estados pode aumentar a probabilidade de grandes conflitos de integração quando o trabalho for mesclado em etapas posteriores.
A entrega contínua (CD) descreve o processo de lançamento frequente do trabalho para os clientes. Integração contínua (CI) é a prática de criar e testar de imediato o código aos poucos ao longo do dia. Juntos, eles formam o pipeline de CI/CD que é essencial para que as equipes de DevOps lancem software com mais rapidez e, ao mesmo tempo, garantam alta qualidade.
A implementação contínua do Kanban e do CD se complementam com perfeição porque ambas as técnicas se concentram na entrega de valor just-in-time (e uma de cada vez). Quanto mais rápido a equipe conseguir oferecer inovação ao mercado, mais competitivo vai ser o produto. As equipes Kanban se concentram nisso: otimizar o fluxo de trabalho para os clientes.
Kanban e Scrum compartilham alguns conceitos em comum, mas têm diferentes abordagens. Eles não devem ser confundidos um com o outro.
SCRUM | KANBAN | |
Metodologia de lançamento | Sprints frequentes, de duração fixa (ex.: duas semanas) | Fluxo contínuo |
Funções | Proprietário do produto, Scrum Master, equipe de desenvolvimento | Entrega contínua ou a critério da equipe |
Principais métricas | Velocidade | Tempo de ciclo |
Filosofia de mudança | As equipes devem tentar ao máximo não fazer alterações na previsão de sprint durante o sprint. O aprendizado a respeito das estimativas fica comprometido quando há alterações. | Mudanças podem ocorrer a qualquer momento |
Algumas equipes misturam os ideais do Kanban e do Scrum, criando o "Scrumban". Elas pegam os sprints de extensão fixa e as funções a partir do Scrum e focam nos limites de trabalho em andamento e no tempo de ciclo a partir do Kanban.
Porém, para equipes que acabaram de começar a usar o método ágil, é muito recomendável escolher uma das opções e usar a metodologia por algum tempo. Se a equipe estiver pronta para aplicar a metodologia Kanban, use o template de quadro Kanban grátis hoje mesmo!
Maximize a eficiência observando e fazendo avançar o trabalho que mais importa.
A metodologia ágil me impactou muito, tanto no aspecto profissional como pessoal, pois eu aprendi que as melhores experiências são ágeis, no código e na vida. Muitas vezes você vai me encontrar na interseção de tecnologia, fotografia e motociclismo.