Fonte da imagem: pixabay.com

As equipes de software de hoje são, pelo menos em seus processos, mais ágeis! Eles estão dispostos a pensar fora dos parâmetros definidos para seguir o que funciona para eles. Eles estão ansiosos para aprender e adotar novas técnicas de gerenciamento de projetos e processos de projetos.

Um método de gerenciamento de projetos chamado Kanban está circulando na indústria de software há alguns anos e ganhou dinheiro nos últimos cinco anos. Juntamente com as metodologias ágeis, a adoção do método Kanban deu muito às empresas para comemorar.

Mas há também as críticas de que Kanban não passa de uma lista de tarefas glorificada. Então, o que é isso tudo? Vamos descobrir.

O que é Kanban?

Se sua empresa está pronta para ir além da abordagem tradicional de gerenciamento de projetos de software, hoje não há escassez de técnicas de gerenciamento de projetos.

Por um lado, existe o sistema Agile Project Management, que se concentra em métodos iterativos não lineares de desenvolvimento de software. O uso de métodos Agile é evidente no Scrum, que se concentra em uma abordagem mais flexível ao gerenciamento de projetos.

O Agile também possui links para outras estruturas de gerenciamento de projetos, como Kanban e Extreme Programming. Destes, o Kanban alcançou muita popularidade. Afinal, quem não quer que um processo evolua pelos japoneses?

Kanban é um conceito que evoluiu na planta de fabricação da Toyota para alcançar a produção just-in-time (JIT), que reduz custos e permite menor utilização de recursos. Na sua essência, segue o princípio de "puxar" do trabalho, o que significa que tarefas ou produtos precisam ser "puxados" por requisitos e demanda, e não "empurrados" de cima para baixo. Foi desenvolvido para garantir um melhor estoque de componentes de automóveis nas fábricas da Toyota, com base na demanda. Isso significava que, à medida que a demanda aumentasse, os pedidos seriam atendidos.

O conceito foi adaptado à indústria de software com algumas mudanças por David Anderson, em seu livro de 2010, Kanban . Desde então, tem sido utilizado em vários projetos com grande sucesso. Pode ser de imensa ajuda em projetos complexos que podem sofrer sobrecargas de um lado do ciclo de desenvolvimento.

Basicamente, o sistema Kanban trata o processo de projeto de software como um pipeline. Digamos que um processo de software tenha três tipos de tarefas: análise, desenvolvimento, teste e, finalmente, implantação. Digamos que há vinte tarefas que precisam ser concluídas.

No caso de um sistema tradicional de gerenciamento de projetos, se, por exemplo,

  • Existem 25 histórias no total
  • Os analistas conseguem lidar com cinco histórias por semana
  • Os desenvolvedores conseguem lidar com cinco histórias por semana
  • Os testadores são limitados a três histórias por semana

Nessa situação, o trabalho simplesmente se empilha no final dos testadores. No final da semana 1, a situação será a seguinte:

  • Apenas três histórias foram transferidas para a implantação.
  • Desenvolvedores e analistas trabalham em três histórias, uma vez que os testadores são incapazes de pegar a saída dos desenvolvedores e testar o mesmo.
  • O trabalho é empilhado, deixando desenvolvedores e analistas e o gerente de projetos em uma correção.

Agora, os analistas e desenvolvedores podem simplesmente estar mexendo o polegar! Ou o gerente pode perceber que eles estão ociosos e realocá-los para outro projeto, onde uma situação semelhante pode surgir. Portanto, existem dois projetos que estão presos na fase de teste!

Os problemas em tal situação não são difíceis de ver. Qual é o sentido de desenvolver dez histórias (ou partes de software) quando elas não serão testadas tão cedo?

Agora, vamos ao método Kanban.

O método Kanban é um conceito extremamente simples. Segue uma lógica simples de usar um "método pull" para remover primeiro os gargalos e limitar os trabalhos em andamento (WIPs) para melhores processos de trabalho.

Em sua forma mais simples, o Kanban, literalmente, "quadro visual" ajuda ao "puxar" itens de uma lista de tarefas, em vez de trabalhar com cronogramas. O método Kanban ajuda a identificar os gargalos para que o fluxo do processo seja melhor gerenciado.

Um quadro Kanban básico possui uma lista de tarefas a serem executadas, tarefas em andamento e tarefas concluídas.

No gerenciamento de software, no entanto, as tarefas podem ser um pouco mais complexas. A maioria dos projetos Agile também possui um quadro semelhante. Em um quadro Kanban, os estágios da implantação são claramente marcados, juntamente com um número para cada coluna. Esse número representa o número máximo de tarefas ou histórias que uma determinada etapa pode manipular.

Nosso exemplo em um quadro Kanban ficaria assim, no início da segunda semana. Isso significa que desenvolvedores e analistas não trabalharão com o número ideal de histórias nessa semana. Seria óbvio que o trabalho está sendo empilhado no final do testador. E as organizações podem garantir que as equipes trabalhem juntas para realizar os testes. Como alternativa, eles podem observar outros modelos de fluxo do processo para que isso não aconteça.

Quando os projetos são gerenciados pelo sistema Kanban, há menos espaço para o trabalho ser empilhado. As histórias são contadas de acordo com a largura de banda máxima disponível.

Em uma configuração típica do Kanban, o trabalho será realizado de acordo com a largura de banda disponível e o trabalho será puxado pelas equipes, para que elas estejam sempre na capacidade máxima. O sistema também permite uma via rápida, para tarefas urgentes, para que elas passem pelo quadro com o mínimo de esforço.

Dê uma olhada neste quadro Kanban.

É claro que todas as etapas estão operando com a máxima eficiência. E a tarefa que está no "Fast Track" também é contabilizada.

O Kanban não é de forma alguma o único método usado para aumentar a eficiência limitando o WIP. Existem outros sistemas que alcançam o mesmo resultado - por exemplo, os sistemas CONWIP (Constant Works in Progress) e DBR (Drum-Buffer-Rope), destinados principalmente às indústrias de manufatura.

No entanto, o Kanban é o sistema que foi melhor modificado para se adequar à indústria de software.

Qual a diferença entre o Kanban e as metodologias ágeis?

No fundo, o Kanban é uma metodologia que utiliza alguns elementos do Agile Project Management. Muitos projetos na estrutura Agile têm raízes nas abordagens Lean. A diferença entre a metodologia Kanban e o gerenciamento ágil de projetos não é tão preto e branco quanto os proponentes dos dois métodos nos fazem acreditar. Eles têm mais em comum do que diferenças.

A estrutura do Agile não é absoluta. A questão não é se as equipes são ágeis ou não. As equipes geralmente têm agilidade em vários graus. Um dos métodos para ter mais agilidade no processo de desenvolvimento de software é usar o Kanban.

Existem algumas diferenças entre as metodologias Kanban e Agile. Alguns dos recursos do desenvolvimento Kanban, um pouco diferentes do Agile, são:

  • As linhas do tempo não são um fator significativo . Este é um conceito difícil de entender, pois parece muito pouco intuitivo. "Como você trabalha sem prazos?", As pessoas costumam perguntar. Mas se todos os membros da equipe estiverem envolvidos com sua eficiência máxima, o tempo deixará de ser um fator.
  • Histórias (tarefas) são maiores do que em sistemas Agile típicos. Normalmente, o tamanho e a complexidade das histórias são maiores do que em um projeto típico do Scrum. Como o foco não está na estimativa de tempo, mas simplesmente no andamento do processo, o Kanban pode se dar ao luxo de trabalhar em histórias maiores.
  • Não há mudanças significativas nos processos existentes. Os princípios do Kanban para desenvolvimento de software, conforme articulados por seu fundador, David Anderson, em seu blog, incluem os seguintes princípios básicos:
    • Comece com o que você faz agora
    • Concorda em buscar mudanças incrementais e evolutivas
    • Respeite o processo atual, funções, responsabilidades e títulos
  • Cada história é medida em tempo de ciclo . O projeto é avaliado não pelo cálculo ágil tradicional da velocidade (o número de histórias concluídas durante um determinado tempo), mas pelo tempo do ciclo. Isso significa que o Kanban enfatiza quanto tempo levou para concluir uma tarefa. Muitas vezes, é possível ver um código em muitos quadros Kanban que mencionam quantos dias a equipe leva para terminar uma história. Essa estimativa alimenta o próximo ciclo.

Kanban: um conselho, mas o que mais?

Então, Kanban é um quadro que nos mostra como as histórias são organizadas - isso é algo tão importante, muitos perguntam. De fato, há muita discussão sobre o que o Kanban é e pode fazer.

