Kanban: como gerenciar pipelines de desenvolvimento de software

Recentemente apliquei um treinamento de Scrum na empresa RedeHost e isso me motivou a escrever sobre métodos ágeis novamente. Uma das coisas que mais me fascina neste mundo pouco ortodoxo de gerenciamento de projetos são os artefatos. Eu já falei de Planning Poker neste outro post, uma técnica utilizada no mundo ágil para estimar tempo de desenvolvimento de projetos de software. Mas e depois de as estimativas terem sido feitas, como eu gerencio o andamento do projeto? E aí que entra o Kanban.

kanban-board-e60650d1-1 (1)

Depois de ler este post, se quiser conhecer mais do meu trabalho com Scrum, dá uma olhada neste livro.

O que é?

Kanban é uma palavra japonesa para “cartão” ou para “sinalização”, e o Kanban do gerenciamento de projetos é literalmente o uso de cartões para sinalizar o andamento do projeto. Você já deve ter visto isso em alguma empresa: um painel na parede com diversas colunas e post-its espalhados entre elas, com cores diferentes e cheio de rabiscos. Possivelmente era um kanban.

Um dos pilares do Scrum, a mais bem sucedida metodologia ágil da atualidade, é a transparência, que diz que todos os responsáveis pela execução de um projeto devem ter noção do andamento do mesmo. Assim, o kanban não é uma ferramenta exclusiva para gerentes de projeto, mas sim uma ferramenta para deixar todo o time alinhado. Não obstante, os outros dois pilares do Scrum, inspeção e adaptação, são fortalecidos pelo Kanban, uma vez que qualquer membro do time pode inspecionar o andamento do projeto e sugerir melhorias para os cartões do kanban, como será visto a seguir.

kanban-quadro-rais

Como funciona?

Um Kanban é um painel, tipicamente uma parede, placa de vidro ou fórmica. Esse painel é dividido em colunas, sendo que as mesmas podem variar conforme o projeto ou necessidades da empresa, mas tipicamente vemos no essas três colunas:

  • TODO: nessa coluna listamos as tarefas que devem ser feitas nessa Sprint (curto prazo)
  • DOING: nessa coluna listamos as tarefas que estão em andamento, que já foram iniciadas. Deve ter também uma sinalização de quem está executando esta tarefa.
  • DONE: nessa coluna listamos as tarefas concluídas nessa Sprint, que só são removidas após o término da mesma. Os requisitos para que um cartão chegue até esta coluna variam de equipe para equipe e, segundo os métodos ágeis, deve ser documentado em um artefato chamado Definição de Pronto.

Outras colunas comuns de serem vistas em kanbans de times de software (afinal é uma prática agnóstica de setor, tendo sido originada na indústria) são:

  • IMPEDIMENTOS: tarefas trancadas por algum motivo, com alguma sinalização do motivo do impedimento. Esta coluna deve ser revisada diariamente pelo Scrum Master a fim de resolver os impedimentos.
  • TESTING: tarefas que estão em ambiente de testes ou homologação, com alguma sinalização de quem deve testá-la (ou quem está testando atualmente) e quase prontas para a coluna DONE.
  • IDEIAS & SUGESTÕES: tarefas que surgiram ao longo da sprint, que não foram iniciadas para não atrapalhar o prazo, mas que podem servir de insumo para a próxima reunião de planejamento.

Em cada uma dessas coluna são colocados cartões contendo a descrição de uma tarefa (geralmente sob a perspectiva do usuário, como uma User Story), o responsável por sua execução (podendo estar vazio no caso da coluna TODO) e o tempo de execução, seja em pontos obtidos no Planning Poker, pontos de função ou qualquer outra métrica que estiver utilizando. Esses cartões são preenchidos durante o Sprint Planning ou logo após ele, sendo tarefa do Scrum Master.

Não podemos ter cartões repetidos e cada cartão fica apenas em uma coluna por vez, geralmente avançando da esquerda para a direita, como em uma linha de produção. TODO para DOING para DONE. Note que este artefato substitui o Sprint Backlog sugerido no Scrum, que é o conjunto de tarefas que serão executadas nesta sprint pelo time, e pode ser usado em conjunto do Burndown Chart, para que fique mais claro se o time vai ou não alcançar a meta no ritmo em que estão.

Considerações Adicionais

Cabe ao Scrum Master cobrar o uso dos métodos ágeis pela equipe, e isso inclui cobrar atualizações das tarefas do Kanban. Cartões há muito tempo parados na mesma coluna devem ser investigados (principalmente se existir uma coluna IMPEDIMENTOS), cartões novos que surgirem devem ser muito bem pensados se entram ou não no pipeline (uma vez que podem comprometer a entrega final) e assim por diante.

Devido à isso, é bem comum que o local escolhido para as reuniões diárias propostas pelo framework Scrum seja em pé, na frente do kanban, para que seja mais fácil pra todos alinhar suas ideias e tarefas. Obviamente isso é uma dica minha, não é uma regra.

Também não falei a respeito de bugs. Cartões de bugs tendem a ter mais prioridade sobre os demais, sendo um dos poucos que podem ser adicionados ao pipeline no meio de uma sprint, e não é incomum eles usarem cartões ou post-its de cor diferente, para diferenciá-los dos demais. Encoraja-se não criar uma coluna exclusiva para bugs, mas sim usar as já existentes.

486946-151130-getorg-kanban-trello

Kanban Virtual

Tenho certeza que alguns leitores irão torcer o nariz para a ideia de ter um painel cheio de cartões colados na parede do escritório. Eu poderia ficar aqui escrevendo dezenas de linhas a respeito das  vantagens de fazer o kanban à moda tradicional, mas como eu mesmo não tenho usado dessa maneira ultimamente, vou falar de uma ferramenta quase tão boa quanto, vamos falar de coisa boa, vamos falar do Trello!

O Trello é uma ferramenta online gratuita em que podemos criar boards, que nada mais são do que painéis onde podemos ter colunas/listas com cards dentro delas. Cada card pode ser associado a uma pessoa (você pode convidar tantas pessoas quanto quiser para o seu board), ter checklists, prazo, mensagens, etc e você pode arrastar os cards de uma coluna/lista para outra facilmente com o mouse. Lhe soa familiar? Pois é, podemos facilmente usar o Trello como um kanban!

Como o Trello permite que você tenha vários boards, é possível usar o Trello para não somente colocar o kanban/Sprint Backlog, mas também o Product Backlog que será mantido pelo Product Owner com colunas organizadas por tipo de tarefa, por exemplo, como desenvolvimento, marketing, design, etc.

Existem outras ferramentas mais poderosas que o Trello para gerenciar seus projetos ágeis, mas a simplicidade dele é sem igual.

* OBS: curtiu o post? Então dá uma olhada no meu livro de Scrum e Métodos Ágeis clicando no banner abaixo pra aprender muito mais!

O que achou desse artigo?
[Total: 4 Média: 4.8]