Gestão Ágil de Projetos e Kanban

Gestão Ágil de Projetos e Kanban

Kanban é uma metodologia ágil com enfoque no fluxo de trabalho. Quando bem utilizada, provê eficiência e visibilidade para as tarefas. Cada quadro deve conter informações adequadas para o seu público, o que nos leva à idéia do networked kanban.

A idéia está relacionada ao Lean e o fluxo de valor dos processos. Lean e kanban aplicam-se mais facilmente a processos previsíveis e repetitivos, de modo que o fluxo de valor e fluxo de trabalho possam ser mapeados e equalizados.

Scrum é uma outra metodologia ágil baseada na entrega de valor e iterações. Existe alguma confusão entre Kanban e Scrum, vistos como mutuamente excludentes. Porém, ganhos de produtividade podem ser obtidos unindo os conceitos dessas duas metodologias:

Scrum Kanban
Equipes multifuncionais Divisão do trabalho
Subdivisão das entregas e priorização Fluxo e progresso
Iterações e Sprints Tempo de entrega

[space]

Karl Scotland, em seu blog AvailAgility, escreveu uma série de artigos sobre a ciência por trás do kanban. Segundo ele, mesmo em domínios complexos, como inovação e desenvolvimento de software, é possível compreender o estado e a performance atuais para buscar melhorias. Ou seja, mesmo não sendo um processo perfeitamente repetível e previsível, isso não impede o seu uso.

Scotland afirma que o kanban tem um efeito importante sobre as pessoas: foco.

A Neurociência nos ajuda a compreender a necessidade da visualização em um sistema. A criação de quadros visuais reforça a maneira de enxergar do nosso cérebro, resultando em modelos mentais comuns compartilhados pela equipe e favorecendo que os status e ações sejam lembrados.

Scotland diz ainda que o foco criado pelo kanban permite compreender melhor os processos e os mapear, além de afastar a falsa idéia de multi-tarefa que algumas pessoas pretensamente dizem ser capazes.

Mas o que é kanban, afinal?

Não se trata de um simples quadro com Post-It® indicando tarefas não-iniciadas, em andamento e concluídas. Os sistemas kanban se baseiam na teoria das filas. À medida que capacidade de utilização do sistema aumenta, a fila aumenta exponencialmente.

kanban-scrum1

O objetivo é otimizar o uso da fila, isto é, aumentar o fluxo. A equação do tempo de espera é a seguinte:

Tempo de Espera = Trabalho Pendente / Taxa de Processamento

O fluxo máximo não ocorre exatamente no ponto de maior produtividade. É preciso haver um balanço entre o trabalho pendente (work in process – WIP) ou quantidade de tarefas e a taxa de processamento ou produtividade.

kanban-scrum2

É essencial encontrar o ponto ótimo de fluxo de modo que não tenhamos uma fila aumentando exponencialmente e que também não tenhamos uma fila que tenda a zero, resultando em ineficiência (intervalos sem tarefas a serem executadas).

Como encontrar o ponto de equilíbrio?

A seguir, temos um quadro simplificado.

kanban-scrum3

Em princípio, é fácil utilizar um quadro como este. Segundo Jurgen Appelo, o problema é que necessitamos de uma ferramenta capaz de suportar um fluxo não-linear de trabalho realizado por equipes dispersas.

Devido ao fato de estarmos lidando com um trabalho não repetitivo e que possui caráter criativo e transformador, o desenvolvimento de software não é facilmente modelado por quadros kanban. Os sistemas kanban apresentam melhores resultados no equilíbrio de fluxos repetitivos, como processos de produção fabris.

Para lidar com a complexidade, Appelo (2011) introduz o modelo networked kanban, que em uma rede de quadros interrelacionados que modelam o fluxo de trabalho como uma rede de valor. A grande diferença, segundo Appelo (2011), é que ele prefere construir um sistema kanban criando quadros relacionados (scale out) em vez de aumentar a quantidade de colunas dos quadros (scale up).

kanban-scrum4

Appelo diz que quadros muito grandes, isto é, que possuam colunas para satisfazer as necessidades de diferentes áreas e equipes num mesmo quadro, são de difícil visualização e controle. Outra vantagem da rede de quadros (networked kanban) é a sua utilização por equipes dispersas por diferentes localidades.

Manter os quadros simples aumenta o foco das equipes, o que facilita a obtenção do fluxo equilibrado, que poderia ser comparado à velocity de equipes Scrum diferentes trabalhando num mesmo projeto e desenvolvendo atividades interdependentes.

Portanto, networked kanban nada mais é do que a divisão de grandes quadros em fluxos menores interrelacionados que são implementados por quadros menores. Utilizando essa abordagem, o desenvolvimento de software se beneficia de um controle distribuído e que considera as peculiaridades das diferentes tarefas e equipes envolvidas.

Gostou? Coloque em prática na sua equipe!

Vamos discutir como fazer em próximos posts, não perca. Enquanto isso, vale a pena ver a palestra abaixo do grande Eric Brechner.