O Kanban é apenas um método para gerenciar o fluxo de trabalho? Ou é algo que se pode usar junto com metodologias Agile para obter a máxima eficiência? Ou pode ser uma maneira totalmente nova de gerenciamento de fluxo de trabalho?

Cada equipe usa o Kanban como julgar adequado, para sua situação específica. Independentemente disso, o Kanban tem o potencial de funcionar como um modo de vida para o desenvolvimento de software, se usado em seu nível ideal.

Seja usado para gerenciar o fluxo de trabalho ou como um novo paradigma no desenvolvimento de software, não há como negar que ajuda a gerenciar WIPs.

Para que o Kanban funcione melhor, é importante pensar não apenas no gerenciamento de WIPs, mas como uma estrutura de gerenciamento de projetos. Certas diretrizes básicas ajudarão o processo.

  1. Otimize as equipes para que nenhuma equipe inicie algo que não pode terminar. Isso ajuda o processo.
  2. Não resista a alterações do sistema Kanban original. Se seu projeto se sair bem com prazos e prazos, incorpore o mesmo que você faria. Isso cria um ambiente de desenvolvimento mais saudável e robusto.
  3. Não evite o trabalho em equipe. Kanban pode parecer, mas não é, um modelo baseado em indivíduos que trabalham isolados. O trabalho em equipe deve ser parte integrante do desenvolvimento de software Kanban.
  4. Pense fora da caixa. Pense em mudanças no fluxo de trabalho. Agora, muitas equipes estão optando pelo desenvolvimento orientado a testes, com o desenvolvimento orientado a testes de aceitação, onde os testes de aceitação são executados primeiro com casos de uso, que orientam os recursos necessários e a natureza do desenvolvimento.

Híbridos

À medida que mais e mais empresas usam as ferramentas de gerenciamento de projetos mais adequadas para sua situação específica, não surpreende que duas das melhores metodologias de gerenciamento de projetos: Scrum e Kanban, tenham sido integradas com muito sucesso.

O híbrido, chamado Scrumban, está fazendo incursões em muitos projetos.

Se uma organização já estiver usando o Scrum, mas estiver encontrando dificuldades para manter o projeto unido, com os sprints não funcionando bem, para testar se não é hermético, talvez seja hora de considerar o Scrumban.

Para explicar de forma simples, Scrumban envolveu levar uma lupa para os sprints. Não é apenas sobre os sprints como parte do projeto, é sobre o que acontece dentro dos sprints. O Scrumban ajuda a analisar como uma história é processada em um sprint, e isso pode fazer toda a diferença.

Scrumban, ou qualquer uma de suas variantes, é uma mudança mínima em relação às práticas existentes. A vantagem de usar o Kanban é que ele pode ser usado com praticamente qualquer tipo de modelo de gerenciamento de projeto: cascata, Agile ou qualquer outro meio.

Introdução ao Kanban

É fácil começar com o sistema Kanban. Também é possível implementar o Kanban de maneira mínima, como um teste para uma parte específica de um projeto.

  1. Mapeie o processo de desenvolvimento de software. Faça um mapa claro de todo o processo. Como o projeto - do design inicial, ao desenvolvimento, aos testes, às mudanças nos recursos, funciona na realidade?
  2. Liste as etapas em que o Kanban será usado. Use as etapas totalmente sob seu controle. Isso normalmente inclui as fases de análise, desenvolvimento, revisão e teste.
  3. Trabalhe em pontos importantes, como:
    1. Limites para os trabalhos em andamento para cada etapa.
    2. Processos para trabalho acelerado / bloqueado
    3. Estimativas do verso do envelope em relação ao tempo de ciclo
    4. Frequência do conselho Kanban / processo / revisão de estimativa
  4. Compre um quadro branco e uma pilha de post-its.
  5. iniciar
  6. Revise conforme necessário.
  7. Repetir

Então, vá em frente e comece a usar o Kanban!

Não se assuste se não sair da maneira que você pretendia inicialmente. A idéia por trás das metodologias ágeis é acomodar mudanças em pessoas e processos! Deixe-nos saber sobre suas experiências com o método Kanban.

Artigos recomendados

  1. 6 O mais útil escritório de gerenciamento de projetos (PMO)
  2. 8 etapas úteis para criar mapas sofisticados de histórias para o seu projeto
  3. Os 5 valores importantes da programação extrema (poderoso)