NimbleWork

Mudando de Cascata para Agile com Kanban

Esta pergunta foi feita em um fórum de gestão de projetos ao qual eu respondi. Considerando quantas equipes de software estão passando dos processos tradicionais para os Agile usando Kanban, achei que seria útil compartilhar minha resposta aqui também.

O autor da pergunta queria saber se um processo padrão SDLC (Ciclo de Vida de Desenvolvimento de Software), ou seja, as etapas de Planejamento, Definição, Projeto, Teste e Implantação (um processo muito comum que todos encontraram/estão familiarizados) poderia traduzir para colunas em um quadro Kanban, nomeado e mapeado para Backlog, Definição, Design, Teste e Implantação.

Waterfall-vs-Agile

O Kanban possui pouquíssimas barreiras às adoções (possivelmente nenhuma?) e um de seus princípios é “Comece de onde você está” – ou seja, comece com seu processo atual, não mude nada. Basta visualizá-lo e depois mudá-lo gradualmente à medida que a equipe identifica a necessidade de melhorias.

Então, referindo-se à pergunta, se seu processo atual é “Backlog, Definição, Design, Teste, Implantação”, então você pode começar com isso e usá-lo para rastrear cada Requisito (ou História de Usuário ou funcionalidade – o que quer que você use no nível mais baixo da “definição do escopo”), à medida que ele se move através dos vários estágios de desenvolvimento. Você não pode simplesmente ter o projeto inteiro (representado como um cartão) passando por esse processo, porque assim você não veria nada progredir; NEM pode ter suas tarefas típicas de planejamento de projeto fluindo por esse processo. (As tarefas simplesmente seguem um processo “Para Fazer – Fazendo – Feito”).

A ideia em Lean/Kanban é acompanhar as etapas de “adição de valor” de seu fluxo de trabalho – e aplicá-lo a cada peça de valor que está sendo entregue ao cliente, que, neste caso, são peças de software (funcionalidades ou requisitos). Eu recomendaria pensar em cada etapa do processo (de desenvolvimento) que acrescenta valor incremental ao entregável – mesmo que não envolva uma transferência de uma pessoa para outra.

Como exemplo, aqui está nosso fluxo de trabalho que usamos para o desenvolvimento de nossos próprios produtos (nós construímos o SwiftKanban… usando o SwiftKanban). Nós empregamos uma abordagem TDD –

É um processo bastante detalhado que rastreia cada etapa de adição de valor enquanto um desenvolvedor trabalha através deles em uma única história de usuário ou melhoria ou defeito, os 3 produtos típicos em que nossos desenvolvedores trabalham. O código de cores identifica o tipo de trabalho.

Voltando ao fluxo de alto nível mencionado na pergunta (Planejamento para Implantação através de Definição, Design e Teste), pode-se começar com isso e depois “evoluir” gradualmente para um fluxo mais granular, onde cada uma das etapas identificadas pode ter algumas sub-fases.

Também é fácil esquecer, mas, é importante notar que o Kanban o ajuda a equilibrar e melhorar seu fluxo, fornecendo colunas intermediárias de amortecimento para que cada etapa de seu fluxo de trabalho tenha trabalho suficiente e que o trabalho esteja fluindo sem problemas. Isso garante que em nenhum momento os membros de sua equipe sejam sobrecarregados ou fiquem ociosos. Você faz isso adicionando colunas intermediárias “Feito” (como exemplo, pode-se dividir a coluna Design em – “Em Progresso” e “Feito”) e adicionar limites de WIP (Trabalho em andamento) em cada coluna. Aqui estão alguns exemplos –

Para saber mais sobre a Metodologia Kanban, eu recomendaria ler o livro de David Anderson “Kanban: Successful Evolutionary Change for your Technology Business”. Você também encontrará muitos artigos úteis em nosso Guia Kanban aqui.

Uma reflexão antes de concluir – não existe um processo “pré-definido” em Kanban. Você e sua equipe têm que decidir que processo usarão – com base em sua experiência e práticas atuais de desenvolvimento – em seu novo quadro Kanban. Se você só tem feito projetos em cascata agora, então você começa usando o mesmo processo novamente. Se você tem utilizado o Scrum ou um processo Iterativo, comece com isso. O Kanban o ajudará gradualmente a melhorar e evoluir à medida que você identificar problemas na entrega de seu software, se houver, e qualquer gargalo de processo.

Se você gostaria de saber mais, sinta-se à vontade para explorar nosso site – há uma montanha de informações para ajudar um iniciante a começar com Kanban. Também temos um Teste Gratuito de 30 dias do SwiftKanban que você pode se inscrever. Comentários e perguntas são bem-vindos!

Mahesh Singh
Co-fundador, SVP – Treinador e Coach de Marketing/Kanban

OBS: Outra resposta no fórum mencionou o método STATIK (Systems Thinking Approach To Implement Kanban) para identificar o próprio processo e o tipo de trabalho que é feito. Também o utilizo em minhas aulas de treinamento de Kanban. Entretanto, é um tópico um tanto avançado. Eu sugeriria a contratação de um treinador/coach Kanban para ajudá-los com isso inicialmente.

Sair da versão mobile