Desenvolvimento Ágil com Kanban - Java Magazine 84
Este artigo é uma introdução ao Kanban, um método de desenvolvimento de software com fortes bases em práticas Lean, e que tem como objetivo otimizar o processo de desenvolvimento de software pré-existente. Este método limita o trabalho em progresso, apresentando a evolução de forma visual, tornando os problemas evidentes e cultivando uma cultura de melhoria contínua.
Este artigo é uma introdução ao Kanban, um método de desenvolvimento de software com fortes bases em práticas Lean, e que tem como objetivo otimizar o processo de desenvolvimento de software pré-existente. Este método limita o trabalho em progresso, apresentando a evolução de forma visual, tornando os problemas evidentes e cultivando uma cultura de melhoria contínua.
Para que serve:
Kanban permite que um processo seja otimizado de acordo com um contexto específico, aderindo a diferentes tipos de equipes e projetos. Geralmente causa pouca resistência a mudanças por parte das pessoas e da organização, ao passo que ajuda a equipe a manter um ritmo sustentável e previsível através de um fluxo contínuo de trabalho, conquistado em virtude da definição do limite de trabalho em progresso.
Em que situação o tema é útil:
Kanban é útil para equipes de desenvolvimento de software que buscam melhor produtividade, transparência, entregas frequentes e melhoria contínua.
Desenvolvimento Ágil com Kanban:
Este artigo apresenta uma introdução ao método Kanban. Para isso, descreve os passos para implantá-lo em uma equipe de desenvolvimento de software, aborda a criação de um card wall que represente o processo e cartões que representem itens de trabalho, além da definição da cadência de reuniões e outros eventos importantes para o ciclo de desenvolvimento.
Em meados de 2007, Rick Garber e David J. Anderson apresentaram nas conferências “Lean New Product Development” e “Agile 2007” os resultados preliminares do uso de Kanban na Corbis, uma empresa fundada por Bill Gates da Microsoft. Desde então o Kanban vem ganhando mais e mais força na comunidade de desenvolvimento de software e mais empresas passaram a adotá-lo.
Kanban está bastante relacionado com o conceito de Sistemas Puxados do Toyota Production System (TPS). Tradicionalmente, antes da Toyota, a grande maioria das indústrias utilizava sistema de produção empurrada. Um sistema de produção empurrada caracteriza-se quando a primeira operação do processo recebe uma ordem de produção e a executa, empurrando o resultado da operação atual para a operação seguinte.
Em sistemas empurrados, não há ligação direta entre o que é produzido e a demanda do cliente, ou seja, pode-se dizer que o fato de um item ter sido produzido não significa que um outro item tenha sido vendido.
Um sistema de produção puxada exige que cada operação do processo seja alimentada pela demanda da etapa anterior, estabelecendo uma ligação direta entre o consumo real do cliente e a quantidade produzida. Dessa forma, o fato de um item ter sido vendido, geraria a demanda para a fabricação de outro. Em uma abordagem de desenvolvimento de software, poderíamos dizer que a demanda para se trabalhar em uma nova funcionalidade seria gerada quando alguma outra fosse entregue.
Kanban é uma palavra japonesa que significa cartão sinalizador, é utilizado no Sistema Toyota de Produção (TPS) e também por diversas empresas que aderiram à filosofia Lean para representar, em um sistema puxado de produção, um sinal para que se puxe mais trabalho, ou seja, para que o processo seja alimentado.
Em se tratando de desenvolvimento de software, utiliza-se Kanban para controlar o trabalho em progresso (ou WIP – Work in Progress) para indicar quando novas tarefas devem ser puxadas, em outras palavras, indica quando um requisito deve ser analisado, desenvolvido, testado, etc.
O sinal para puxar mais trabalho se dá pela quantidade visual de trabalho em progresso subtraída de algum indicador de limite ou capacidade. Analisaremos melhor esses conceitos ao longo do artigo. Algumas implementações de Kanban contêm um quadro com slots (espaços) para representar a capacidade. Este sinal pode ser gerado por um software, como um Bug Tracking System, por exemplo, ou pela visualização da demanda em um quadro físico com cartões, chamado de card wall.
É comum que equipes ágeis de desenvolvimento de software utilizem quadros físicos com cartões como ferramentas para tornar o processo visual e transparente, entretanto é importante ressaltar que nem todo quadro físico com cartões utilizado em métodos ágeis pode ser chamado de um sistema Kanban. Muitas vezes estes quadros podem ser apenas controles visuais que permitem ao time acompanhar a evolução de seu trabalho. Deste modo, se não houver limite de trabalho em progresso e sinal para puxar mais trabalho, não é um sistema Kanban." [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo